Devlog 7: Finished Adding Submarine Polish and started working on building an environment
Submarine Controls: Fixed and Polished
During further testing of the submarine on new features, I felt like steering the submarine felt awkward as it was locked on a flat horizontal plane. Pitching up and down required extra key binds.
So I decided to change/improve the physics and input methods of the submarine so driving it feels much more smoother.
I decided to change my third person camera into a periscope to give my game a more ‘claustrophobic’ feel hoping to get the element to show how small you are in such a big ocean.
Well, the periscope has a open and shut animation and well as audio polish. The player can see through a small circle and see their surroundings. (Also for visual polish when the submarine is at low health the glass will even appear cracked!)
Moving the mouse left and right handles the Yaw (left and right) but now I made it so that it can handle the pitch (up and down) so the player can point the sub’s nose up when ascending.
The player does have the direct keys for vertical changes like diving and climbing still giving players all the options when using the submarine.
I have added dynamics pitch scaling so the background engine hum will go change when in different states. Quiet for idle. Loud for moving. I added hiss and bubble effects just like how real submarine use their ballasts to rise and fall, hull breach alarms, collision thuds, warning sounds as well deep pressure creaking of the hull.
When the player reaches 0(Zero) health, the sub will like spin out of control and ‘crash land’ in the water. The screens will show errors and soon fade away. The scene then reloads.
Also using a Shapecast3D, I managed to make a collisions system. The bottom left text will say ‘COLLISION : FINE’ if there are no objects in the enlarged ShapeCast but if there are objects in that shape the text will go red and say ‘COLLISION : WARNING’
Responsive Steering Controls:
I also added a script to the steering wheel so it would turn as the player is moving the mouse to give it more responsiveness. Much better than a static wheel in the front.
Marine Particles:
Additionally, to give that immersive feel I made simple marine particles. These are like your pieces of plankton or dust in the ocean. They just float around the screen and even rush by appropriate to the sub’s velocity.
Upgrading the Ocean: Boujie Water Shader
After the player features and movement was locked in. It was time for environmental visuals. I realised that my basic volumetric fog wasn’t quite cutting it for an immersive ocean.
After some research, I stumbled upon the fantastic Boujie Water Shader created by Cory Petkovsek (GodotNite / Boujie)
I love this addon. It really brings the ocean to life using Gerstner waves this is really good for optimization in the future!
What’s Next?
With Submarine movement, UI and audio out of the way, the focus is now entirely towards Level Design and Gameplay loops.
Here is my todo list:
I will have 3 zones and each zone has 4 artifacts. Each zone will get darker, and more scarier.
Now that I am changing my placeholder of ‘RINGS : 0/12’ to Relics I am thinking of making 12 ancient, artifacts scattered across the map waiting for the player to collect them.
By placing environmental obstacles, tight squeeze caverns, minefields or even patrolling enemies this will make the gameplay much more exciting!
See you in the next devlog where we explore level design!