New world generation


New World Generation

In our continuous effort to create a rich and immersive world in ZomdeadZ, we’ve developed a new world generation system that takes inspiration from the best, while trying our own twist.


Building on Lessons Learned: Wave Function Collapse

In a previous article, we discussed our experiences with Wave Function Collapse (WFC) for world generation. While WFC taught us a lot about creating worlds based on rules and ensuring coherence, we encountered significant challenges when scaling this system to larger worlds. These challenges led us to explore new approaches while retaining some of the valuable lessons learned. We now use this knowledge to enhance our post-processing steps, particularly in creating more coherent water bodies within the generated world.

Future Plans: Expanding Tile Transitions

Although the current system generates a dynamic and diverse world, we recognize the importance of smooth transitions between tiles. We plan to implement more transition rules to ensure that all tiles blend seamlessly with their adjacent tiles. This feature is still under development and not yet fully implemented, but it’s a key focus for future updates. This is currently used for water.

Infinite Worlds and the Possibility of Restrictions

Currently, the worlds in ZomdeadZ are infinite, allowing players to explore endlessly. However, we are considering restricting the world size in the future to enhance gameplay, especially in terms of resource management and player interaction. This decision will be based on upcoming playtests where we’ll evaluate the impact of both infinite and finite worlds on the player experience.

Inspiration from Minecraft: Multi-Layered Perlin Noise

Our current world generation is heavily inspired by Minecraft, particularly its use of Perlin noise to create natural landscapes. We employ multiple layers of Perlin noise to define key attributes like elevation, humidity, and temperature. These layers interact to determine the biome and the specific tiles that can be placed in each area. For example, where humidity and temperature overlap in specific ways, the world generation algorithm might place a forest or a desert.

Technical Details: C++ Node Module

The entire world generation system is implemented in C++ as a Node.js module for our server. This setup allows us to leverage the performance benefits of C++ while integrating seamlessly with our Node.js-based server infrastructure. It’s a powerful combination that enables efficient generation of large, complex worlds in real-time.

Layered World Generation: Tiles, Trees, and More

The world generation system uses multiple layers to add depth and variety to the environment. Currently, we have layers for tiles and trees, with plans to implement additional layers for decorations, such as rocks or small plants, to further enrich the landscape. Upper layers, such as trees, are subject to rules based on the underlying tile; for instance, trees can only spawn on grass tiles. These rules ensure that the world feels logical and consistent.

Conclusion

Our new world generation system is a significant step forward for ZomdeadZ. By integrating lessons from past experiences and drawing inspiration from established games like Minecraft, we’ve created a dynamic and infinite world that’s rich in variety and depth. As we continue to refine this system, we’re excited to see how it evolves through player feedback and ongoing development.

Leave a comment

Log in with itch.io to leave a comment.