About water.

E'Luna shared this feedback 4 years ago
Submitted

Sunshines. I just love your game, even i haven't played it for a while, but i just get read topics and as a dev i wish to share little idea how would i make water mechanics easily and pleasant.


As i know, planets is just point actors, so we can attach to it another sphere/chunk segment plane based on radius from planet's center that will work like water, and just will fill all deep underground, fill valleys and lowlands. (btw who even needs planetary cores.. it is pleasant dig it once, but it makes significant cost for voxel's boundary)


Then about physics, any actor that too close to planet now checks gravity, so similarly we can check it for "underwater" state, just through comparison player or ship position to planet's center with "water" sphere radius.


And here we also have grateful but underestimated pressurisation mechanics, what we can use to handle player's "underwater feelings" with post process effects, as well as floatage mechanics, which can be calculated similarly as gravity mechanics. So if our ship will be depressurized underwater, we can use vacuum similar effect, but with water splashes and some scene depth fog post process for "murky" water effect, that we can reduce to increase the visibility distance under water if we are in the air within our ship, thereby also compensating difficulty of separating the air/water visibility. Not perfect, but cheap.


About hard landing to water surface. I feel that will be not really pleasant to hit water just as ground with ruin whole ship, understandable whole physical accuracy, but not pleasant. So we can just force huge speed drop with short underwater travel time and with huge water splashes.

With possibility to hit ground that lies underwater, if speed was too great.


About floating.. We can use weight of construction to count "pressurized" air blocks comparison, or even just create one block like "helium" that will greatly reduce gravity for current grid, if it bool like "underwater", but very little if it just within atmosphere (btw that sounds like idea for dirigible airships ha).

So in situation when grid's boundary nearly water line, we can start computing buoyancy by extended pinpoint physics, just as thrusters pushes our grids, we can mark some blocks as lightweight or make some new ones. And when we far from water plane, buoyancy tick can be just skipped.


About water surface clipping. Well i can create shader that can slice post process, but it is difficult to clamp water plane for whole ship that floats on water surface without dynamic rendertargets, to have water plane outside ship but not inside, so i prefer not doing any with it which will just little visual issue which is not really matters versus the pleasure of the swimming sensation. It is just understandable. (btw custom depth priority with air blocks inside ships after pressurisation can be used to outrender water blocks by rendering grid's blocks that can be seen through it atop of water, so not impossible as well ha)


About interaction. Weapons should not shoot underwater. Use saws ha. (rockets maybe, but definitely not bullets. To be honest no one likes that bullet combat. Bullets should not ruin blocks that much).

We can also imagine some water resources as rich zones that can be harvested with hoovers.. whatever. Fantasy. It's great.

So.. That's it. Paw paw.

Replies (3)

photo
1

Eeegh, can not edit after 1h..


^For example empty hydrogen tank can float, but full one can not. (we can adapt some air tank filling mechanics and make them finally usefull, just as ballast tanks work on submarines, which sounds awesome for me)

^^Speed limits can be forced to low amount with short time (how's about underwater supersonic haha ) when grid counts as underwater with friction like mechanic as lerp grid's speed to zero in directional movement that faste, as bigger vi surface area of our grid in cross axises to movement (not really needed, cause vector movement makes it difficult to consider, constant by grid's bound sphere is just fine).

Fully underwater "friction" can be counted with grid's total axis's area which seems more rightful with little extention below.

But, if it nearly water surface, we can easily count how deep that total grid's waterline underwater to grid's center by getting grid's bound sphere as comparison of underwater percentage with purpose to lerp between Underwater/atmospherics physics. Not perfectly accurate, but cheap and will work fine enough even for underwater winged ships ha.. ummm actually requires more thought about boundary, if our grid long like stick for example. Count floating blocks individually seems more expedient.. For example grid without any blocks that can float will simply drowns, but if it have one, it will trust our grid up, just a bit.

Strength of friction can be computed by cheeky way. We can have some sort of invisible truster like point that can move randomly to position of any block of current grid once per physics tick, check for underwater flag and force this point of grid to halt a bit, which will get us result when even movable grid with only armor blocks that slightly touches water plane on high horizontal speed will react kinda truly.


It is also possible create some sort of sleep family for any ship if it counts as nearly stable like immovable and not interact's with any significant, to avoid tons of unnesessary ticks on any grids in this game. (btw please make wheels with it's axis as one actor).

Probably huge vast to make game more and more pleasant.

photo
1

And fully underwater state can be recognized when every floating block answers as "underwater" and random tick not sets as above-water for a while. But mid state just as simple percentage rate of random thruster respond Under/Below, just like if underwater ratio for lerp influence strength of underwater "friction" force between friction of air (none in raw game).

One cheap invisible thruster that moves randomly to any grid's block's position as i see can also create a little pleasant water instability.

With that kind of random on-grid force points we literally can work with simple physics data like friction and buoyancy for any types of environments and transitions between them, just like flying between two gas layers on gas giant planets.. Harvest clouds.. waa

Funny thingy..


(i explain like a penguin)

photo
2

There are two main problems with the main implementations of water as they usually are shown:


First, it's impossible to approach realism with reasonable limits on computing power. While this is mitigated somewhat by using the roleplay sphere implementation, this still leaves the issue of everything below sea level being flooded unless specifically pressurized to prevent this. Which takes out an entire category of underground bases and mines.

Second, it's irrelevant. While there is some overlap with normal gameplay, it's further removed than other updates from the core of the game, ship design and exploration. Additionally, the current Ice system works perfectly well, and Space Engineers has many other issues that need addressing. It would be irresponsible to not deal with any of those in favor of an update that could easily break the game all over again and isn't necessarily what most of the playerbase is interested in.

photo
1

We do not need to build realism, we can just build it pleasant by cheap way for devs and for computers to work with it. Well it is not takes out entire category of underground bases, cause you can not mine out even one mountain with your hands and tools you can build cause planets is literally freakin huge, so even if we set water level nearly ten meters over current ice height and even 50, it is still similar gameplay with no difficult changes, except that fact that you have to breathe with somewhat if you dig for hundred meters. It is not ruin mines, cause there's still about hundreds meters of dry ground over current ice level. All this thingys not removes any. Only extends, make games more.. well.. deeper, much things to play with.


Indeed. I see that updates for this game is pretty rare and it have tons of problems even with physics. I just hate how my thingys can just explode by itself (vi reason why i dont wanna play it). It is not pleasant to see how wheels works, it is weird how any physical constraints works.. like jelly, not like hardly limited relatives. I know it. But i just have to say it. So in one day. You know..

photo
Leave a Comment
 
Attach a file