top of page
Alone in the Ocean: Kinesthetic Flow Project

Alone in the Ocean is an interactive simulation that I created for my Game Feel class. You play as a person stranded in the middle of the ocean and can swim around. This is intended to be a short experience, as the player will quickly find that their supposed goal doesn’t actually exist.

For the waves, I decided to use Unity’s HDRP water system. I chose it because it was easy to use and had lots of customizability, but it came with a performance tradeoff. Given the goals of the assignment and the limited time I had, I determined that the extra performance cost was worth the risk. To ensure that the performance stayed at an acceptable rate, I used the other 3rd party assets sparingly.

​

The floating was achieved by applying upward forces on an object when they are below the water height, which is given by a search function in the water system. The strength of the force is determined by the distance that the object is from the water height.

​

The goal of the swimming controls was to feel like a person doing breathe stroke. I achieved this by applying a force which quickly increases in intensity and then stops for a period of time. This gives the swimming the impression that it is done in bursts. I also move the camera down and up in order to simulate the head movement. In order to make the movement more noticeable with the fast moving waves around the player, I made the swim speed a bit unrealistically fast.

​

In order to achieve the feeling that the player is exhausted, I used a vignette effect and a focus distance effect. The vignette effect grows and shrinks in conjunction with the splash sound effect. The focus distance decreases over time and eventually makes the player’s vision blurry. When the vision is blurry, I temporarily disable the player movement. Both of these effects were achieved by evaluating animation curves with a timer value. I decided this was the best approach due to the flexibility that curves bring.

​

Given the short time I had to develop this project, I determined that it was best not to have an end state, so I made the island an illusion that is always 600 meters away from the player. In order to convey the illusion, I have the island occasionally fade in and out of visibility. At the beginning of the project, I chose to use a 3D model for the island, and this revealed to be problematic for the performance. The framerate fluctuated by around a 10 fps difference whenever the island was in the process of fading. In order to mitigate this, I took a screenshot of the island and replaced the island with a 2D sprite. Given the distance that the island is from the player, this change didn’t make a difference visually, but it did help with the performance.

​

Using Unity’s built-in lens flare effects, I created a lens flare that consisted of rays around the sun as well as rays in a line going towards the center of the screen. The lens flare fades in and out at a certain threshold in order to feel intuitive. In order to further sell the idea of the player being exhausted, I also muted the colors of the simulation.

​

When the player gets tired, I decrease the pitch of all of the audio to give the impression that the player is losing focus. I have this change trigger when the player movement is disabled so that it acts as feedback telling the player that they have to stop doing an input. I have the pitch change be instant so that it avoids making a sliding sound which does not fit.

bottom of page