What approaches can I use, and what skills/documentation/tools do I need, to build scenes for Decentraland and put them on my land?
I have been playing around with the DCL Builder because probably the only thing I can really do. I find the Builder addictive!
So the whole triangle thing is so it could load easier on VR headset right? So when designing I have to keep under those limitations?
I downloaded a recent scene I made it was a zip file then once unzipping it there were no clear files I could see I could share as visual, I was hoping to share some of the builds I've been doing with you and the group. Any assistance would be great thanks.
Is builder worthwhile to build in or should I be trying A-Frame and downloaded that?
I know I am not going be great at the coding side - I have zero knowledge of the Decentraland SDK, but for the designing building I am very keen on making a go at that and learning as much as I can, I figure with my painting background I could be a natural.
I have some connected private land parcels in Decentraland, and contributed land to the Vegas district.
Yes, I agree about the Decentraland Builder. I built several scenes with it for the Decentraland Builder Hackathon and found it easy and fun and quite engaging. For an artist, being able to create 3D works and visit them in a virtual world is a wonderful new opportunity.
There are several approaches to making scenes for Decentraland - The Decentraland Builder, the Decentraland SDK, and some 3rd party tools. I'll summarize them below, for you and other readers. I'd say they are in order of simplest to most advanced.
You can use these approaches to build scenes and "visit" them locally on your PC, without uploading them to land. And, when the scene looks good, you can use either the Builder or the SDK to upload scenes to land that you own in Decentraland. You can get land at https://market.decentraland.com.
You could become an artist or builder for other land owners. There is a "hiring" channel on the Decentraland Discord server, at https://discordapp.com/invite/9EcuFgC
1. Building Scenes using the Decentraland Builder To build a scene, go to https://builder.decentraland.org, choose the size of the scene you want to build, in parcels, and build your scene(s). Choose things to put into your scene from the Items catalog. Find an item you want to try, and drag/drop it onto your scene To visit your new local scene and see what it would look like in Decentraland click on the eye button (Preview). Click on the X to return to the Builder. The scene is saved in your browser memory, but that's not a great way to back it up. But a safer way to store it is to use the Download Scene to export it to a local zip file. You can later upload the scene again by uploading this zip file using the "UPLOAD SCENE" feature on the main builder page.
Next, you could use the collection of files in the downloaded zip to create an SDK-compatible version of the scene to do further customization if you wish, and optionally upload it to your land in Decentraland. To do this, proceed to approach 2.
A feature to directly upload your scene from the Builder is on the roadmap and may already exist by the time you read this.
You also have the option in the builder to "Publish" it to a scene pool that landowners or districts may use to populate their land.
2. Building and Deploying Scenes Using the Decentraland SDK The Decentraland SDK allows you to add custom content and, optionally, scripted dynamic behavior, to your scene.
Good Decentraland documentation can be found at https://docs.decentraland.org. Be sure to keep your scenes simple enough to stay under the scene limitations published there. Especially you may have to focus on limiting "triangle count", which is necessary for the scene to perform well, especially when living among many other scenes "in world".
You will need to first install the SDK, following the instructions provided there.
You can find a growing collection of script modules being created by Decentraland builders. Check out the builder channel in the Decentraland Discord, or sites like MetaVRS.io, or you can use and learn from example code from the Decentraland examples, which you can find at https://docs.decentraland.org/examples/sample-scenes/ Scripting in Decentraland is done using Typescript, which is a good extension of JavaScript. The main starting file for a scene is the games.ts file in the src subdirectory.
Once you have installed the SDK, you can either initiate an entirely new scene by creating a new working scene directory, and in it run dcl init
; or you can create a working directory and extract into it the contents of the zip file, and in that directory type npm i
When you are ready to preview your scene in the SDK, you type dcl start
An excellent and free development environment for editing SDK scene scripts is "Microsoft Visual Studio Code", which you can download. It will do syntax highlighting of your code and show you where you have syntax errors. When you work on game.ts or other subsidiary code modules, the Code editor is aware of the classes and functions of the SDK, as well as of any additional code modules you "import" into your scene code, so it can help you get the spelling and parameters right.
If you have used the Decentraland Builder to create your scene, and don't have the desire or skills yet to further customize it, you can still preview it as above, and when you are ready to deploy an SDK scene to your land, use dcl deploy
. You will need to "sign" the deployment using your MetaMask or similar crypto wallet, so that it can verify that you own the land. To specify which parcel(s) you are trying to upload it to, you will need to edit the "scene.json" file, and edit the "parcels" list, and the "base parcel", to both be your parcel coordinates.
3. Building Scenes with JanusVR and Converting Them to the SDK JanusVR is a good tool that many people know how to use for making 3D/VR scenes. You can download it for free from http://janusvr.com. The "" code ("JML markup") in the JanusVR scene's code editor, can be copied over the same markup in a scene you make in JanusVR's hosting environment, https://vesta.janusvr.com/, and from there you can upgrade to Vesta UV Pro, and have a feature for exporting the Vesta scene to a Decentraland SDK compatible file set (Convert to DCL) JanusVR and/or the Vesta client can both be pointed at the Vesta URL by one or more people, enabling collaborative design teams to work together. Be sure to only use low-poly gltf or glb model files when building in JanusVR. JanusVR supports several model file types, but only the gltf or glb formats work in the Decentraland SDK.
4. Building Scenes in Unity and Exporting Them to the SDK I haven't tried this myself, but check this out: https://github.com/decentraland/DecentralandUnityPlugin Again, stick to low poly models, and know that you'll have to have them in gltf or glb format for them to work in the SDK.
5. Building Scenes in A-Frame and porting them to the SDK If you are comfortable with both A-Frame markup scripts, and the SDK typescript scripting, and you have built scenes in A-Frame that you want to migrate to Decentraland, then you can discover the patterns of converting the A-Frame markup for models and primitives into SDK games.ts syntax. It's a bit of work, but I've done it with a few scenes. Again, you must use glb or gltf versions of the models and keep the triangle and other limits in mind.
I hope this helps you and others get off to a great start at building and deploying scenes to Decentraland.