Tuff ahh Video game
- 7 Devlogs
- 27 Total hours
Its a video game, you use your brain to play, if you dont have 1, GET OUT!
Its a video game, you use your brain to play, if you dont have 1, GET OUT!
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’
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.
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.
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!
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!
Took a little while but in the end, totally worth it!
Real-Time Telemetry Arrays:
Integrated a fully functional Compass Heading indicator, alongside precise Speed (m/s) and Depth trackers linked directly to the sub’s 3D transform and linear physics state.
Not to mention there is also a compass, a progress tracker and a warning system
The console now cleanly maps out real-time Stamina and Exhaustion meters to handle high-speed maneuvering and sprint cooldowns smoothly.
Implemented a custom predictive physics calculation that catches the sub’s exact velocity right before a collision occurs. This completely bypasses physics-engine quirks (like velocity instantly dropping to zero on impact frames), ensuring blunt collisions register perfectly every time.
The hull damage bar dynamically recalculates color states and screen readouts:
Above 66%: Status reads STABLE with green theme aesthetics.25% to 66%: Automatically shifts to a warning state (DAMAGED) with an orange alert profile.
When structural health drops below the 25% Critical Zone, a time-accumulating sine wave engine takes over the console mesh arrays. This triggers an aggressive, high-speed visual flashing sequence across the interior status plates to warn the player of if its gonna die.
To capture that retro, high-tech submarine atmosphere, the dashboard now features a multi-layered background Parallax Hacking Screen that slides continuously behind the telemetry values.
Combined with sudden flickering screen effects, the terminal reacts heavily to impact forces, making the player feel every heavy rattle when diving too fast into rocky corridors.
I want to make my 3rd person camera a periscope with the cute little spyglass on top of the submarine and allow to have a 360 degree of motion
Adding a death screen and animation, not so sure of seeing myself still being able to run
Also doing something about this Collision Warning alert in the bottom left corner.
Definitely add some visual juice (screen shake, glass crack) but that’s low priority
Also some audio!
I have been pretty busy this week working on my other custom WarioWare game, but I finally managed to crack it.
By carefully placing each and every word, section, icon and evaluating every single number… the top screen of the submarine is officially done!
What’s on the screen right now:
I got so excited that I even found a cool hacking matrix background and threw a Parallax2D on it so it looks like the sub is constantly processing code in the background
On top of that, I added a custom shader flicker effect so it feels like a real, raw electronic monitor. As you can see in the screenshot, I just slapped a ColorRect2D added some code (with the help of AI as I don’t know jack about shader code) and BOOM!
The big game-changer: I just switched the viewport texture configuration from the default Albedo slot over to the Emission channel so the cockpit doesn’t look so dull. Because the display now literally emits its own light into the dark, I was able to delete the temporary OmniLight3D from the scene entirely. The cockpit lighting looks way more natural now.
Next Up:
Now that the formula is down, I’m moving on to complete the other two viewports: the primary speedometer display right on the steering wheel, and the auxiliary bottom viewport sitting behind it.
Give me a follow to see the next updates as they happen!
Spent some time wrestling with Godot’s SubViewport system today to get the submarine’s overhead display screen actually working.
What went down:
CenterContainer and VBoxContainer) so the labels stay organized and readable.-2.0 on the material ended up being the magic number to force everything to shrink down and fit right onto the screen arch.Next Steps: I have to now fix and test these screens and to make sure they display the text flawlessly. Next up is prettying it up to make the text layouts look nice and crisp and then getting the rest of the cockpit dashboard screens mapped out.
I have decided to shelf the torpedoes and missiles for a bit. The absolute priority right now is making the submarine movement feel completely seamless before adding combat mechanics! Here is what just went live:
V key!I am starting to build out the internal monitors and pilot UI. However, in my opinion, the current setup of these screens covers the view a bit too much. The player can’t really see the outside environment!
Also, something I am discovering is that despite using a standard SpringArm3D node for my third-person view, the camera is still clipping into the walls. I have been banging my head for so long trying to stop it from clipping!
Over the next few days, my primary focus will be breathing life into the cockpit interior:
I would love to get your input on how to solve these issues:
SpringArm3D or collision detection in this engine, what am I missing to keep the camera outside the cave walls?Drop your ideas and suggestions in the comments below low key really appreciate the help! ⬇️
I am making a racing inspired game with beautiful underwater visuals. Currently working on the smooth ahh submarine movement as well as BUBBLES!
Overall, a good start to the movement of the submarine.
I will be making a missile that can shoot walls of rock down! This will be apart of the underwater obstacle course I will be making.
Making Movement for the Submarine