Game
CaveVox
3 months ago

Devlog #2: Generation


A week has passed since the last devlog, and this is day 19 of CaveVox development. This time, let's talk about generation.

So, what is generation? Generation (or procedural generation) is the process of creating something using automated algorithms. When we talk about a game dungeon, we refer to a complex and vast space that could be created manually - but that would eliminate replayability. For example, in the game ExoHub, a level editor was developed, yet even there generation algorithms are used - for instance, to spawn items across a level. It's a physically non-trivial task to build a deep and living game environment.

That’s why we rely on level generation.

What is a level made of? A level is a space consisting of a huge number of blocks (ceiling, walls, floor), divided into chunks for optimization. Dungeon rooms are placed within this space. Initially, the idea was to create an editor - and it was even tested - to manually design rooms and then randomly place them, and so on. However, this approach remained limited and time-consuming during development. So we decided to go with a more flexible approach: patterns.

Patterns are groups of objects connected by meaning. For example, instead of placing tables manually in a room, the algorithm does it automatically, taking into account necessary factors. This significantly saves development time and provides endless replayability. Likewise, it allows us to define that some locations are unique or special on a level (or floor), or that certain places should not border other types of locations. It all depends on the algorithm used. This can also be applied to monster placement.

CaveVox also uses Godot as its renderer, while most of the core logic is implemented in Rust, which significantly speeds up processes like generation. This is much faster compared to using languages like GDScript, C/C++, Java, C#, and others. The primary concern here was performance and stability - and Rust handles both incredibly well. It was necessary to create a system similar to chunk-based worlds in games like Minecraft or Vintage Story, in order to support massive in-game locations - and such a system was implemented. These world sections are loaded dynamically around the player, not only enabling large-scale levels but also optimizing the computational load on the system.

Currently, the system works as follows:

  • Rooms are created based on their meaning (corridor, dining room, etc.);

  • Physical rooms are generated and placed into chunks;

  • Objects are placed contextually (e.g., chairs and other items are placed near a table).

250706_0.png
250706_1.png

In CaveVox, all dungeon levels (floors) are thematically predefined (for example, floors 1 through 5 are all labyrinths). However, each floor can have its own unique features and will always have varied generation for most environmental items. This ensures players don't lose interest even after multiple playthroughs.

This system can also easily support item logic - such as opening chests, triggering traps, and other mechanics. This enhances player interaction with the world. More about this will come in future devlogs!

Thank you for reading this Devlog!



0 comments

Loading...

Next up

This Satuday we invite to watch another #speedpainting of our artist Daniel Faiad.

How great is this scene of #Pecaminosa?

#ScreenShotSaturday | #IndieDev | #DigitalArt

Bandana Dee the Dream Friend

Enemies can also suddenly spawn through Realm Rifts. These Rift Spawns are going to be stronger than the ones wandering around. TBD on the enemies... #screenshotsaturday #godstear #madewithunity

I have added rewards for quests so that villagers can give you something in return for your hard work helping them. 🥳

I want to know - what's your favourite quest reward?

Updated the chest in the maze, adding sound, particles and better animation. But what's in the chest?

Back in my art school days I used to ride the 710 COPSA line from Parque Del Plata to Montevideo almost everyday. This is the Marcopolo Viaggio G4 Mercedes Benz model from the late 80s, one of the older bus models that was running on the line.

Demonstration of the spells and their effects :)!

Levels' maps.

Made my first ever animation.

If you’ve played the Vault demo and enjoyed it, please consider ‘liking’ the game page here on Gamejolt and/or leave a comment!

Also please consider tossing Vault on your Wishlist, I really appreciate your support!

https://store.steampowered.com/app/1251800