While working on another game, I had an idea for a minigame that involved darkness and a confusing set of identical rooms as an arena for two players to sneak through, hoping to find the other and shoot them with a single bullet, like a Wild West quick-draw.
I started with the basic idea of a pitch black tessellated hexagonal maze, with many doors. The lights in each cell of the maze would only turn on for that player as the player entered, meaning any danger lurking in the cell would be shown to the player very suddenly. In the minigame idea, this danger was the other player also sneaking through the maze, and they would have one chance to use their one bullet to shoot them. The lights turning on and off would give the players a very short window of time to react (unless both players were quite slow).
I started prototyping the dark maze in Unity 3D, to see if I could get the lights on/off effect that I pictured in my head. The first prototype used a basic player controller script that I wrote, and the player could move around a small maze, with the lights turning on and off as they entered and exited a cell. The experience I was after was one where entering a new room had uncertainty and a bit of fear attached, and this prototype aimed to test if the lighting and shape of the maze could give these feelings and the right atmosphere. A short video of the prototype.
From playing with the prototype, I thought the basic lighting script worked well enough to show potential for the fear and uncertainty aspect of the game, and the shape of the maze gave the right kind of confusing atmosphere.
From this I set out iterating on the prototype, which had a more moody, dark atmosphere, and I implemented a simple enemy into the game that would lay in wait in a random room, testing the quick draw aspect of the game, to help build on the uncertainty/fear of the player. The player controller script for this iteration was becoming more complex, as I decided to use the physics engine, which required more fiddling around to get right. The physics engine gave a more realistic and consistent experience for controls, as the feel of the earlier script was quite arcade-y and distracting, detracting from the intended experience. A short video of this prototype.
The main experiences I wanted to test with this next prototype were the combination of fear of the next room combined with a real need to quick-draw, as well as the feeling of trying to navigate the maze at various sizes. Looking at similar existing game experiences at this point, I realised the game shared some elements of jump scare games. Jump scare games use suspense and fear in a somewhat similar way to the game, but I really didn't want to make it a cheap jump scare game. I wanted to find the balance between suspense and fear, not having the suspense feed the fear in the same way as jump scares, the suspense needed to work alongside the fear.
This prototype really showed me how big of a part the lighting in the cells plays in creating the uncertain atmosphere, and how this atmosphere really has to be exact to get the right feel when the enemy appears. The emotions connected to the act of opening a door were not always consistent. Sometimes it felt exciting and fearful, but sometimes it felt very mundane. The way a door opened needed to expose the player to the contents of the room in a different way to really keep these feelings more exciting each time. This needed to be worked on, as the interaction with doors made a core part of the game's interaction.
I also found that the random spawning positions and constant uncertainty actually worked against the intended experiences. Not enough happened to keep the game exciting and fearful, and the maze was actually too easy to get lost in, moving around became a chore. I planned at this stage to test in the future with an enemy that was actively hunting the player with AI.
After adding more features to the game, like restarts after death, I accidently found a great feature of Unity 3D where scripts are automatically overwritten without a prompt if they share a filename.
This somewhat serendipitous enforced agile method of development actually came at a very good time in the design process. It gave me the opportunity to take the core aspects of interactions and experiences I had found successful through prototyping, and use them in a new way. This loss of work caused the game to change into the form it's in now. I also started to use version control after this point.