What The Tide Brought In
An atmospheric narrative game about perception and memory.
My Roles: Unity Developer, C# Programmer and Sound Designer
About
This was a game I made for the Season of the Dev game jam in 48 hours alongside friends and colleagues Jackson Smollen and Jas Perry. The theme was ‘Astonishing, Beach, and Connection.’ We settled on a game about using a metal detector on the beach to uncover relics with a strange connection to the player, leading to an astonishing realization.
My Contributions
Metal detector and digging mechanic
Item inspector (akin to the Amnesia series)
Dialogue system
Post processing manipulation
Sound design
Voice overs (that's me!)
Dynamic audio that reacts to game state
[REDACTED]
Planning
When brainstorming on a tight deadline I like to make a mind-map of the core idea and branch out with anything related. Through this process game ideas naturally emerge as interesting connections are discovered. Each idea then had to pass three filters:
Is it small in scope?
Do we have the required skills?
Does the game have appeal?
We decided on a game about using a metal detector to find items on a beach that are connected to the player in astonishing ways.
The player walks along the beach in first person hovering their metal detector over the sand. When it beeps, the player can switch to their shovel and dig up the item, revealing a nugget of story and prompting the character to occasionally react.
While initially presented as an innocent cozy game about collecting trinkets, What the Tide Brought In subverts these expectations to deliver on it’s experience goals. The game toys with the players perception through intentional ‘bugs’ and strange occurrences that make them question their memory. It uses uncertainty, confusion, and dread to immerse players in a story of a lost soul coming to terms with their demise.
Development
We started development by plotting the narrative beats we wanted the player to experience and thought of what items could tell that story indirectly.
The artists then got to work on the item models while I started on the core mechanics: the metal detector, shovel, and item inspection.
The first problem we ran into was how to guide players towards the items. Metal detectors beep (screech?) when hovering over metallic objects or have some sort of visual indicator. Unfortunately, this only lets the user know when they’ve found something, not where they should look to find something. There were only so many items to collect and with each item the player collected, the harder it was to find the next. How do we stop the player aimlessly walking around an empty beach, finding nothing?
The first trick was to modulate the pitch and speed of the metal detector’s beep to give the player constant feedback. (“Warmer, warmer, colder, HOT!”)
The next trick was to use a forgiving radius around the item and teleport it underneath the shovel when the player starts digging. This reduces the margin for error and subsequent frustration when just too far away.
The last trick was to add a subtle prompt at the top of the screen when within the dig radius. Importantly, this only appears when using the shovel, meaning players still needed to use the metal detector to get close enough to trigger it.
Once the main mechanics were finished, I created a simple dialogue system using scriptable objects. Each dialogue object contains the text and audio for that line, as well as which node to go to next. An event bus then listens for anything that triggers the dialogue, passing in the starting node. If a dialogue node isn’t connected to another node, the event bus ends the dialogue.
With no real audio equipment, I resorted to recording my voice lines on an iPhone under the bed of our bungalow. I stuffed it with blankets and pillows for absorption and a little soundproofing.
With a solid framework in place, I was free to work on features that enhanced the tone and completed the experience.
It rained the entire weekend. The light pattering on the roof and overcast sky bled into our game; the character fell victim to a terrible storm. As the character uncovers polaroid’s, the storm becomes more intense. I used audio of thunder synced to an animation curve that controlled the strength of a bright white light to simulate the lightning and a particle system around the player to simulate rain drops.
I created a post-processing modulator that could be triggered through code to create some otherworldly effects. I used this whenever the player collected a polaroid - one of the games key story items - to reflect the character noticing something that breaks their perceived reality.
One trick we used a lot is objects that teleport or disappear when the player isn’t looking. This creates moments of ‘wait, was that always there?’ that mimic the player characters confusion.
After some internal playtesting, we felt the game needed a bigger reveal for it’s final moment. The entire experience hinged on the players sudden realization that they’re playing as a ghost.
The ‘stalkers’ were added to foreshadow this reveal and guide the player gracefully to the games climax: using the metal detector to find your own skeleton.
The stalkers are present from the start of the game but hide in the treeline and vanish when you look away. We wanted the player to feel like they we’re being watched but unable to figure out why. As the game progresses, the stalkers become more obvious, prompting the player to walk towards them and visit sections of the beach that contain the polaroids. This culminates in them standing around the location of your buried skeleton, like friendly ghosts helping you reach the afterlife.
Outcomes
Released on Itch.io
Showcased at Netherworld Indie Dev Night