collision damage physics.

    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    Having played recently with the collision damage on, i had a lot of fun with the collision mechanics. I have written up an idea before on how i thought the damage should be distributed and i just want to make my reasoning clearer and more comprehensive.

    The balance of damage occurring takes into account the mass of the ship and the velocity. It does not take into account connecting blocks, block type, or seemingly block strength.

    I know you're going to say that collision damage isn't ready yet, but that doesn't matter. Seeing the dev's current thinking on the subject, i feel i should at least bring forward my logic.

    let's start with my conclusion. Velocity should be the only factor deciding whether damage occurs. The reason being that if your flying a small ship in real life, you're using lighter materials, smaller struts, thinner metals, etc. Damage will occur with less force. Flying much larger ships, your materials become heavier, thicker, bigger springs. Material strength usually scales linearly, sometimes exponentially. The force added from the mass side of the equation only scales linearly. Velocity on the other hand, it scales exponentially. In theory, a large ship capable of landing on a planet should be able to contact the ground at roughly the same velocity as a small fighter. Why? Bigger springs, struts designed for the weight, etc.

    One of the main problems i noticed when landing on the planet with damage turned on was that there would often be one single block contacting the ground first. In real life, this isn't a problem as the landing gear would flex and adjust until all the landing gears are sharing the load, but in the game, that first block is instantly vaporized because it's absorbing all the energy.

    In real life you can engineer flexing bending struts, and use shock absorbing materials. That's not really plausible in the game. The solution, as stated above, only base the initial damage on velocity.

    If you are going fast enough to have damage occur, mass will be a factor on how much occurs. You can do this by slowing the ship by say 200 thrust per block destroyed. Blocks will keep getting destroyed on impact until the velocity threshold is reached. In this way, larger ships will take larger amounts of damage than smaller ships at the same impact speeds, but still a lower percentage of damage.

    I would personally set the damage threshold to occur at around 35 kph and higher.

    Furthermore, it would be nice if the blocks instead of being vaporized, they were moved to the side and back until there's no room, and rendered non functional. Some blocks should also take damage over other blocks Under certain speeds. Eg. i crash land into a planet at 45 kph, the dirt blocks should give way before armored hull does. It would make for really cool crash landing craters.
     
    Last edited:

    Mariux

    Kittenator
    Joined
    Jun 20, 2013
    Messages
    1,822
    Reaction score
    658
    • Purchased!
    • Community Content - Silver 1
    • Legacy Citizen 8
    That's some nice ideas, but due to complex mathematics involved it might be very laggy, esp. for large ship designs.
     

    Thalanor

    CEO Snataris Colonial Fleetyards
    Joined
    Sep 10, 2013
    Messages
    818
    Reaction score
    708
    • Master Builder Bronze
    • Thinking Positive
    • Legacy Citizen 3
    While I really like this, I think large ship collisions are something that will still have to be avoided in multiplayer for a long time to come.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    I love the idea of landing craters. Blocks should definitely take "damage", so that lesser-HP blocks disintegrate first. Maybe velocity could be effected by hit points instead of individual blocks, to implement this change. Then, after the crash landing, you have damaged blocks to repair. Concerns about lagginess are valid, but at this point, it's just a matter of degrees, because collisions are already laggy. What's another dozen flops among thousands?

    I'm thinking this can inspire a whole new discussion on landing gear.

    For instance, I can imagine landing gear as a repulsor-beam-type of block where it only works in one direction for about the distance of 5 blocks, reducing velocity significantly as each block length is taken up, to simulate increasing beam strength as the landing surface gets closer to the landing block, as well as having an automatic attitude correction to the host vessel, lining it up slowly with the landing surface, not exceeding the ship's rotational limits (small ships can attitude-correct almost immediately, while larger vessels will take a few seconds to level out). Then, since the effect gets more intense as the beam shortens, you'll have the ability for multiple beams to settle the ship on uneven ground. For instance, maybe the ship lands in a valley, and one side is 2 blocks higher than the other. That side's landing beam is only one block thick, while the other side's landing beam is 3 or 4 blocks thick.

    Maybe the repulsor beam in this case could be given a texture, so it looks like actual pistons or something, pushing into the ship as it lands on them. Maybe it could be a server setting to switch between a block texture (piston) or a beam texture (repulsor beam).
     

    AtraUnam

    Maiden of crashes
    Joined
    Oct 15, 2013
    Messages
    1,121
    Reaction score
    869
    • Railman Gold
    • Competition Winner - Small Fleets
    • Wired for Logic Gold
    +1 for making blocks take damage rather than vanishing.
     
    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    Im just saying, if the block is smashed, it should turn into scrap if it would have otherwise been destroyed, and possibly absorb a little bit of the additional damage that is incoming.
     
    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    Furthermore, if you did it right, you cold use a rubber type block (I'm thinking plex doors) as bumpers to reduce collision damage.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Furthermore, if you did it right, you cold use a rubber type block (I'm thinking plex doors) as bumpers to reduce collision damage.
    Since conventional tugboats use rubber tires for just this sort of thing, I'm thinking that "rotor" blocks (that may or may not come with rails in a future update) might be implemented to reduce velocity more than other types of blocks before they are damaged to the point of destruction.

    However, the way doors work, I imagine they "collapse" when opening or closing, so I can imagine those blocks having a similar additional-velocity-reduction effect, like you said. I don't think of blast doors as having the same "collapsing" method, so I don't think they should have velocity-reducing effects beyond a hull-type block.

    I also imagine low-density blocks (organic blocks, like plants) could have similar, if different velocity-reducing effects. Bottom line: I want there to be decorative options, so we aren't stuck with just one "bumper" block.
     
    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    Something else i was thinking about with blocks being square and calculating the impacts based on the precise surface of the blocks, it causes a lot of calculations to be preformed when large objects contact in multiple locations. Each corner and face are taken into account in those calculations and it slows things down a lot.

    Perhaps it would be difficult to write completely different algorithms for the way large objects behave when contacting, but i think each block should be simplified to a 'point' in that calculation, but only when talking about large objects or high speed collisions. The points when contacting each other would not be able to get closer than 1m from each other, but it would only use the lactation of the center of the block to determine that.

    You could use a slider in server settings to choose how big objects have to be or how fast they are going before they start to behave in that manner. And it would choose the calculation method based on the smaller object, or the faster object.
     

    Blakpik

    Angler
    Joined
    Dec 3, 2013
    Messages
    431
    Reaction score
    119
    • Legacy Citizen 10
    +1 Support for landing gear more stable than tinfoil and skewers.
     
    Joined
    Dec 15, 2014
    Messages
    59
    Reaction score
    6
    I would just like to clear up the "Material strength scales linearly or expentaily" this is very wrong, it scales in a positive direction, but by no means is it linear. As an object incteases it grows heavier at a much faster rate than it grows stronger. Sorry for physics.

    ~Toast
     
    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    It scales linearly in some arrangements, exponentially in others, if you can't figure out an arrangement that's scales only linearly, you are clearly not as well versed in physics as you seem to claim.
    [DOUBLEPOST=1425495166,1425495056][/DOUBLEPOST]Also, some materials will scale linearly regardless of the arrangement.
     
    Joined
    Dec 15, 2014
    Messages
    59
    Reaction score
    6
    Believe what you wish, feel free to do some research on the physics of solid's and scaling strength. And there was no need to say I'm not aswell versed as I think. We're supposed to work together here, I was simply trying to help.

    ~Toast

    P.S. you're kind of wrong. I think the law is the square cube law.
     
    Joined
    Aug 23, 2014
    Messages
    427
    Reaction score
    137
    • Purchased!
    I apologize for that, i didn't mean to insult you.

    However, what your talking about is thickness. Your completely right that it will scale exponentially. However, in some circumstances, it will scale linearly or less. An example of this is when instead of increasing thickness, you increase number of struts. 6 table legs is twice as strong as 3. If you increased the thickness of the 3 legs doubling the material used, you would increase the strength exponentially, since the wood reinforces itself.

    Some materials will reach thier crush point and adding more side by side doesn't do much. Foam rubber for example. It will also scale linearly, but has the chance to actually scale less than that.