Zotbox – Terrain

I have been slowly working on rebuilding the entire terrain system for Zotbox with a Minecraft style block terrain while also shifting over to the URP from the legacy built-in renderer. I am now at a point where I am excited to reveal all the coolness of where this is heading.

Zotbox and No Future were originally created using a tile based terrain system that was flat with each tile being 10mx10m. This provided a nice system and essentially was created this way due to the design of the Synty Studios Simple Apocalypse art pack I was using. It also relied on instancing for the terrain tiles to render efficiently. The instancing was possible because the art pack used low poly modeling using a single shader and texture for lookup of colors of faces based on vertex uv values.

After getting No Future to a good working state I started wanting to build out more content and do things like a construction system. At this point I felt like the flat terrain was going to be really limiting and I wanted to do some kind of destructible buildings. I decided that the flat tile terrain just wasn’t going to work well over time. I also have a secret desire to remake Lost Loot and that was going to be impossible with the architecture I had for the terrain.

A Minecraft Style Block Terrain

After a lot of experimentation and testing and grinding on a complete rework. I now have a Minecraft style block terrain system running nicely on Quest 2. I have also shifted over to the URP to take advantage of its better batching system which is superior to instancing. I now have a block based terrain system that is destructible and modifiable and will blend into structures where blocks and models will be mixed together.

Minecraft block and ‘pixel’ sizes don’t work too well in VR because they are rather large. A Minecraft block is 1m and the ‘pixel’ rendered on it is 1/16 of that. I have chosen to do terrain with blocks and subsequently ‘pixels’ half that size. So in Zotbox the block size is half a meter. This feels right for using blocks to build things like a wall for example and is a good grid to snap models into. The resulting texture ‘pixel’ size is also nice – not too large and not too small with a nice retro pixel art feel.

Modeling Using Blockbench

With the ability of URP to batch on shader variant it is now possible to efficiently render many meshes that have different textures so this has opened up a shift in art style to one that will blend well with the voxel terrain. I am now creating models using Blockbench and the ‘pixel’ size on the models matches the ‘pixel size’ on the terrain blocks.

Another aspect of this shift to Blockbench as a primary modeling tool is to allow outside creation of models from a simpler more accessible tool just like how it is used in Minecraft modding. I don’t want to have Zotbox be dependent on models that must be processed by Unity and be embedded or stored in asset bundles. I am continuing to test out the process of using glTF models as an intermediate format and loading them from outside the build. Using Unity glTFast I am having good success.

This major update is really exciting and will shift the art style to one that I am more excited for with a good tool for modeling, texturing, and animation. I hope to eventually achieve an art style similar to Hytale!

Share This:
Bookmark the permalink.

Leave a Reply