A mobile free-to-play game that has the player controlling a fishing hook with their finger. They can catch fish of varying levels of rarity that pass across the screen.
The player holds a finger on the screen and the hook will move towards that pressed location. Once the finger is lifted, the hook begins the rise, catching fish and pulling them to the surface along the way. Once the hook is being reeled upwards, it cannot be lowered by tapping until the caught fish are collected above the water.
When the player desires to sell their haul, rare fish can be sold for more expensive prices. The money gained can be used to buy different hooks, which may offer in-game benefits like faster rising speed, or simply provide an aesthetic change.
The camera was set up the size of a phone screen, and Unity water assets were placed above and below the view (top left). Fish were made to spawn on the left or right of the view and swim across the screen (bottom left). These fish were created at one of four Z-axis positions to prevent clipping, and at random Y-axis positions to present a challenge (right). There were 15 fish models to choose from in total.
ABOUT THE PROJECT
The main focus I had for this game was to nail down the feeling of being under the sea. I wanted to see if what I designed would be as effective on a mobile screen as it would be in Unity's test environment.
Unity (C# scripting)
Coding the fish to move across the screen
Having the hook drop when the screen is pressed and rise on release
Catching fish with the hook
Collecting and recording the fish when they reach the surface
The original 3D fish models.
I adjusted the lighting, fish movements, and music effects to sell that the game objects were underwater.
The scene is lit by several spotlights that shine down on the fish from above. However, while the static overheads provided some atmosphere, water usually distorts light so that it ripples and moves beneath the surface. To replicate this, I multiplied the position of the spotlights with a number that moves along a sine wave. This is a movement known in technical jargon as "back and forth." As a result, the underwater rays appear dappled as they move across the fish and hook.
Originally, coding the fish to simply move in a straight line across the screen worked, but I wanted them to seem even more like they were swimming in the water. To achieve that look, I wrote a script that would waggle the fish back and forth, again using a sine wave to control each fish's rotation.
My back and forth implementation.
Kevin Macleod writes smooth, eclectic tunes, and just popping his "Lobby Time" track over the game made playing it a much more enjoyable experience. However, once again I was looking for a way to push the effect even further. I decided on trying to replicate how sound waves get distorted under water by adding a low-pass filter component to the track. The filter keeps low frequency sounds and takes out high frequency ones, which can be heard in the video below.
Swimming fish implementation.
Video of gameplay (contains music and sound effects)