Game
CaveVox
9 days ago

Devlog #9: World & Interaction Update


Hello everyone! I’m continuing to share updates on the development of CaveVox despite a short break — more about that below.

To begin with, I’ve decided to move the release from Q4 2025 to February 2026. This decision is based on several factors, but the main reason is that it’s a calmer period for publishing. I also feel the need to polish certain aspects of the game before Early Access. I hope this isn’t too disappointing — the game is coming, and there’s no point in delaying it for too long. Early Access will also receive a steady stream of updates to bring the game to a full release. I’ve updated the Early Access information on the Steam page and refreshed the game’s logo.

Level Generation

After the Early Access announcement, I spent a long time working on a new level generation system. Because of this, I published fewer development updates — but the system is extremely important. The idea is not only to divide the world into chunks (groups of blocks), but also to introduce “levels” as a separate structural layer. In simple terms, it works like this:

  1. In the game files, there are levels with different types of generators (for example, boss room, dungeon surface, main dungeon, and so on). The generators can also be finely tuned so that the levels differ from each other even more;

  2. The player moves, and the player’s displacement relative to the levels is checked. This also allows the player’s status to be updated;

  3. Generation of internal data for the nearest levels from the player begins, which is divided across multiple threads;

  4. Rendering of the chunks visible to the player based on the internal data begins. This is also divided across multiple threads. These are “dirty” chunks — their meshes are not optimized yet, but they render quickly;

  5. Rendering of objects based on internal data begins, which is time-limited to avoid stressing the frame. I am also considering exposing the time limit for generation as a setting so it can be adjusted;

  6. Finally, each chunk generates and renders its optimized mesh at its own pace.

Visually, we get something like a large underground anthill that is generated simultaneously and independently in two planes.

251212_0.png
251212_1.png

As a result, levels are now:

  • Faster to generate, more manageable, and more flexible;

  • Larger in scale;

  • Centered relative to each other and connected with ladders and pits.

Additional generation improvements include:

  • Static traps: floor spikes and wall arrows. These were requested back in the demo, but they were planned specifically for Early Access — and they’re now implemented;

  • Procedural wall shelves, corner cobwebs, and ceiling cobwebs. More floor, wall, and ceiling decoration items are planned — both concepts and generation logic for them already exist;

  • CPU requirements were increased from “2 GHz” to “3 GHz (4 cores)” with a recommended “3+ GHz (4–6 cores, desktop CPU preferred)”. This is because generation is heavily multithreaded and depends on CPU speed. It also serves as a warning for laptop users, since laptop CPUs often run significantly slower.

Visual Style

Previously, I created models in Blockbench, but over time I fully switched to Blender. This allowed me to add new models quickly, update old ones, and create animations. The visual style is now more detailed and less voxel-like, even though the world itself remains voxel-based.

In the demo, you might have noticed visible edges or seams on models. This is a common MSAA artifact when using non-standard geometry and dense textures. Since anti-aliasing provided almost no visual benefit, I completely disabled MSAA, which removed the seams and made the image cleaner. This also applies to SSR, which existed earlier but didn’t function correctly and didn’t affect image quality.

I also added SDFGI (Signed Distance Field Global Illumination). It makes lighting more accurate: softer bounces, more realistic shadows, and an overall deeper scene. Additionally, I introduced a world environment for the dungeon surface, which will later allow smooth transitions when entering or exiting the dungeon, making them feel like distinct areas.

Animations for the player have been reworked and expanded. In a previous devlog, I mentioned experimenting with IK animations, but eventually decided to drop them due to overcomplexity and stylistic issues. The current hand-made animations are detailed and fit the game’s style well — such as climbing up/down ladders, WASD movement, jumping, and falling.

Speaking of ladders — previously, players often struggled to understand which objects were interactable and had to inspect everything closely. Now there is a center-screen cursor, object highlighting, and an interactive panel next to the cursor. Different objects display their unique cursor, available interactions, and the key required for use.

251212_2.png
251212_3.png

Other

This was never mentioned in previous devlogs, but throughout the entire development of CaveVox I’ve found dozens of bugs in the Godot engine. I report them on their GitHub repository to help improve the engine.

I was also pleasantly surprised that out of ~1100 games on IndieDB, players voted for CaveVox and it reached the Top 100. Thank you to everyone who voted and follows the development!

Thank you for reading this devlog! Share it with your friends and anyone who enjoys roguelike games!



0 comments

Loading...

Next up

Bandana Dee the Dream Friend

🍒Did you like the game? A demo is available for free on Steam.

✌️ Thanks for playing IndieGameiacs!

⚙️ Free Demo: http://bit.ly/UniDuni

📺 Full Video: https://youtu.be/5qEbVXg7GaQ

#steam #uniduni #clops #screenshotsaturday

Another house i made long time ago.

Runestones: from concept to in-game model🗿

"Our work is never over" they said.

I-Buki

Mio-Da!

Ibuki Mioda!

One of the most critical update for Sunblaze demo. Now you are able to pet a cat! Finally!

Finished work on the emotions of a new character for the tank universe

Demonstration of the spells and their effects :)!

If you have more of an acquired taste, the restaurants in Niravasi have you covered! Maybe skip the salad bar, though.