Noel Grünbaum – Game Designer


grunbaum.noel@gmail.com

Procedural Shooter

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)

Role: Creator

Platform: Windows

GitHub Link

Game Link

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.

Discover more from Noel Grünbaum - Game Designer

Subscribe now to keep reading and get access to the full archive.

Continue reading