

Fishing for the weakest fish of the game
4-Month Project with a team of 10
Roaring Shores is a fishing game with RPG mechanics.
By catching a fish, the player will be able to skin it and collect materials to improve their equipment and powers.
With more strength, intelligence, agility or stamina, it will be easier to tackle much bigger fish.

What I Did
As a Gameplay Prog, I mainly did the 3Cs, the fish AI, the fishing mechanics, the implementation of some feedbacks and I actively participated in the bug tracking.
I also had to take care of the Rigging in Editor, something my Game Artists and I was not familiar with, but which we learned quickly for the good of the project.


What I Learnt

3D
This was my first 3D game and although there isn't a huge difference between 2D and 3D, having a third dimension improved my ability to think in space.
The maths became essential too.
Maths
During my 2D projects, the use of mathematics was quite limited except for simple calculations.
This project required me to apply various principles that I learned many years ago such as trigonometry.
But my favorite part was the discovery of bezier curves which simplified the propulsion of the fish in the air.
No Physics
The integration of bezier curves allowed us to quickly part with the Game Engine physics.
Faking physics allowed us to have a better optimization but also to get rid of the randomness of Unity's Physics.

I also implemented a Bezier curve visualization tool for simplify the debug
Technical specifications
Bezier Curves
The beziers curves are used for most of the movements in the game, both for the line of the fishing rod and the movements of the fish (in the water and in the air).
The calculation is done at each frame according to the framerate and for each axis where the fish can move (x,z for the movement in water and x, y, z for the movement in air).
The function needs to know 4 values:
- The starting position (the exit of the water) noted P0.
- The position of the fish noted P1.
- The end position (The return in the water) noted P2.
- The elapsed time, float between 0 and 1 (Obtained thanks to the time in the air/by the maximum time that it will spend in the air) noted t.
The equation is noted :
