Goals
The main goal of this update was to create a simple system that would allow players to save their progress. With the addition of this feature, if a player’s character is slain or if a player just wanted to take a break from gameplay they can return and resume their game from where they previously left off. While this seemed to be a pretty easy feature to implement in my mind, I underestimated the issues that I was going to face when I took a deeper dive into the system.
Challenges
After I began work on the save and load system it became apparent that there were going to be some difficulties along the way. In particular, I had two main challenges that I had to work around.
The first challenge I faced was how to handle the procedural generation of the world. As Crumbling World procedurally generates levels, I wasn’t able to implement a system that would allow players to save their game at any given moment. Instead, I created checkpoints at which players would be able to save their progress. Thankfully, I was able to implement this solution much faster than I anticipated. The most significant disadvantage associated with this approach is that there are only a few checkpoints available per level, placed at the base and hubs associated with each level. This means that if players miss one of these checkpoints, they could quickly lose all of their progress. On the other hand, this checkpoint system provided the benefit of greater control, which allows me to instantiate players at these checkpoints regardless of how a given level is generated.
The second challenge with implementing this system involved the Quests. I had to figure out some method of tracking which challenges have been accepted by players and which ones have been completed. This is an especially important feature, as some levels remain closed until players complete certain quests, which means that there could potentially be an issue that would ruin gameplay by either breaking the game or allowing players to reach inaccessible levels without a fix. I solved this challenge by modifying the Quest System. Specifically, I moved the Quests list from the player to the Level Manager, which allowed me to retrieve and directly assign Quests to the player through a Quest ID.
With this being said, one of the limitations of the save and load system is that it can only store certain types of data, such as integers, floats, strings, and boolean operators since binary encryption is used to protect the save files. The ability to save an ID, which is considered an integer, greatly simplified the save and load system. Now, I could check the Level Manager to see which Quests were accepted and completed, which helps the game to better track the progress of the player by merely matching IDs, instead of having to save and load all of the data associated with a Quest. By far, the current system is far more efficient, quick, and straightforward. Now, Crumbling World supports the ability for players to save their progress and enjoy the game even more.
I’m working hard on more exciting and enjoyable features that are sure to improve the playability of Crumbling World. If you’d like to keep updated on upcoming news and updates, please consider signing up in dumearts.com. Alternatively, consider checking out Steam, where you can wishlist Crumbling World. Thanks for reading, and I look forward to sharing more exciting updates with everyone soon!
0 comments