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 – Torch

An adventure game cannot exist without torches! While working on the inventory and container system, I created a few test items—including a torch—which led to a deep dive into dynamic lighting.

When the torch is held, it uses a real-time light source. But once released, it switches seamlessly to fast block-based global illumination. If you look closely in the video, you’ll see the lighting transition as I drop the torch into a pit or throw it through a window. The block lighting updates quickly enough that it feels almost real-time. There are no shadow calculations going on!

This setup allows for objects like torches to cast dynamic light when held while the player is moving and still integrate smoothly into the more visually accurate block based global illumination system when placed, dropped, or thrown—enabling a large number of interactive light sources in the world.

Share This:

Zotbox – Movement

After trying out a few different interaction frameworks I settled back on Hurricane VR which I used before and really like – physics based interaction is so important for presence, agency, and immersion. Here are the basic options for smooth/dash movement and smooth/snap turning. This follows the same controls as HLA which I really like and consider a standard. There is sprinting, jumping, crouching, and an initial setup for left vs right hand. I am currently working on the basic inventory/container system and item/weapon handling.

Share This:

Zotbox – Day/Night

Here are some images showing the first pass on the day/night cycle. I have been using a mobile friendly sky dome system which has worked well. I had to build my own gradient generation tool and update the texture to have the horizon color higher and get the fog color matching as time progresses.

With the sky and fog color in sync for the horizon the chunks and detail models fade in/out with movement. The horizon color then transitions in a gradient to the sky color at the top. This is simple and works well for the art style.

I spent some time experimenting with procedural sky box shaders but they are just too expensive. Even the simplest design is like a full screen effect – expensive shader times lots of pixels.

Next I am going to work on the sunset being a different color – more orange. I also want to get the cloud system working which will be tinted with the horizon color.

And for the tech artists out there here is the custom sky dome gradient texture!

Share This:

Zotbox – Underwater

A few images of the underwater lighting as I work on the day/night cycle for Zotbox. These are during the day at three depth levels. The first is the shallow areas with a clearer more turquois color.

The second is the deeper areas with a bluer darker color. The ocean test biome I have going makes large seagrass at these lower areas which are about as tall as a person. There is also a shot showing the headlamp light at this depth.

The last is from the deepest areas where the color is a dark blue and the light level keeps going down until it is black. These areas have little or no seagrass and require a headlamp to see.

Share This:

Zotbox – Water

I now have the basic terrain system with water working for Zotbox. This all runs very smoothly on the Quest 2 with a lot of headroom for future CPU/GPU needs. I use the Quest 2 for testing since this is the baseline. The terrain is scalable so on Quest 3 there will be a larger view distance for example. Getting to this point hasn’t been easy and I am very excited for where this is… Continue reading

Playing Lost Loot Again

Just relaxing a bit after the holidays and decided to play Lost Loot since I haven’t tried it in a while.  It still runs beautifully on the Rift and is so much fun.  There is something nice about just sitting back and relaxing with the controller and wandering the ocean looking for treasure in VR.  It may not be perfect but it is a fun little game and those megalodons in the depths are still scary!

Share This: