Hello everyone! Over the last week, I have been working towards adding new levels and refining Crumbling World’s procedural generation system in an effort to add more details while at the same time making the game more interesting and fun. The reason for having a number of different levels is to allow the player to feel as if they are exploring and discovering new regions, regardless of how many times they’ve played through the game.
Creating a New Level: The Barbarian Village
At this point in the development of Crumbling World, I feel that it is important to continue to add new levels to the game. The World currently has five main regions: the forest, the barbarian village, the castle, the dungeons, and the caves. While developing the main functionalities for Crumbling World, I used the forest region as a starting point. However, I am now at the point where I can start to lay out the other four regions, and have started doing so with the development of the barbarian village. In short, I wanted to start with the creation of a new level that could work as a sort of transition between each full level. New graphics are starting to bring more excitement to the game, while at the same time allowing for my development process to be more fun and exciting.
New levels mean new landscapes, enemies, unique enemies, and bosses. Whenever I add new details and elements to a level, I do my best to include some sort of signs of civilization. In the case of the barbarian village, I felt that it would be nice to have some kind of paths and walls. However, this led to a new challenge for me, specifically figuring out when I should use a corner, a straight path, or a wall throughout this new level.
Path and Wall System
Throughout my game, the world is constructed on cubes, which I call cells. These cells are spawned randomly depending on where the previous cells were placed within the game. This system allows for the creation of a new random level each time the game is started. Furthermore, each cell is able to randomly generate its own elements, such as trees, rocks, grass, and enemies.
However, when I decided to add walls and paths throughout the game, I had to rethink how my procedural level design should work. The challenge was in figuring out when the level would be generating straights or corners. Thankfully, this was an easy fix, as I was already tracking each cell, so I could figure out when I was getting a corner just by checking the rotation of the previous cell. For example, if the previous rotation was equal to the current cell rotation, that would lead to a straight (and otherwise, a corner).
The second design challenge I ran into was much different, as walls were overlapping and paths continued to break due to an issue with my corners. Thankfully, once again I could know what kind of corner I was getting just by looking at the rotation of the previous cell. When there was a corner, the previous cell was 90 degrees, and the next was 270 degrees (and vice versa). Tracking the previous cell was extremely helpful and made a lot of sense for my Wall and Path System for level generation.
As you can see, the development of Crumbling World is starting to become faster paced. I am expecting to have a demo version ready very soon and look forward to user feedback during beta testing. If you are interested in being a part of this beta test, I would encourage you to sign up using this form. As always, thank you very much for reading, and I will be back with more updates soon!