Inspiration
All 4 of us on the team are passionate about physics, mathematics, and video game development. Drawing inspiration from these fields, we merged them to create our own simulation/game.
What it does
Using the Unity Game Engine, we developed a captivating game/simulation that accurately simulates real-life buoyancy and wave physics. Players can select from a diverse range of boats, each with unique attributes, and experiment with them on an infinite ocean. Each boat's performance and reaction to the waves vary based on its specific stats.
How we built it
To achieve realistic water waves, we used Unity's shader graph to lerp between gradient noises. These gradient noises were then mapped onto a mesh to generate lifelike wave effects. The buoyancy system utilizes floaters, which are basically a bunch of predetermined points on a given vessel. Based on whether the floaters are above the water or below the water it can affect the buoyancy. If they are below the water, depending on how deep they have been submerged, we use a script to apply upwards force imitating the buoyancy force in real life. Each boat's mass, density, water drag, and angular water drag are considered in the buoyancy script, altering its performance and behavior on the waves.
Challenges we ran into
Throughout the project, we encountered two significant challenges.
- Our attempts to collaborate using Unity's collab system proved ineffective, leading us to switch to git for collaboration. However, even that presented its own set of issues, necessitating a laborious process of exporting and sharing the scene.
- Buoyancy physics that ran on the CPU (with c#) wasn’t working with the wave shader that ran on the GPU (shadergraph).
Accomplishments that we're proud of
We take pride in successfully implementing smooth and performant waves, a task that consumed countless hours of effort. We were also proud of the buoyancy physics we implemented and how it complemented our wave system.
What we learned
We learned how to implement physics from real-life situations with the Unity engine and a lot of math. We also learned how to run calculations with the GPU using shadergraph. We also learned how to collaborate with git (even though it did not even work in the end).
What's next for FloatTopia
Introduce procedurally generated islands for enhanced exploration.
Allowing the user to set sail on different planets
Implement obstacles in the water to introduce additional challenges.
Address particle-related issues for a more polished experience.





Log in or sign up for Devpost to join the conversation.