Our current organisation for this project is for us separate work into different focuses. My focus being developing the level and general gameplay mechanics. These being the PCG for levels, the first player controls and interactions. Tom’s part will be implementing the narrative PCG system and informing the narrative direction for the project. We have also made use of a Miro board as ideas for the project shown here: [https://miro.com/app/board/o9J_lFMST9g=/]. We are also setting up regular meetings in order to discuss progress and to share ideas on the game.
Current state of PCG
A considerate amount of work had been done for producing the Procedural Generation system for this project. The approach for the PCG(Procedural Generation) was inspired by The Binding of Isaac (McMillen, 2011) and Spelunky (Mossmouth, 2008). These two games were analysed only for their approach in PCG, that is how these games have approached generating the levels.
The Binding of Isaac
Himsl explains that the algorithm in The Binding of Isaac utilises a grid to place “rooms”, these rooms being composed of objects, enemies and walls (Himsl, 2020). The grid is a way of coordinating the placement of the rooms. The algorithm chooses a part of this grid to place on, then generates the entire level. Some of these rooms are unique, that is they contain shops or a boss or other random secrets (Dungeon Generation in Binding of Isaac, 2021).
Spelunky
Spelunky also makes use of a grid as well to place different room types, these vary in four ways: “a tile with the ground on the bottom and nothing to the top, left, or right (an open space); a tile with ground on the bottom and one additional adjacent surface (usually a corner of a room but sometimes a crawlspace); a dead-end nook with access from only one cardinal direction; and a space completely enclosed by solid surfaces.” (Kazemi, 2021).
From what I gather from the above approaches is that a grid system to place rooms is a solid approach, this I have used to base my PCG on. That is the rooms will be placed on a grid, this decision will be up to the algorithm. Binding of Isaac also makes use of unique rooms, for this project I want to make rooms that seem familiar but different. As such I could use unique rooms that are distinct from others and yet the layout of the level changes. Spelunky takes adavantage of the players ability to move between tiles via the cardinal directions too. It uses uniform distribution to decide which way a path should take upon creating a level, as well as deciding from a pool of rooms to choose from. The first decision informs the possible list of rooms to pull from.
What I have learned from the above:
- Use a grid system to place rooms
- Use the cardinal directions as entrances and exits for each room.
- Using and refining lists of possible rooms to place on cells.
- Use uniform distribution to make initial decisions.
Here are the results of the initial prototype:


Testing PCG prototype
This initial prototype uses a 4×4 grid. For our purposes for the project it is deemed to be too small upon discussing with my partner Tom. So this prototype was tested by running the PCG multiple times for any issues. These issues being unintended placements of rooms and also the unsuccessful placements of connecting rooms between main rooms. (Refer back to Rules for room placement in the last dev log: https://collaborative.myblog.arts.ac.uk/2021/05/03/experimental-development-pt-1/)
Testing with the 5×5 grid resulted in some unexpected issues:

The pathing is not able to resolve the connection between the MIDDLE and END rooms due to the previous connecting rooms already placed as they are occupying those cells. As such my solution is to tighten the initial possible placements for the MIDDLE room. Applying this change has resulted in desirable levels.
However there are still empty cells that need to be utilised with additional rooms. The PCG is still not what we wanted for our purposes, however this is more functional and closer to what we need. Upon discussing and showing this to my teammate Tom, we decided that the next objectives are:
- A case study is to be conducted to acquire inspiration for level design to influence the level layout and room shapes.
- Implement level structures closer resembling those of the 90’s arena shooters like Quake and Unreal.
- Apply changes to PCG so that empty cells are used.
We also discussed narrative elements and how these can be possibly introduced by either using markers located inside rooms that the player walks into or making use of pickups that the player collects to trigger narrative elements like text/dialogue.
References
- BorisTheBrave.Com. 2021. Dungeon Generation in Binding of Isaac. [online] Available at: <https://www.boristhebrave.com/2020/09/12/dungeon-generation-in-binding-of-isaac/> [Accessed 14 May 2021].
- Himsl, F., 2020. Binding of Isaac: Room Generation Explained!. Available at: <https://www.youtube.com/watch?v=1-HIA6-LBJc> [Accessed 14 May 2021].
- Kazemi, D., 2021. How to effectively use procedural generation in games. [online] Gamasutra.com. Available at: <https://www.gamasutra.com/view/news/340190/How_to_effectively_use_procedural_generation_in_games.php> [Accessed 14 May 2021].
- Kazemi, D., 2021. Spelunky Generator Lessons. [online] Tinysubversions.com. Available at: <http://tinysubversions.com/spelunkyGen/> [Accessed 14 May 2021].
- McMillen, E. et al., 2011. The Binding of Isaac. [Video game] Linux, OS X, Microsoft Windows. McMillen, E.
- Mossmouth, 2008. Spelunky. [Video game] Microsoft Windows, Xbox 360, Playstation 3, Playstation 4, Playstation Vita, Chrome OS, Switch. Mossmouth, Microsoft Studios.