My take on a liquid system.

    Joined
    Aug 21, 2013
    Messages
    240
    Reaction score
    24
    • Community Content - Bronze 1
    Tiny sub-block voxels, either lava or water, with very liquid like physics. Any ship with a gravity unit will put gravity onto the sub-blocks, (toggle-able), and also, since bathrooms etc are nice, piping hull, with a hole in it that sub-block liquids can fit thorugh perfectly, along with filters, taps, plugholes etc. :D

    What do you think?
     
    Joined
    Sep 4, 2013
    Messages
    32
    Reaction score
    0
    I don\'t think liquid physics would be good, as some use lava and water for decoration.
     
    Joined
    Sep 19, 2013
    Messages
    30
    Reaction score
    0
    But will you realy need it for soem thign yes it may look awsoem to have flowing water but its beter to have it as a static block so tha tu can use water as sails or lava for engion looks
     

    therimmer96

    The Cake Network Staff Senior button unpusher
    Joined
    Jun 21, 2013
    Messages
    3,603
    Reaction score
    1,053
    • Legacy Citizen 10
    • Top Forum Contributor
    perhaps the people using water and lava issue would be solved if the lamp and glass textures were made to look better, and have more colours available.
     
    Joined
    Aug 23, 2013
    Messages
    379
    Reaction score
    65
    Hi,

    The problem with liquid physics is the processing time needed to constantly update all liquids. An accurate simulation of liquids (both with and without gravity) would be extreme; and the more short-cuts you take to make performance bearable the less realistic it gets.

    Note: Starmade does not use voxels in any way. It uses textured cubes (\"blocks\"). A voxel is like a 3D pixel (typically a lot smaller, with only one colour per voxel).

    For an accurate simulation using \"liquids as voxels\" the game would need to know about pressure (e.g. a voxel would try to move from high pressue to lower pressure) and surface tension. It would need to track the speed and direction of each individual voxel (where gravity, pressure and surface tension effect the speed and direction of individual voxels); and handle collisions between voxels and other voxels, the surface of a group of voxels (surface tension) and solid objects.

    For a simple example, imagine a \"blob of water\" at rest (no voxels moving) that\'s floating in space. This blob would be spherical due to surface tension. Now imagine a second blob of water colliding with the first blob of water. If the blobs were moving slowly then you end up with a single larger blob, with millions of internal voxel collisions inside it that make the surface of the larger blob \"wobble\". If the blobs were moving faster, then you get millions of voxel collisions where some of the collisions result in voxel/s moving fast enough to break through the surface tension (a big \"splash\").

    To estimate how it would effect performance you can run a little experiment. Pretend that a ship\'s core is one \"voxel of water\"; and build a lake on a planet\'s surface by filling a large crater with a few thousand ship cores. Now watch as the \"voxels\" collide with each other and the planet. Crash a large ship into this \"lake\" and see if you can see a splash and/or waves on the surface of the lake. This crude experiment would be close enough to \"liquid as voxels\" to give you a good idea what performance would be like; except that it won\'t be taking pressure differences or surface tension into account (the experiment would be a lot faster than what you\'d expect for an accurate simulation of \"liquid as voxels\").
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    Water not physical - allow movement for solids (ships, yourself)

    Then add a small code piece to make everytime something gets added, removed around or moved away/to some liquid look if it has to interact with the liquid.



    Ways to interact with liquid:

    • Liquid-Liquid: if a liquid has space besides it and something on top of it, move sideway in some random possible direction.
    • Liquid-Air/Space: If a liquid has nothing beneath it and there is gravity, move it down
    • Liquid-Physical: If something is within it, make something like the shield-hit effect. Size dependent on what is within the liquid.



    For all which already use water/lava, replace it with water/lava-containers made of plex or some super-thermo-resistant stuff (just the description and a reflective surface).

    This container could BTW be required to transport liquids and replaced by emty containers once used by factories or as a pure, but that would be another topic.
     
    Joined
    Dec 31, 2013
    Messages
    411
    Reaction score
    42
    • Legacy Citizen 4
    • Purchased!
    Minecraft lags when its a few hundred blocks of moving water... imagine if it is a few thousand.