Navigate an endless sunken navy ship, trying to outmaneuver a shark trying to catch you. How long can you survive?

In collaboration with Anne-Marie Henderson, Shey Bala, and Kaeden Green.

download on itch.io




TECHNICAL ART AND RIGGING



Character rigs created for the cutscene sections    



The animations for the fish player character move most of the work off of me to manually animate, instead letting the game animate for me. I created a custom rig blueprint within Unreal, linking it up to the player controller to control.

It uses an IK spline with an end point (the red dot in the gif) which controls the chain. This point is manipulated based on player inputs, allowing for the character to turn based on how the player moves, really selling the fishy vibe. 

This is not to say there are no manual animations in the final movement, however. The blueprint has an additive animation on the tail, whose speed is controlled by the velocity of the player. This makes it look like the fish is swimming faster the faster you actually go, giving visual feedback to your progress in the game.




ANIMATION AND CINEMATOGRAPHY


The animations and cutscenes for the game were animated inside Maya, then imported into Unreal Engine for lighting and rendering in the final game. The cinematography tools inside Unreal made it a seamless  process, and were very useful in getting the cinematics to blend into gameplay (and vise versa).

FINAL ANIMATIONS




Title screen animation loop

Intro cutscene




PROCEDURTAL GENERATION




The prodecural level generation for the game is done by generating and pooling three different iterations of each level segment (designed and modeled by Shey Bala) and hiding them. This optimizes the level generation to make it infinite by not destroying and creating new levels and slowing down the game. 

Each of these levels has an anchor at where the level begins and ends to allow for them to seamlessly string together in-game. The ending anchor has a trigger that, once the player passes through, decides on what level to take from the pool: from the pool, it randomly decides on a level type, and moves its beginning anchor the the ending while unhiding.