Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

What are the difficulties of adding liquid water to ME?

Discussion in 'General' started by Thales M., Jun 22, 2016.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. Thales M. Senior Engineer

    Messages:
    1,000
    What are the difficulties of adding liquid water to ME? How can it be added by using existing game mechanics?
     
  2. Scorpion00021 Senior Engineer

    Messages:
    1,410
    While ME has less implications than say SE, there are still things to consider. Adding true volumetric water would be extremely performance intensive in the current state of VRAGE. Adding water as a fixed elevation on planets (when you dig too deep, you hit water) is more reasonable and while it has its own challenges, it doesnt have nearly the issues that SE faces.

    A few issues in SE that dont need to be considered in ME:
    -Airtight areas should not let water inside while they are enclosed.
    -Partially filled grids can proceed to space, carrying the water with them
    -Water in space sloshes, tends to end up everywhere.

    A few issues that ME will need to overcome:
    -Buoyancy calcs
    -Actual displacement of rendered liquid so lower levels of boats dont appear flooded
    -Center of mass calcs (not sure if game already does this, but I think center of mass is center of a grid currently)
    -Water needs to be able to fill or partially fill areas of grids.
    -Water penetration equation to determine if something should flood. Spaces need not be enclosed, but grid must decide if there is penetration below the water line and if center of mass is too high (tip over)
    -Water should be able to flow, or appear to flow into grids in the event of hull breach, block removal, or ship tipping on its side.
    -added mass of simulated water should affect grid buoyancy when ships get water in the hull.
    -Players will need a way of removing these flooded waters from inside of grids.


    Disallowing ships and making nothing in the game watertight would make this much simpler, but players would expect these things going forward.
     
    • Informative Informative x 1
  3. Merandix Junior Engineer

    Messages:
    519
    The main problem about water is us.
    Because of us, water can't comfortably stay where it was rendered, nooooo we will likely dig channels, flood caverns (though ME and SE have a major advantage that all caverns will have to be player-dug) and other large spaces. Flooding a large space with volumetric water means 2 things:
    1. The water needs to follow the shortest route down. (fairly expensive path-finding).
    2. The water needs to then volumetrically fill up the lowest space it can reach. (if a lot of water moves, this means A LOT of calculations).

    Since water naturally moves fairly quick, and will shape its course according to the ground over which it flows... it's hard to simulate. One solution is to slow it down a bit, making it behave more like gelatin. Another is to limit the distance which it can flow. None are very 'pretty' solutions. But water will have to be simplified, otherwise it will eat our PC's :p

    If they will implement this on spherical planets, it only becomes harder I'd guess.
     
    • Agree Agree x 3
  4. Thales M. Senior Engineer

    Messages:
    1,000
    So, we should expect simple water which is altitude determined (also makes rivers impossible). Plus to that there may be some areas (inlands with hills and mountains) which always be land even you dig below water level. Between these areas, from water level to the deepest possible level, there should be unbreakable voxel line to prevent unwanted issues:
    About grids swimming on the water:
    To simplify it I think there should be special block to stay on water. It is a ship foundation block. It works like downward thrusters (like in SE). Its (thrust) efficiency is %100 when all of its layers are in water, if its 3/5 layers are under water as in the example below, thrust efficiency will be %60:
    Its size is 1x1x1. For the beginning I expect 3 types of this block: side, corner and center:
    I haven't much time when I was creating this topic, so I couldn't go in to detail for now. Please continue to discuss this topic.
     
    • Like Like x 1
  5. ZoqFot Trainee Engineer

    Messages:
    25
    Problem is rivers were an integral part of medieval engineering. Water mills are an example. To provide rudimentary power for devices, there were limited options, water, wind, heat. Eventually this game is going to need to provide those in some fashion. I can't even begin to imagine the nightmare that creating functional rivers is going to cause but it will eventually have to happen.
     
  6. Ed Frost Senior Engineer

    Messages:
    1,158
    thats the first prowater argument i can agree with....

    but i myself will stay at the otherside of the river here, no water since the amount of system power, cpu calcs and ram, water will take.
     
  7. Frostik Apprentice Engineer

    Messages:
    152
    I like the idea of determinated water level. The water would not move and you can´t remove the voxels under (to the core of the planet) and next (like 3 meters) to it. You will not be able to use the water for power, but for fishing and other things. So, it would not cost that much system power and you can have big oceans and smaller lakes to provide water for the players. Also we could use the oceans as natural borders to split the planet in smaller playing areas.
     
  8. Ed Frost Senior Engineer

    Messages:
    1,158
    could be done, but water would be more like obstacles, instead of possibilities. It should be possible to have static water and powersupply at the same time by some simple check
     
  9. Thales M. Senior Engineer

    Messages:
    1,000
    To me water is best for fast travelling and carrying huge amounts of mass by using ships.
     
    • Agree Agree x 1
  10. ZoqFot Trainee Engineer

    Messages:
    25
    Agreed. Although I would like to see it happen, the drain on the system would be epic in the engine's current state. There's no desperate need for it just yet, although some form of 'power' supply will be required before too much longer to run mills etc. (probably wind?)
     
  11. Ed Frost Senior Engineer

    Messages:
    1,158
    wind is more likely than water.
    even when VRage suddenly becomes worlds best optimized engine, ill think chances are slim we will get water, since the simulation of it in realtime istoo demanding
     
  12. Oselotti Junior Engineer

    Messages:
    837
    It would be so super fun to get water wheels, floodgates, aqueducts etc water engineering things. But yea. Perhaps with next generation computers :/
     
  13. Kron Trainee Engineer

    Messages:
    5
    Couldn't the water just be made simple like in minecraft. With a source block that only flows so far and fills any void under the source.
     
  14. Ed Frost Senior Engineer

    Messages:
    1,158
    what ive understood from keen is that they want it to fit in the physics symulation. meaning that they want to do it "right"
     
  15. waterlimon Senior Engineer

    Messages:
    1,499
    In practise this means they have to do ALL of heightmap + volumetric + particle in combination. No single method is going to be both performant and realistic enough. They need to dynamically choose the right way to model fluids depending on the situation (heightmap for oceans, volumetric for some ugly player made ditch, particles for when the player dumps their 1.5L water bag contents out the window to kill barbarians with terminal velocity water droplets)

    So might as well start with the heightmap water. They even manually make planets so they can cheat with special annotations to make rivers and such work.
     
    • Agree Agree x 1
  16. daze507 Trainee Engineer

    Messages:
    35
    Maybe it could be implemented in steps: First static water similar the one implemented in Rising World and then extra behaviours.
     
Thread Status:
This last post in this thread was made more than 31 days old.