This first-person horror exploration game is like no other: the “protagonist” or character who experiences the game from start to finish is not a person or animal, but a hand-held camera. 10 people encounter this camera at different points in time. Together, with the footage they collect and new items they bring along, the player may be able to escape the deadly forest.
I wanted to create something that was never done before: a maze that is traversed only through sound. Through some early testing, I found that some players found this no challenge and a lot of fun, while some struggled with getting passed the first section. For this reason, I decided that one of the early items gained by the player would be the glowstick - an item that may help the player from getting lost while they try and reach the other side.
In my research, I only came across one audio-based maze - Maze Sounds (2016). Key differences between my design and Maze Sounds are as follows: Maze Sounds has the same path every time for the player, so they can memorise it; the path is on a grid system so they can move up, left, or right, so the game seems like a trial and error; and when the player goes out of bounds, they die instantly. In Camcorder Operator[s], the path is re-generated every time the player dies, the path follows an organic structure (see section on path generator), and there is an out-of-bounds timer so that the player can quickly retrace their steps.
The path generator that I created for this game (as with all the code in this project) gets the coordinates between the start(A) and end(B) points, then it gets the midpoint(C) between those. This midpoint(C) is placed randomly on a perpendicular line to the original slope(AB). This process is then repeated to get quarter and eighth points. This allowed me to create a system in which, upon reset, the player's path is different every time (below are some examples of random paths). This makes the player move away from an over-reliance on their sense of sight (the sense that is usually most important in games) and prevents the player from being able to brute-force or remember the paths.
Another thing I created through code is a tile system that spans 35 columns and rows - 1225 tiles (see below). This, of course, would be impossible to place manually and would be taxing on machine memory. To solve this problem, I created a script to instantiate only three tiles in every direction from the player (so that the player would not see that tiles are disappearing and reappearing). Once satisfied with my custom landscape spawner, I used Unity’s tree generator to create three unique trees and randomly populated the tiles. Through my scripting, I limited the placement of the trees so that the player would always be able to walk through the forest and not get stuck. I also defined 'limiting areas' - locations on the 1225 tile grid where the trees cannot spawn. The purpose of this is so that I can manually place tiles in certain locations (such as a shop, road, and campsites - see below).
Tree-Spawner Example (Unity Editor View)
Tree-Spawner Upon Reaching ‘Limiting Area’ (Unity Editor View)
Shop (Gameplay Screenshot)
Road (Gameplay Screenshot)
Campsite (Gameplay Screenshot)
Like most of the other elements in the game, I wanted to design something that a player could learn about through trial and error. Moving away from traditional game tutorials, I created systems that a player could play around with and figure out. The two puzzles that I created were a lock-picking puzzle and a clock-digit puzzle.
The lock-picking puzzle has the player tap each lock-pin until it clicks (if they tap too many times all of the lock-pins are reset and they must pick until each pin is set again).
The second puzzle involves the player finding a four-digit combination to open a till (cash register). Beside the till there is an alarm clock, and in the distance, an analog clock (still in view for the player from the till). The analog clock points to the time that is used to open the cash register. The alarm cycles through three different times (one is the code to open the till and the other two are false random numbers). Using both the information from the clock and the alarm, the player can decrypt and break into the locked till, get the key inside and continue their escape out of the forest.
Project Created in:
Unity 2022.3.10f1
Blender 4.0.2
Adobe Substance 3D Painter 9.1.2
Photoshop 25.5.0
In-game Fonts:
VT323 (from Google Fonts - open source)
Liberation Sans (from Unity TMPro - open source)
Audio from FreeSound (open source):
‘Four_Voices_Whispering_5_wEcho’ by geoneo0
‘spooky whispers’ by steven169
‘Rustling bubblewrap’ by giddster
‘20090814.strong.wind’ by dobroide
‘BGSaSc Fan Air Howl Spin Down Turn Off Exterior’ by Profispiesser
‘MantelClockTicks’ by deveincamas
‘CLICK_173’ by Jaszunio15
Special Thanks:
My parents (Emer and Kevin), my brother (Matthew), and my girlfriend (Erinn) who always support me in my projects however big or small.
John Healy in whose class I developed an early prototype, and the other lecturers at TUDublin who have taught me valuable aspects of designing games to 3D modeling.
The Laptop Shop who were able to salvage a close-to-finished version of this game from my broken SSD.
Stephen Rockett: Game Design, Art, and Programming
All work, unless listed directly above (audio and fonts), is original by Stephen Rockett