We usually write about what we learn,
so hopefully you can learn too!
When we started to concoct this project we wanted to recreate an arcade game, easy to play, hard to win, for that purpose we looked into classic games like Zelda or Super Mario.
Finally we looked into the laberynth from the games such as The Legend of Zelda: Majora's Mask, after watching the videos a couple of times, we anoted a couple of details that would be interesting to replicate.
In other articles we have already discussed the limitations of decentraland, when the structures are not very complex or if you have to create a scene with models, there is, usually no problem.
However in Tomb Chaser we wanted to build a really big estructure, so that we could play with the space more precisely. In order to do that we incorporated a few steps to our pipeline to make it faster.
For Decentraland, we utilise unity to mount the scene and use a plugin to export it in local and test the scene. The good thing about unity is that the illumination is very similar to Decentraland so we can see in a game engine how it is going.
In order to accelerate de the process we create prefabs that we already prepare with the collider of decentraland. In this proccess, we learned quite a bit about the gltfs and the engine of Decentraland.
For example the gltf's don't have to ocupe a lot of space, the software doesn't handle them very well, the ambient light travels throught everything and illuminates everything, so the dark ambients have to be faked.
To design a Laberynth, it's not complicated, just think about the start and the finish, then add the rest. One of the good things about decentraland is that you have a lot of height to play with, you can calculate how much you have in your land throught this:
log2(n+1) x 20 Height in meters
where n represents the number of parcels, also you can check this excel where it appears more clearly for designers.
Being a land of 25 we had 94 meters to work with, so when we divided the different floors, we created different storeys, that helped later on to create the open space rooms.
Also we decided to dedicate each floor to theme or traps, that way in each floor we tested one of the abilities of the player, for example on the first was speed and the second, reflexes.
Once we have the design made, was time to think about the textures, this is one of the biggest limitations in the platform, not only there is a limited number of textures for each scene, but you also have to take into account the size. The max size of the textures is 512 kb.
In order to work with that we used two technique that are the most useful for the environment design adn help a lot with optimization; Trim Textures and tileable textures.
With this textures you don't have this problem, since you can reduce the texture and you won't notice. The only thing you have to be careful is in create patterns, if you add something that it's not usual (like the sand mountains below) the pattern is easy to cacth. A way to bypas this is to make it completely random, that way you can conceal it.
Trim textures are similar to tileable textures, however while tileable texture you just have to enlarge the uv sets and you are ready to go. But with the trim textures you divide texture set in small textures, in squares or rectangles better, is easier to scale. That way we can create the small parts of the dungeon without abusing of the use of textures.
Also take into account that if your export your textures, Decentraland only admits .JPG, so it will covert your formats and moreover rotate them 180º.
If you mix the textures, for example columns with flames, and mark the material as a fade it makes the columns transparent to, and don't look good. So if you are going to add transparencies annotate them and prepare them in a single texture.
Before I said that decentraland does not allow you to put custom lights in your scene at the moment, however we can create one, since it allows emissive materials.
In this case we want to create a dark dungeon, to do that first we have to obscure the textures, one way to do it will be add a multiply layer in photoshop, with a dark color. That way you paint the model normally and them control how "dark" you want them throught the multiply layer.
Also since the light, travels throught inverted faces, (interior models like walls) we have to create a cover for them. To prevent the sun for entering the dungeon.
Finaly is time to add some light, what we used were emissive maps but with a low intensity, the emissive has the particularity that when intensity is mayor, it burns the surroundings and you can't see the models below.
I would also recommend use an emissive map, to delimit where emissive is acting, since we want a complete control over our "lights". You can also add movement to the planes throught animation, I would recommend to do it in unity thought because you have more control over waht you animate and the bones are not neccesary, like in other pipelines that you got to rig the mesh to animate it.
All in all, these is a compedium of tips that we have learned while we were working with the platform. It has been an interesting experience, because the limitations pushed us to look for turn arounds and tricks to recreate what we wanted to express.
A wonderfull experience that I can't wait to repeat!