Procedural Shooter
2D top-down dungeon crawler shoot-em-up made in Godot
Key Points
Crafted a PCG system to randomly generate a well-designed level for a 2D dungeon crawler prototype.
Developed a system for spawning enemies and power-ups so the generated level was engaging for players.
This project was the first of two projects in my level design class. It is a 2D top-down dungeon crawler and shooter. It procedurally generates a large level with 3 different sections, progressing from easy to hard difficulty, and a boss arena with bullet-hell-like mechanics.
Accomplishments
I created a procedural generation system that generated sections of a level with an area defined by an AABB, using a list of possible rooms and corridors to generate defined by custom resources.
Using this system and multiple rounds of testing and tweaking, I was able to design a series of enemies and a boss that appropriated scaled in difficulty with the player's progression.
At the end of the project, I had a level which was different every time when played, but kept the same kind of engagement and difficulty curve for each player.
Takeaways
Procedural generation is a beast of an idea to tackle. My prototype was a small taste of what implementing a more sophisticated PCG system is like, and while it's an exciting concept to make experiences unique to each player, it is a lot of trouble to do. Still, I would like to explore the possibilities of it in the future.
Adjusting the difficulty curve via my enemies and my powerups was much more difficult than it should have been. If I had been given the time, I definitely would have implemented an autoplay system or a telemetry system to better understand how to balance my combat. Even better, having a simulator for understanding what battles against enemies are like would have made creating an engaging experience a lot easier.


