Summary
In this chapter we learned how our game, which previously loaded predefined level data from a text file, can generate its own level data during runtime. This brings a great level of replayability to the game, ensuring gameplay stays fresh and challenging. We also used a function that we defined in the earlier chapters to bring more character to our levels; we used sprite effects to create a distinct feeling for each floor. Practically all aspects of our game are procedurally generated now, and we have a fully-fledged roguelike project under our belt.
Now that our work on the template project is complete, we'll be using the final chapter to take a look at component-based design. Procedural generation is all about flexibility. Therefore, it makes sense that we'd want to work with the most flexible architecture. Component-based architecture can achieve this. Having a good understanding of this design approach will help you progress and build larger, more flexible systems.