Movement and Camera
For this game, I programmed the basic semi-realistic movement of the boat using rigidbody components. Also, I made a camera movement using a mouse or stick on the gamepad.
Day-night cycle
In Waterlands, I used a custom skybox, which I found in the Assets Store. Luckily, it contained a shader for blending between two skyboxes. I used it to make a simple code for the day-night cycle in our game.


Minigame
I programmed a sokoban minigame. Tile based movement, box movement, finish tiles and rotating tiles were programmed by me.
New input system
We had to make controls for both the keyboard and gamepad, so I was looking for a solution. I found the new input system, which was hard for me because I had to redo the whole control. Also, this package helped me a lot with other parts of the game. For example, It helped me with gamepad cursor script and minigame controls also.






Addaptive text system
Waterlands suits both consoles and PCs, so I made an adaptive text system, which takes into account the current input device and shows different text.
Obstacles
I programmed 3 different types of obstacles with different mechanics: sharks, tentacles and whirlpools. Also, I made an obstacle spawner, which does not spawn obstacles inside each other, inside islands and inside static obstacles.



