Zotbox – Block Textures

So finally I am working on my own set of block textures and like programmer art there is also such a thing as programmer art style! Yes I am attempting to develop my own art style or aesthetic. Here is an example of the side of the grass block.

This approach looks really nice in VR. The sweet spot for textures to have a nice retro pixel art look is about 32 pixels per meter. Then it varies up and down. For larger objects the pixels become larger so it doesn’t start looking high resolution and smaller objects the pixels are smaller to allow for some detail. For example the palm trunks and rocks have a smaller texture while the butterflies have a larger texture.

For the blocks I try to maintain the 16 pixel texture (32 pixel per meter) look while taking advantage of twice the resolution. In Blockbench I block out the color using a 16×16 texture then scale it up and add additional detail while keeping some of the 16×16 structure. Here are a couple of screenshots showing them.

The dirt, grass, stone, and sand blocks are the new ones. I am still following a color palette similar to vanilla Minecraft though because that is classic!

Share This:

Zotbox – Grass

What could be hiding in the grass? A giant spider waiting to shoot it’s venom in your direction or maybe an undead skeleton torso crawling toward the sound of your footsteps?

A lush environment is crucial for immersion and suspense. I have been pushing towards a baseline trying to solve various performance issues to open up these possibilities. I now have a working block model system so I am not constrained to just blocks in the core terrain generation.

This allows for doing streamlined block models which are more efficient than details. Usually there are many of these and they are mostly the size of blocks or close to that. They also follow a more procedural approach to generating the mesh. Think slabs, stairs or grass, etc. from Minecraft. They work with the block based lighting interpreting the lighting levels onto the model and also blocking light themselves. They are really in-between basic blocks and the detail system which are full models built using Blockbench spanning many blocks.

This first implementation is a simple plane/texture grass block model. It has features like a range of sizes that are driven by a position based deterministic hash. It also has two different textures for each direction and these are also randomized by the hash. I may also do a third plane and offset the rotation based on the hash. There are lots of possibilities just with this one block model.

Share This:

Zotbox – Details

I have been working a great deal on performance issues lately around adding detail models into Zotbox. I wanted to explain the changes and progress since it may help other developers working with similar designs. My goal for Zotbox and Lost Loot is to achieve a fairly dense environment which means lots of trees, bushes, grass etc. This is extremely difficult in mobile VR. I am excited to have made some solid progress recently! Here… Continue reading

Zotbox – Sunset Walk

Here is a nice sunset walk with some test plants using the alpha clipping option in the detail models! I had to reduce the trees some so Quest 2 can handle it better. I will eventually have more lush areas vs dry areas with different grass blocks and plants. The palm trees will be clustered in these lush areas so there won’t be as many but it will look more natural.

I am quickly realizing the SRP batching even when it is working well isn’t going to cut it for lots of smaller terrain details. In these scenes it is usually dropping draw calls from many hundreds to under fifty. But it has overhead and I am running into performance walls here with Quest 2 which is my baseline.

It is definitely time to work on block models which could handle things like smaller grass and flower details better. These would be meshed into the chunks directly and the only overhead is additional vertices/triangles to render. I also need to start making my own block textures and building an atlas based on what is defined for the regions.

I feel the lighting can work the same way with the block models by introducing some amount of occlusion in the blocks they occupy. You will notice that here when I throw down the torch at the end. The plants block the light some just like the rocks.

Share This:

Zotbox – Lighting

It’s been a while since I’ve made a longer post, so I wanted to share all the progress I’ve made on the lighting system in Zotbox and explain some of the technical details behind it. While I’ve shared bits and pieces before, I didn’t go into much depth about how it all works. This is just the first iteration of my work in this area, and I have plenty of additional features and improvements planned… Continue reading

Zotbox – Global Illumination

I am excited to show off a preview of the block based global illumination in Zotbox. This is similar to the vanilla Minecraft skylight plus block light GI approach. However if you look closely you can see how the detail objects like the rocks and trees are also lit correctly.

For example the rock is lit on one side with the light and casts some occlusion on the back side. This is a combination of the GI and the detail objects ‘occupying’ blocks. The block lighting is then applied to the detail models as vertex colors. It makes a really nice basic lighting effect.

The scene is just one I made quickly on the Quest 2 while playing around and testing with some very rudimentary building tools. It’s just like Minecraft – running around adding and removing blocks. Loads of fun in VR!

Share This:

Zotbox – Ambient Occlusion

I’ve been working on the lighting system for Zotbox, and here’s a sneak peek of the block-based ambient occlusion applied to the blocks and detail models including the blocks the detail models ‘occupy’! This really elevates the block visuals and helps to ‘anchor’ the details in the terrain.

Share This:

8 Year Old Concept Art

Here is some concept art from my 8 year old son – two units we will have in the alien invasion arcade game we are working on.  He likes to mock things up in Minecraft.  I am starting to train him with MagicaVoxel which is what I am using to build the voxel models for the game.  These units will likely grow in detail over time.  I am focusing on a programmer art approach which is to get things in then refine them over time as the game play takes shape and the fun emerges!

Share This:

Rift Ramblings (Part 6)

    Time for another take on Oculus, the Rift, and the new VR industry that is forming.  Everything has pretty much exploded since Facebook purchased the company.  That put Oculus on the map and brought a great deal of attention to the company and the new wave of VR technology now emerging.  We even had the first official conference for consumer virtual reality put together by SVVR. For a complete and well written account of… Continue reading