top of page

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.

bottom of page