Lag fix: Soft docking when near a body (i.e. "landing" mechanic without rails)

    Joined
    Mar 31, 2015
    Messages
    281
    Reaction score
    95
    • Purchased!
    • Legacy Citizen 5
    Rails are great when you have them, but, some entities in the game you may want to land on, but don't have rails dock with. This is especially true of landing on a planet where there is gravity. The effect of gravity can cause a ship to bounce around on the surface after exiting, like the server I was on a few days ago. I watched my little craft bounce around, and nearly fall off a cliff. All this bouncing around causes the server to perform many additional computations, which can increase lag. If collision damage is on, this bouncing would likely result in the loss of your ship.

    To solve this, I propose a "soft dock"/landing mechanic. When the lowest portion of a ship approaches within 2 blocks of the surface of another entity, the landing mechanic kicks it. First it checks the lowest contact points of the ship, and then calculates which points would touch the surface. If 3 or more points would touch the surface and form a polygon covering more than half of the ship's mass, then the a notice would flash "Stop motion to land". When the player releases all thrust movements, the ship will land on the surface. After landing, it will behave as a docked entity in terms of physics, but there would be no resource transfers, and no entity switching. To 'undock', the player would hold down the "up" button, they would see a countdown notification, 3...2...1.., at which point the player ship would leave the surface with .5 seconds of 200% upward thrust.

    This would make planet landing less of an issue on servers and also allow servers and players to experiment with collision damage without sacrificing the ability to land on planets.
     
    Joined
    Mar 31, 2015
    Messages
    281
    Reaction score
    95
    • Purchased!
    • Legacy Citizen 5
    The countdown sequence only makes sense when in a gravity well... if you've landed on an asteroid, it doesn't make sense. Things that can move (ships, movable station bits on rails), a ship soft-docked like this should merely pop off. To avoid the bouncing physics problem, the ship should rise off the entity a block before being becoming a separate entity as far as physics is concerned.

    This is basically extending the tethering mechanic to ships...with a few adjustments.
     
    Last edited:

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    Empyrion has docking that works similarly, and it's pretty good. You touch down with landing gear, wait a moment, and it sticks. Something like that would be a nice option to have in Starmade so we can have hangars without rails all over the place, if we want to.
     
    D

    Deleted member 678402

    Guest
    Completely Agree. Maybe as a realistic mechanic you could make this only work with armor blocks so it would be "magnetic"
     
    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    That would defeat the purpose of making it a planet landing system. I think instead you should just make a "landing gear" block that works exactly like a rail docker, but does not need a rail to dock to things. This would also make for a cool boarding ship mechanic making piracey and astro fighting more viable tactics.
     
    Joined
    May 18, 2015
    Messages
    287
    Reaction score
    165
    • Purchased!
    I don't think a landing gear block is necessary or desirable for normal landing, or even static docking. I really like the idea of just toggling a docking protocol on, and once the ship has "settled", it becomes a fixed dock. There could be some tolerance for ships sitting a bit crooked to simplify landing while still preventing crashing as a form of secure docking. For takeoff, toggle the docking protocol off. The ship would remain static, until enough thrust was applied to overcome gravity. For asteroids and stations without appreciable gravity, there would still be a very small amount of thrust needed before the ship would undock, to provide some debounce.

    For boarding, a specialized grappling block (or maybe some kind of upgrade for the Rail Docker) would be sensible.
     
    • Like
    Reactions: rocketman221
    Joined
    Nov 17, 2017
    Messages
    31
    Reaction score
    24
    A "land" button on the hot bar would be a nice addition to the use of repulser blocks. Then perhaps as a perk for having at least one mobility chamber you get the 200% (time limited) launch button.
     
    Last edited:
    Joined
    Mar 31, 2015
    Messages
    281
    Reaction score
    95
    • Purchased!
    • Legacy Citizen 5
    The idea is to keep it simple, and not need any extra controls. This is more of a mechanic for early game when a ship may be constructed of parts constructed only with parts made from metal and crystal alloys with no capsules. It also would work should a player land with any kind of ship, even a raw ship core (which, I've found out recently has a bad tendency to fall through the surface of a planet and get thrown out on some busy servers).

    A new player would already know how to go up and down so merely the up thrust key would be the launch button (besides, you will need to go "up" anyway to launch, so no need to change existing game play that much). It would also work without needing to modify existing ships which all of us still playing have had to do multiple times in the past month with the new mechanics.


    The mobility chamber already has an optional effect which negate gravity.