Jump to content

DeadlyDays

Alpha Tester
  • Posts

    2
  • Joined

  • Last visited

Reputation Activity

  1. Like
    DeadlyDays got a reaction from Violet in Collision damage - workaround suggestions   
    maybe someone pointed this out, but the constraint isn't collision detection but syncing the changes in real time to all the clients and calculating where the damage applies and deformation.
     
    In space engineers, it is as cost prohibitive as it comes. You have to not only detect the collision, but how it deforms the voxels that collide then all the subsequent collisions as the voxels continue to collide since you don't want a collision where a small voxel completely stops the ship and bounces them off, you want it to deform and become destroyed until the inertia is halted. This is an immense amount of data to try and keep real time. So basically a single collision is like 1 calculation. a space engineers collision is like a thousand separate calculations due to deformation as you calculate the effects of voxels on other voxels independently for each voxel.
     
    Depending on how they are coding the game, from what I understand floating point calculations are not predictive between different hardware so they can't just sync the player input on each client and have each client reach the same result, different hardware will reach different results so they have to continuously update clients for anything that requires those type of operations to stay in sync with the server.
     
    I'd want a balance if possible, I can handle not having deformation from collisions but I still want collision damage of some sort. I don't know if their "constructs" support deformation or partial destruction outside of build mode and I suspect they don't as a performance saving measure.
     
    My idea would be to figure out a way to calculate partial construct states, basically have a system that after finishing a build calculates a model for partial collision damage on lets say from 18 or so different directions, or 6 different directions with 3 levels of damage. so basically the model automatically degrades based on precalculated models that can be generated based on the voxels you made the construct out of.
    expanding on that, have precalculated deformation states to mix between the damage states. So basically where there is "bend" between each damage state so it gives the appearance of some basic level of deformation and is easily calculated in real time by the clients and synced.
     
    All you need is both the constructs locations relative to each other and come up with as efficient a solution as possible to determine which of the 6 angles is closest.
×
×
  • Create New...