Procedural Generation of Multiplayer FPS Levels
My Dissertation Project
My final year dissertation discussed the practice of Procedural Generation in games and how would it be applied to generate multiplayer FPS levels. The study required a full investigation into existing examples of FPS levels to analyse level design patterns and determine an effective algorithm to generate levels that conform to those patterns. I created an algorithm that can generate single floored arena style levels with designated team bases and respawn points.
The levels could then be passed into Unity and generated into a full 3D environment to be used for playtesting. The levels would be playtested by volounteer participants who would rate the quality of their experience when playing a multiplayer game on the map.
Spawn points in these levels need to be placed in hidden or obscured parts of the room to reduce the chance of a player immediately being attacked by an enemy when they respawn. I implemented a system that can determine what a player can see when looking into a room. A heatmap is made of the level map which represents what a player can see when peering into a room through it's entrances. Using this generated map, the spawn points are placed in the safest areas in each room allowing spawn points to be placed dynamically in the map in sensible positions.
The source for this project is here: Github