Tutorial
Heading
Nov 7, 2023

Creating large terrains in Decentraland

This step-by-step workflow empowers you to handle extensive amounts of LAND efficiently, ensuring seamless optimization and iterative development throughout your project

The mission

In this guide I will teach you a bulletproof step by step workflow that will allow you to handle large amounts of LAND in Decentraland.

This workflow will allow you to manage as many LAND parcels as your project requires in a seamless and non-destructive way, so you can optimize and iterate the parcels as much as you need at any point of the development process.

Resources

  • Blender 2.9 or superior.
  • Unity.
  • Google Sheets.

This guide covers

Pre-production:

  • Mapping the coordinates.
  • Chuncking the LAND parcels into smaller groups (optimization).

Setting up the LAND in Blender.

Building the environment:

  • Blocking.
  • Iterations.
  • Exporting our LAND.

Setting up the Unity scenes.

Deploying and testing in Decentraland.

I will be using an Ethermon biome that is currently under development to showcase this workflow, this biome has 120 LAND parcels.

Pre-production

This phase of the workflow covers how you should layout the coordinates in order to have a solid base to work with. This will reduce production times immensely, since have a map with all your LAND parcels will allow you to look where every piece of LAND should be deployed.

It also helps with the optimization part of this phase: chunking the LAND parcels into smaller groups. This is essential since it will allow Decentraland to load our LAND in a reasonable amount of time, remember we are working with large amounts of LAND and optimization is the most important piece of the puzzle.

Mapping the coordinates

Map of the 120 LAND parcels colored in grey

The first thing we are going to do is, gather all the LAND coordinates provided by our client and map them out in a way that you can see every LAND at the same time and their coordinates. In this case we used Google Sheets, but you can use any software you want as long as you get a similar and functional result.

You could even use pen and paper but we do not recommend this method.

Optimizing the LAND parcels

Now that we have the mapped out our 120 LAND parcels, it’s time to group them into smaller amounts of LAND. This will reduce loading times massively, since loading 120 parcels at once wouldn’t be viable for Decentraland.

Mapping the chunks of LAND

Our recommendation is to never deploy more than 20 LAND parcels at once, and try to keep it around 10 or lower if your scenes are going to be loaded up with assets and VFX.

We are going to map every chunk of LAND accordingly so we have easy access to where every piece of the biome will be.

In this case we ended up dividing our 120 LAND parcels in 10 different chunks of different sizes and shapes.

You should try to divide it in square shapes every time you can, since it will make things easier for production later on, such as making sure that every entity is within the boundaries of our LAND.

Setting up your LAND

Now that we are done with pre-production it’s time to get things cooking. We will be using Blender for this phase of the workflow but you can adapt it to your software of choice with ease.

The purpose of this phase is to layout all of our LAND in our 3D editing software so we can have a bridge between our 3D editing tools and Decentraland, allowing us to quickly iterate our work when needed and make seamless connections among our chunks of LAND.

The way to properly do this is to create a plane and divide it in 16x16m squares so each quad represents the size of one LAND in Decentraland. The shape should also match your previously mapped coordinates. We recommend separating the plane in the different chunks of LAND as well.

Make sure that the bottom left corner of your plane is in the 0,0,0 coordinates within your 3D software.

LAND layout in Blender

Now that we have our base, we can start building on top of it, using our snapping tools to make sure everything we build is within the boundaries of our LAND parcels.

Building the environment

So far we have developed a very solid base for us to start working in the environment, everything is set up properly so we don’t have to worry about anything other than just producing our 3D assets and composition.

Blocking

It’s time to block out our entire biome, in this phase we decide the distribution of every element that composes our biome, the variances in height among the different part of the environment, and the functionality and cohesion of every LAND.

Entire biome blocked out

Always make sure that every chunk of land is respecting the distribution that we already set up in the pre-production phase. This will make exporting and deploying into Decentraland much easier.

Do not waste time in creating very defined shapes, your main goal is to understand where everything will be placed and a very rough general composition.

Iterations

At this point we could already export our LAND into Decentraland and start testing it. This workflow allows us to come back to our 3D scene and keep iterating it as much as you need, in a non-destructive way.

Our goal for this specific biome was to start making things look a lot more organic and close to the final result that we want to achieve. It’s still a work in progress so there is a lot more iterations to do in the near future, hence why we made sure to create a bulletproof workflow that allow us to do so.

Mountains, hills and cliffs iteration

Exporting our LAND

Let’s move our environment into Unity! This part requires a bit of attention since we can’t just export our LAND as it is right now. The bottom left corner of that specific chunk of LAND needs to have their origin in the World’s origin coordinates (0,0,0), which means we will have to move them individually before exporting.

We will be using L1 (our first chunk of LAND) as an example for the rest of the guide. Every other chunk should follow the same instructions.

L1 before moving it to the World’s origin
L1 after moving it to the World’s origin

If you are using Blender make sure to apply all transformations before exporting. Select all the L1 objects and export as .fbx.

Setting up the scenes in Unity

So far we have a Decentraland-ready chunk of LAND that we can iterate at any point and should be within the boundaries of its coordinates.

Now we have to import this .fbx with L1 into Unity, but before doing so we have to set up a scene with the LAND coordinates for L1.

LAND parcels set up in Unity

Thankfully, we have done our pre-production labour and can easily go check which coordinates belong to L1, so we can easily set this scene up in a matter of minutes.

Remember that we will have to do this for every remaining pieces of LAND as well.

Deploying into Decentraland

It’s time to check our LAND in Decentraland. Take your previously imported .fbx and place it in the scene. If you followed the instructions it should fit perfectly and will have its pivot point in the origin of our LAND (bottom left corner).

Now simply export the scene to Decentraland and test it with a local deploy.

Once you confirmed that it works you can go back and iterate it until you reach perfection (or not) without any worries about your LAND parcels not being aligned, or within the boundaries of Decentraland.

L1 test in Decentraland

Conclusion

Working with a large amount of LAND can be a very delicate and exhausting work if the foundation of your work isn’t prepared carefully. The best way to go about this is to spend some time with the pre-production and setting everything up properly so you can make as many changes as you need without missing out on that seamless result that we are looking for.

There is different workarounds that also work to achieve the same result, but the one we teach in this guide has been proven to be a bulletproof workflow that will allow you to work a lot faster and without failure when tackling such massive amount of LAND at the same time.

GG wp!
Blender
Decentraland
Unity
Hugo Serichol
Environment Artist

If you are looking for me, you can find me following the sun

Laura Usón
Creative Art Director

Passionate about videogames, movies and creatures. Artist by day and superhero at night.

Tutorial
How to import Decentraland SkyboxEditor into Unity
Tutorial
Doing a MANA transaction in a Decentraland scene
Tutorial
Canvas (2D UI) Manager in Decentraland