Post news RSS #1 Building an ocean

For the water, I'm using the free, open source version of the Crest Ocean System, and the quality of this is excellent. I especially love the subsurface scattering effect that allows the waves to be illuminated by the sun, giving it that Assassin's Creed Black Flag or Sea of Thieves feel. One of the reasons why I love those games is the peaceful, beautiful atmosphere created by their oceans, so it's really exciting for me to have something of that sort.

Posted by on

Hello!

A lot of progress has been made since the last devlog. I've spent the last week or so working on one of the most important exciting scenes of the game - the beach!

(Btw, I've saved the best part for the end of this post, so make sure to read till the end! BUT, skip it if you'd rather discover it yourself in the full game release :) )

Visuals

One of the things I love about making games is that you get to sculpt an immersive, beautiful world, and that once you get in the flow it almost becomes a spiritual experience. Sculpting the land and laying an ocean over it felt surreal. Check it out in this timelapse video of the process -

For the water, I'm using the free, open source version of the Crest Ocean System, and the quality of this is excellent. I especially love the subsurface scattering effect that allows the waves to be illuminated by the sun, giving it that Assassin's Creed Black Flag or Sea of Thieves feel. One of the reasons why I love those games is the peaceful, beautiful atmosphere created by their oceans, so it's really exciting for me to have something of that sort.

One of the things I was disappointed about is the shoreline waves - my scene is on the beach, not the ocean, so waves on the shore are pretty important. By default, the shoreline remains pretty static in Crests, with nothing more than foam on the edges.

Not being a programmer and knowing nothing about shaders, I tried to improvise a solution - I added a GerstnerPatch (from one of the example scenes in Crests) and tweaked the settings to ramp up the waves and make them sharper only near the shoreline. Another issue is that by default the shoreline remains static - in reality on a beach, the water runs up and then back down the beach pretty prominently. To fix that I animated my ocean "plane" to move slowly up and down. Here's a video showing the process -

Sound

Now I had the beach set up and looking pretty great visually, I was pretty excited for the next bit - sound.

Back when I was lacking inspiration and unsure of what I wanted this game to be about, a visit to Goa (my home) gave me that much needed spark of inspiration, and a visit to my favorite beach was one of the most impactful moments of that trip. In that moment when I was floating in the water, I wished I could accurately share and experience how it actually feels to be floating in the ocean. And one of the most important aspect of this experience is the sound - the flappy sound that wet, bare feet make on wet sand, how the atmosphere sounds on the shore, how the waves crash when standing on the water's edge, how it changes when underwater, and how it suddenly breaks into a large, expansive sound as soon as you emerge from it.

For this I needed a more complex system than the one provided by default in Unity, as the default system only allows you to specify proximity to a sound source using spheres. The shoreline is a line, not a sphere, which meant I would have a mess of a 100 spheres everywhere denoting different zones.

To fix this, I got myself the Volumetric Audio asset - This (among other features) allows you to specify a custom shape for your audio source. Perfect!

Here's a video that shows the different audio zones as set up in the scene -

What do you think? There are 4 different zones set up playing sounds for 1) the wide, atmospheric sound of the overall ocean from a distance 2) the sound of waves crashing loudly when standing close them 3) underwater (heard in the next video) and 4) (my favorite) the wide, expansive sound you hear as soon as your ears pop when you come to the surface from underwater.

Like I promised, I've saved the best for last - first person mode. As you would've seen in the demo, the game switches to first person from time to time. Making this scene playable in first person was super important for me to create that immersion and the accurate feeling of being in the beach that I mentioned above. With this, you're actually able to feel the movement of the water, the waves constantly crashing over your face, the constant change in sound as your head bobs under and over water, the sound of the wind on the shore, and wet feet on sand. Check it out -

Of course, some of the sounds still need a little tweaking and polishing. I think the first person video above really captures what I dreamed of creating and sharing that day on the beach, and I'm super excited about it :)

See you next time!

-Armaan

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.