3D Procedurally generated shooter
Tools: Unreal Engine 5, GitHub


Duration:
- Some months on and off for initial game.
- 3 weeks pre-production (10 March – 28 March)
- 7 weeks production (31 March – 16 May)
Team Size: Solo + Mentor (Martin Annander)
This project started some months earlier when I chose to make a Doom inspired shooter. I slowly made a very simple shooter, working on it occasionally in my free time. For the Graduation Project at Futuregames I wanted to do something with procedural Level Generation and chose this project as my test subject. I chose Procedural Level Generation because I think it’s really interesting both as an idea and that it’s fun to work with. I had some experience making levels for it from a previous project (Game Project 4 at Futuregames) but I had not touched the code in that project. Below is a video of the game as it was just before the graduation project.
Overview
- Brute force room placing to make a level
- Using anchors and math to fit the rooms together
- Filling unused openings in the rooms with plugs
- Central spawning system
- Which tells pre placed points in rooms to spawn enemies and pickups
I initially made a manager that simply loaded an array of levels. They all loaded at the same origin so I needed to move them and attach the rooms with anchors.

Then with the help of my mentor I was able to make a robust enough system to spawn blueprints that contained a “room” with anchors to attach to neighboring rooms. Then the unused anchors will get filled and the end result is a level with openings between rooms but no holes in the void.

When making rooms I realized that I needed a central system managing enemy and pickup spawns as different playthroughs would sometimes have no enemies at all or way too many.

I made a system that would randomly pick pre placed points in space to spawn enemies and pickups to a certain amount that scaled with the amount of rooms.
After that I exposed the room count and generation seed to the player in a main menu and polished things slightly.
Below is a video of a 1000 rooms taken in editor after the project was done.
I unfortunately did not get too much time to actually think about the design side of things and make it play like Doom but I am pleased that I managed to make a system this complex so I’m not too upset. If I had more time I would definitely spend time really thinking about room design, amount of pickups vs enemies, enemy design that worked well with weird room sequences, and general design surrounding procedural levels.
