The Legend of Dungeon

A game programmed in Java that served as a "Senior Project" to explore procedural content generation and 2D game development. Named Best Student Project at the 2018 Brandon High School Computer Science Fair. While simple, building this game helped me to better understand object oriented programming, basic game engine loops and interpolation, 2D sprite animation, tilesets and 2D world representation, finite state machines, and 2D collision detection.

Dungeons are generated by starting with a randomly seeded starting room in a 2D grid and progressively choosing a number of neighbours to generate at each step with some random proportion. There are various tuing paramaters set, such as max number of rooms, max neighbours, and the likely hood of being a leaf node. Then, after generating a map of interconnected rooms, the game iterates through all of the leaf nodes and randomly assigns them to be contain either a Boss Key Room, a Boss Room, or a Treasure Room. It is ensured that exactly 1 Boss Key Room and 1 Boss Room are in the map.

View the repository on GitHub