The project itself was developed from a simple framework provided, which involved a placeholder scene and a character controller for the player with some 2D assets provided to use. I developed the framework myself to create a simple horror game loop within a short period of time. When working on this project it was my first time having worked both with C# and inside of unity, and I was able to learn a lot from this experience. I handled creating all of the mechanics displayed inside of the game, as well as creating a lot of the 2D sprites used including the character sprite sheet.
The overall goal of the game is to escape the building by collecting 3 objects hidden throughout the map, locked behind various puzzles in order to unlock the door. The game revolves around 1 core mechanic which is present throughout the game experience, first displaying itself within the menu screen itself, and then inside the game itself. The game is based around this idea of 'Nyctophobia' which is the fear of the dark, to build upon this idea I made the darkness itself the enemy which ends the player, by incorporating a light source attached to the cursor which acts as the players lifeline.
The flashlight's battery life acts as the health bar for this game, and can be toggled on and off, to conserve power, and to go alongside this their is a sanity metre present to go with this. When the player is submerged in darkness for a set duration the sanity metre will increase, to present the characters mental state beginning to decline, and if this metre reaches the end the player will die and lose the game , and to prevent this either the flashlight must remain on or the player must be inside of a lit area to reset the sanity metre. The flashlight has been attached to the cursor to fit the games aesthetic and to make it easy to control/navigate alongside the character itself.
Most of the assets present inside of the game were made by myself inside of Aseperite, including key art pieces like the character sprite sheet itself, and the background used inside of the menu. The character sprite sheet itself turned out well, but they're areas that can be improved on. This was my first time attempting to create such a large sprite sheet for a character, but it did turn out well and fits into the overall look I wanted the character to have.
Tile Puzzle:
The tile puzzle was one of the more complex mechanics I created for the game and I needed to do some research in order to create it. The tile puzzle itself took some time to put together and the code for the puzzle ended up being more simple than I initially had thought. One important thing to note about the tile game however was it required an algorithm to be applied to it in order for it to function every time. This algorithm was required in order to check whether a set tile state would be solvable to prevent the player being given iterations of the puzzle that were not able to be completed soft locking the player out of the game forcing them to restart. The algorithm I used can be found here, this solution is centred around a 4x4 puzzle, whereas the puzzle in my game is a 3x5 instead, so I had to modify the existing solution in order for it to work for the dimensions I had for my own puzzle. The art used for the puzzle itself was something I create inside of photoshop for a previous project.