Overhaul Smooth Terrain Water

I’ve been working on a naval game since 2017. Every single time I accomplish one thing I find another set back. It’s disheartening. Please overhaul water. As a Roblox developer it’s currently impossible to utilize water in any naval setting to any immersible extent. Currently parts sit on an invisible plane. The Water Texture bobs up and down, even if I can accept those short comings, and lack of customization I can’t overlook a part floating above the ocean waves. I can’t even get the height of the ocean waves to try to simulate the “bobbing” up and down action of a boat. I have to come up with some hacky way to do so…

It’s disheartening. As a Roblox Developer Smooth Terrain Water is simply too complex to use and nearly impossible to work with. There’s no option to keep a part from sleeping on the water. There’s no way to cull water from inside of structures that float on top of it. It just… exist. I was hoping to be able to have some leverage when custom materials are released… but it’s disheartening. As it stands water in Roblox serves as visual decoration with hinted at mechanics to simulate something similar to water. But its not water… its not a liquid it’s a nice thing to look at with an up force you can disable with 1.0 density in custom properties.

Sleeping parts are great, but I think I’ll subject my players to the raw unoptimized look of floating ships in the sea just because its more immersive. Maybe if people talk about it I’ll add an option so that ships “sleep” for them. But currently I don’t even get that option as a developer. Water just doesn’t work with the current state of Roblox. It doesn’t mesh with the other features or optimization implemented. The Naval Genre has been forgotten ever since Roblox removed Genres from the Games Page, No long before that too.

I’d just like to see, a part, shape, object, model something on the water that behaves like water, with the option to either exclude the part from sleeping with the ability to cull water from appearing inside. Even after making my own generator to build a nice ocean because there’s no way to fill water inside of terrain or set a global water level to have an ocean.

I’m left with this. And it’s disheartening.

https://gyazo.com/cff47ca968a09e289d2ae12b683a1a65.gif

50 Likes

Water has been around long enough without an update, it would be really nice to see some attention shed on it as you mentioned. With more and more water-related games coming out, its more and more daunting and inefficient to use the bare-bones smooth terrain water system. The water system works best for visuals, but definitely not with heavy interaction. I’d personally like to see a more dynamic system with more configurable parameters (more mathematical and technical ones as opposed to just “color,” “speed,” etc). I’d also like to see the system able to accommodate for the different practical uses of water. Water could be a visual asset in some games (Such as Dungeon Quest), while being the whole world in others (The Atlantis event). Most games are a mix of both (Such as Jailbreak, where the water can be interacted with but does not need to be very complex).

It’s definitely not easy to create a system like this, and it certainly won’t be something foreseeable in the very near future (unless staff surprise us…they do that sometimes…). More than anything at the moment, I’d appreciate hearing from the engineers on the roadmap of the water system, what’s practical/impractical, and so on.

Roblox can 110% make use of a better water system, it’s something game changing. I’ve lost count of how many aquamarine games I’ve attempted to create, but was entirely deterred by how difficult the water system had to be dealt with, and the vast limitations of it.

15 Likes

So I’m currently looking into simulating oscillations of a boat on water. I’m quite confident I can use a Vector3 to represent a direction and multiply it by a magnitude to equal a force or speed in which the wind is. For instance like South West @ 12 knots. I already have a module I can modify for the most part of it. All I need to do to let the Module take over is set any part I want to manually float to a density of 1. Doing so will disable the up force created by default from Roblox’s water.

But the biggest issue of them all. Even if I use this data to create an “invisible” sine wave of sorts to simulate waves there will always be a visual disconnect unless I can some how recreate the exact sine wave Roblox is using for their water texture and then return the height based on that. You can see how needlessly complicated this is right? Even if I’m not demanding Roblox implement the features I want. I’m not even able to implement the features I want myself.

I am probably going to try to move forward with the ship movement and my custom module. But that won’t change the issue at hand.

3 Likes