Jaws of Space

An immersive horror experience about exploring an abandoned space facility.

My Roles: Unity Developer, C# Programmer and Sound Designer

A futuristic control room with various high-tech chairs, monitors, and sci-fi equipment, illuminated by soft lighting with a window showing a spaceship interior.
A futuristic space scene with a robot floating near a space station or spacecraft, surrounded by glowing red lights and complex mechanical structures.
A futuristic, tunnel-like corridor with geometric, segmented metal walls illuminated by pink and purple neon lights. The perspective is from the entrance, looking inward towards the darker interior.

About

This was a game I made in 10 days for the Scream Secrets game jam with Jackson Smollen and Jas Perry. The theme was ‘It’s been there all along.’

My Contributions

  • 6DOF Player controller

  • Jump scares (sorry)

  • FSM monster with 3D pathfinding

  • Tutorial

  • Audiologs

  • Post processing manipulation

  • Sound design

  • Voice overs

Planning

Three people standing in front of a computer screen displaying the game "Jaws of Space," holding virtual reality controllers. he woman in the middle is holding a poster and standing near the monitor, and the man on the right has a beard and curly hair.

I can’t take all the credit for the concept. We were at big dev talking to Tex Barnes, one half of the studio Owl Machine working on Key Fairy and very talented game designer. We told them about how we were thinking of doing something with doppelgangers in space. You make repairs to your space station using your 6DOF oxygen-powered jetpack and become increasingly unsettled by the behavior of your partner. You would even need to leave the ship and be completely vulnerable to them. They’ve been here all along; an intergalactic virus that’s now puppeteering your crewmate and lifeline.

They said “That’s cool, but what if it was a shark?”

It was a joke but something about the strangeness of it made it stick with me. The absurdity of it all added to the horror. Everyone knows the fear of the unknown is powerful so when absurd concepts are played straight they can ask so many questions.

We rolled with it. It helped that sharks have their own legendary history. Did you know sharks have existed for over 450 million years? They’ve lived through 5 extinction events. They’re older than the rings of Saturn - have they been here all along?…

We took this concept to the extreme. What if sharks can adapt to any environment? Even space itself. And what would happen if humanity were to push this adaptation to the limit through cruel experiments? What would happen if the monster they created were let loose?

This is the world you inhabit when you enter… JAWS OF SPACE.

Development

Interior view of a spaceship cockpit with illuminated control panels, screens, and buttons amidst darkness.

In terms of game design, horror games are unique. They’re not as beholden to gameplay mechanics as other genres because the real game is between the player and the experience. I’m going to scare you - are you going to keep going? That’s why a walking sim can still be an effective horror game. That’s also why mystery is so powerful in horror - because curiosity might be the only thing more motivating than fear.

The player mechanics were very simple. Use oxygen to propel yourself through the environment. Pick up oxygen canisters to refill. Get to the finish without running out of oxygen. I used rigidbody forces to simulate movement.

One interesting problem we ran into is that real space movement with zero drag is really hard to control. When creating the idea, I thought it’d contribute to the fear if the player controller required precise inputs as this is harder to do when scared. If you allow yourself to get scared and fumble the controls, you spin out, lose your sense of direction, and likely get eaten by the monster or run out of oxygen. However, in practice it was just frustrating. I’m constantly reminded that game ideas often feel different to how I’d expect and you can never assume it’ll just work; the brain is an unreliable game simulator.

Meanwhile the artists had been working on the shark and environmental assets.

My next task was setting up the shark. I used a finite state machine to control it’s behavior with states for patrolling, chasing, and attacking. The shark swims between it’s patrol points until it senses the player. After sensing the player, it chases them. If the player remains outside it’s senses for long enough, it returns to patrolling. Otherwise, it attacks and the player loses the game.

The shark senses the player through a vision cone. It sends a raycast out from it’s eyes and if it hits the player, increases a suspicion meter that eventually switches the state. I considered making it sense noise as well, so that when the player bumped into a wall or prop, the shark might notice them. However, like with using zero drag, it felt a little too punishing getting spotted for bumping a wall. The controls were already difficult enough.

The sharks navigation was the hardest part of development. Navigating on a 2D surface is a solved game development problem. In Unity’s case, it uses the corners of triangles from a baked mesh in combination with the A* pathfinding algorithm to determine the most efficient route. However, navigating through a 3D space is much more difficult.

My first attempt involved using a 3D grid in combination with A*. However, this came with huge drawbacks. The grid required lots of memory and the search algorithm was horribly inefficient. Increasing the size of the cubes used less memory, but our level was a mixture of tight corridors and open spaces, so we needed the fidelity small cubes provided. I did some research into using sparse voxel octrees (SVO) to improve the performance, this resource from Daniel Brewer being a goldmine of useful information, but didn’t feel confident I could create one on my own within the time limit. I ended up swallowing my pride and using HyperNav: 3D Pathfinding and Navigation from someone much smarter than me. Their solution uses a combination of SVO, volumes, and mesh links to create performant navigation across 3D space.

Instead of trying to manually animate each behavior, I used damp transforms to deform the model as it moved in combination with a simple rotation of the head that caused it’s tail to sway. It emulated the flexible cartilage of the shark well without needing to create individual animations.

The level is linear with a few moments where the path diverges before joining again. During playtests, we noticed that players would often get disorientated and go the wrong way. We considered locking doors behind the player as they moved through but this felt contrived. I spent some time mulling it over until I realized the solution was right in front of me. Every time the player goes the wrong direction for too long, the shark spawns around the corner and chases them back in the correct direction. This felt like the perfect solution as it made the shark seem scarier whilst keeping the player on track.

Something I really like about Jaws of Space is the ‘fear’ system. I’ve since used it in many other projects but this was the first time I created it. As the game used a disorientating perspective, I needed a way to make it clear when the player was being chased. I took inspiration from Lethal Company and modulated the post processing, added screen shake, and played a creepy drone sound. The effect was really powerful and added to the intensity of chase sequences whilst allowing the player a moment to breathe once they escaped.

Outcomes

Four people smiling and standing together inside a themed arcade. One person is pointing at another who is holding a space-themed game. The background features a large skull mural with bats and a red and black color scheme.
  • Released on Itch.io

  • Showcased at Netherworld Indie Dev Night

  • Showcased at UQ Reality Labs

View on Itch