Hey everyone! I wanted to share something I’ve been working on recently.
The main goal of the project was to experiment with a dynamic ocean and make the boat feel like it’s actually interacting with the water.
So far I’ve implemented:
-
Dynamic ocean surface using Gerstner waves
-
Multiple wave layers with different directions, lengths and speeds
-
Buoyancy for the boat and other floating objects
-
Boat physics and movement
-
Dynamic foam on the water surface
-
Weather changes
-
Day/night cycle
-
Custom sky and cloud shader
-
Seagulls

The ocean waves are calculated both in the shader and in GDScript, so the buoyancy system can use the same wave information to determine how the boat reacts to the water.
The sky/cloud shader was originally based on Godot Volumetric Cloud Demo v2 by Clay John, but I heavily modified and extended it for this project.
There is still a lot to improve, but I’m pretty happy with how it’s starting to look.
You can download and try the demo here:
I’d love to hear your thoughts!
