Point to Point Docking

    Is Point to Point Docking a Good Idea?

    • Yes

      Votes: 48 94.1%
    • No

      Votes: 2 3.9%
    • You are an Idiot

      Votes: 1 2.0%

    • Total voters
      51
    Joined
    Oct 20, 2013
    Messages
    147
    Reaction score
    13
    Yup. Docking needs to be improved...one way or another...physical docking without restrictions (or mass restrictions, not dimensions) seems awesome, as you can fit a horde of fighters into smaller areas, or have docking or boarding apparatus for them. Plus, it makes for much better ship to station docking, as well as larger ships docking to each other. (Yes, I know other players have already said this. Bears repeating, though.)

    The only question I can think of, is "what about turrets?" Would they be the same way? If there is no restrictions for turrets, then other problems erupt.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Yup. Docking needs to be improved...one way or another...physical docking without restrictions (or mass restrictions, not dimensions) seems awesome, as you can fit a horde of fighters into smaller areas, or have docking or boarding apparatus for them. Plus, it makes for much better ship to station docking, as well as larger ships docking to each other. (Yes, I know other players have already said this. Bears repeating, though.)

    The only question I can think of, is "what about turrets?" Would they be the same way? If there is no restrictions for turrets, then other problems erupt.
    Either turrets remain as they are, or they transfer to the new system... Doesn't make much of a difference either way, as long as they get a turn rate nerf based on mass.
     
    Joined
    Oct 20, 2013
    Messages
    147
    Reaction score
    13
    So...pretty much this, just you went a little farther? I DO like the pattern based docking, however, adds a nice layer of security. Still doesn't help turrets very much, however.... :(
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    I think it would be interesting to be able to "activate" a plexdoor block in build mode, so that it acts like a universal docking point. Then be able to select one certain plexdoor while in flight as the default docking door, so that the system would know which pieces on the pair of docking ships to join up. This would be a quick and easy way to leverage the existing system for an airlock-to-airlock dock between ships. It would need a delay while it calculated the extents of both ships to ensure they docked at the right area with each other and didn't overlap in any way. The plexdoor selected for and/or activated for docking would need to be build on the very outer-most edge of the ship's bounding box, for easy calculation. Then the docking ship would use their docking beam on the dockable plexdoor to dock. Maybe have some logic to have the dockable plexdoor display a beacon flare while any docking beams in a radius are active, so that the docking ship knows where to aim.

    The dockable plexdoor group (the entire door) would no longer be openable with the docking beam. It is assumed that the player would open it manually ("R") while in astronaut mode, to move from one structure to the other. Gravity fields would need to be abruptly ended at the ship's bounding box, so that if the other structure had no gravity or gravity in a different direction, the other structure's gravity field would take over as soon as the astronaut crossed over into it.

    Opposing gravity fields would be completely nullified, to avoid "ping-ponging" an astronaut infinitely at the point where the structures meet. (Ping-ponging in this case would involve the astronaut "falling" toward the docked structure, then falling back when the docked structure had a gravity field that pointed back toward the other structure.)

    My idea for how the host docking door would look when the docking beam is on:

    | ___ |
    | _*_ |
    | ___ |


    Legend:
    Underscores are regular plexdoors. The asterisk represents a plexdoor with an active docking beacon flare.

    Does the game currently allow a player to select individual door groups in the Structure tab? With that, one would pick a specific door to be the docking door, and then the system would automatically assign the center-most outside plexdoor block to be the specific block to match up with the docking block with the beacon on the host structure. If the Structure tab doesn't have door selection and activation yet, I think it would be a good idea, even without this docking plan.
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    Defining direction of the docket ship would be very difficult => no, dislike.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    Defining direction of the docket ship would be very difficult => no, dislike.
    Just do it to the nearest 90 degrees. in each direction.
    Anyway, how about triggering docking is to have each clamp project a "block" over the active face. When the two blocks intersect, the ship tries to thrust into the position that the core will be at when it docks while trying to rotate into the correct orientation.
     
    Joined
    Mar 28, 2014
    Messages
    76
    Reaction score
    9
    This thread and the docking clamps thread are basically the same idea, and in the other thread multiple times and in this thread a few times it was pointed out that this would make invincible stations possible to be abused, and you could theoretically dock multiple titans to each other, since this would remove docking size limitations.

    A simple solution to this would be to disallow docking for ships that extend too far outside of the ship or station's area. By default, this could extend 10 block outside of the dimensions of the ship, but could be extended with a new type of docking area extenders. This would use the same rules basically as the existing docking area & extenders, but the area would increase with ship/station dimensions, and would apply to all objects docked to the main object.
    There would probably have to be some sort of diminishing returns on docking area extenders, so that you couldn't extend a ships's docking area far enough outside of the ship to dock one of the same size. Either that or just a diminished effect from the beginning, something like 50% (so for a 100 block tall ship, the largest item docked to the outside top or bottom would be 60 blocks tall (max space available: maximum space for vertical docking extenders 100; 100/2+ starting area of 10 = 60)

    I think this would adequately prevent abuse of tiny home factions being able to dock huge ships, or a titan being able to dock to a ship of the same size or smaller.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    This thread and the docking clamps thread are basically the same idea, and in the other thread multiple times and in this thread a few times it was pointed out that this would make invincible stations possible to be abused, and you could theoretically dock multiple titans to each other, since this would remove docking size limitations.

    A simple solution to this would be to disallow docking for ships that extend too far outside of the ship or station's area. By default, this could extend 10 block outside of the dimensions of the ship, but could be extended with a new type of docking area extenders. This would use the same rules basically as the existing docking area & extenders, but the area would increase with ship/station dimensions, and would apply to all objects docked to the main object.
    There would probably have to be some sort of diminishing returns on docking area extenders, so that you couldn't extend a ships's docking area far enough outside of the ship to dock one of the same size. Either that or just a diminished effect from the beginning, something like 50% (so for a 100 block tall ship, the largest item docked to the outside top or bottom would be 60 blocks tall (max space available: maximum space for vertical docking extenders 100; 100/2+ starting area of 10 = 60)

    I think this would adequately prevent abuse of tiny home factions being able to dock huge ships, or a titan being able to dock to a ship of the same size or smaller.
    Too long, too annoying, not needed.


    ...Station invincibility will be changed (Not eliminated, just rendered non-permanent based on the faction points system) so having an invincible place to dock things during times of peace wouldn't be that bad, as long as people don't all hide in the ship cores of invincible docked ships during a war, preventing them from being killed and thus preventing a faction from losing points.



    ...Or, the simplest solution, you could remove docked ship invincibility altogether, and have stations be able to share shields with ships, thus giving stations a(nother) reason to have shield arrays.
     
    • Like
    Reactions: Lecic
    Joined
    Mar 28, 2014
    Messages
    76
    Reaction score
    9
    Too long, too annoying, not needed.


    ...Station invincibility will be changed (Not eliminated, just rendered non-permanent based on the faction points system) so having an invincible place to dock things during times of peace wouldn't be that bad, as long as people don't all hide in the ship cores of invincible docked ships during a war, preventing them from being killed and thus preventing a faction from losing points.
    That doesn't handle being able to dock two large ships to each other though. Not that there's anything wrong with that in itself, but it could pose lag/performance issues for servers.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    That doesn't handle being able to dock two large ships to each other though. Not that there's anything wrong with that in itself, but it could pose lag/performance issues for servers.
    Ehh, it's actually a lot better than the current alternative, which is essentially trying to bump your two large ships together in a way that lets the docking bridges make contact without bouncing off of one another. Furthermore, you could even have the two ships not calculate collision with each other while docked, which would increase performance dramatically, if I'm not mistaken.
     
    Joined
    Mar 28, 2014
    Messages
    76
    Reaction score
    9
    Ehh, it's actually a lot better than the current alternative, which is essentially trying to bump your two large ships together in a way that lets the docking bridges make contact without bouncing off of one another. Furthermore, you could even have the two ships not calculate collision with each other while docked, which would increase performance dramatically, if I'm not mistaken.
    Yeah, that's a good point. I don't have an issue with being able to dock large ships to each other, it makes sense in a lot of cases. I can just see it being a good opening to grief servers.
    Maybe instead, docking one ship to another that was a certain percentage of the main ship (could be set in server.cfg) would still be allowed, but it would cause the whole combined craft to become immovable? That would allow managed whitelisted or private servers to do what they want (set it to -1), and servers that are public to prevent lag griefing, while still allowing larger ships to dock to one another for crew or cargo transfers.

    *EDIT: by immovable I mean whatever makes sense from a programming point. Either make the main ship a station object temporarily, or disable the thrusters.
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    So...

    Add a new block: Port Blocks and Tube Blocks.

    Port Blocks can be activated from the ship's quickbar and shoot out a docking beam like the ship core currently does. The beam only reacts to dock blocks.

    When it hits, it compares the shape of the dock blocks hit by the beam to the shape of the port blocks that shot the beam. They have to be roughly the same pattern, such as a 1x2 or 3x3 or cross shape.

    If the two patterns are not compatible, the docking fails.

    If the two patterns are compatible, then the ships line up the port to the dock (similar to how ship cores line up with docks).

    Then, after alligning, each Port Block creates a Tube Block next to it. These Tube Blocks then create another tube block. This continues until they connect to the Dock Blocks, and gives the impression that a docking tube is being extended from the ship.

    Once the Tube Blocks have reached the Dock Blocks, they determine which blocks are on the interior and destroy them. This leaves a hollow tube, so long as the initial pattern was at least a 3x3.

    For smaller ships, pilots will still be forced to exit their ship and space walk into the docked ship, similar to how it currently works. However, there will be a visible connection between the two vessels.

    This approach would allow large vessels to dock on small docks, if the large vessel has a properly shaped port and is ok with walking the length of the tube. Or perhaps the tube can only be as long as the number of Tube Blocks used to build the vessel. Unless there comes a way for a ship to have it's own inventory.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    So...

    Add a new block: Port Blocks and Tube Blocks.

    Port Blocks can be activated from the ship's quickbar and shoot out a docking beam like the ship core currently does. The beam only reacts to dock blocks.

    When it hits, it compares the shape of the dock blocks hit by the beam to the shape of the port blocks that shot the beam. They have to be roughly the same pattern, such as a 1x2 or 3x3 or cross shape.

    If the two patterns are not compatible, the docking fails.

    If the two patterns are compatible, then the ships line up the port to the dock (similar to how ship cores line up with docks).

    Then, after alligning, each Port Block creates a Tube Block next to it. These Tube Blocks then create another tube block. This continues until they connect to the Dock Blocks, and gives the impression that a docking tube is being extended from the ship.

    Once the Tube Blocks have reached the Dock Blocks, they determine which blocks are on the interior and destroy them. This leaves a hollow tube, so long as the initial pattern was at least a 3x3.

    For smaller ships, pilots will still be forced to exit their ship and space walk into the docked ship, similar to how it currently works. However, there will be a visible connection between the two vessels.

    This approach would allow large vessels to dock on small docks, if the large vessel has a properly shaped port and is ok with walking the length of the tube. Or perhaps the tube can only be as long as the number of Tube Blocks used to build the vessel. Unless there comes a way for a ship to have it's own inventory.
    Nope. Cool, but overly complicated. And... laggy?
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    I don't think this would be laggy unless the size of the Port was more than a 10x10, and even that would be marginal. Consider that build mode can place up to 8000 blocks in one click with minimal delay, and that process performs all the same tasks I've suggested. The only real change to this is the comparison of shape between the Port and Dock (which only happens once). Blocks already know if they are interior or not because of the Face-Culling feature (if two blocks are next to one another, neither block shows the faces that are touching because the player will never be at an angel where they can see it - this decreases draw calls and increases FPS).

    Considering that the 'extension' of the tube should be visibly trackable, the raycast/create/check/destroy process should be hard-coded to be as slow as 1 or 2 blocks per second anyway, further reducing the chance of lag.

    As for the complicated part, that was just a description of game mechanics (which are always complicated). As far as players are concerned, they just need to make sure they have a Port that is the same shape and size as the Dock to which they want to attach, as opposed to making sure their ship is the right shape and size as the dock.
     
    Joined
    Dec 11, 2014
    Messages
    23
    Reaction score
    8
    • Purchased!
    • Legacy Citizen 2
    I like a lot of the ideas here, and I have one that would not require adding additional blocks, only additional behavior to existing blocks, using existing game mechanics.

    My thought: go with the docking point idea, but use standard docking blocks to do this.

    To make this work, you would link (C,V) a core to a docking block, making that docking block a kind of 'core proxy', so that when attempting to dock with the standard docking beam, the dock to which you are attempting to connect will align and connect to the linked block, instead of the core.

    The alignment of both ships relative to each other would be determined by the orientation of the core proxy, making it easy to dock your ship in whatever orientation you see fit. Once docked, the ships relative alignment is fixed as it is now, until they undock.

    A single collision detection would have to be performed at the time of attempting to dock, just to be sure there would be no clipping. This is similar to the current docking check, though may be a bit slower due to having to calculate the hull shell, but it still only needs to happen once. Even so, it should be a lot faster than a full on collision, because you only need to calculate of a collision is present, not the result of the collision as i think that's what probably makes the majority of the lag we see in collisions while in motion. If there is a possible collision detected, docking isn't possible.

    If multiple core proxies are defined, the system should automatically choose the closest unoccupied one to the target dock. If they are equidistant, either wait for one to get closer for a short time, or choose one at random (or both).

    When docking in this manner, there is no need for size restrictions. To balance this, there are two factors:

    first, if the target vessel did not have a core proxy dock set up, then current docking rules apply (the target dock needs enough extenders to accomodate the ship, or docking is not possible) however, the current docking rules would calculate the size of the ship using the core proxy as the center, rather than the actual core. This would make such a proxy useful, even without both ships being so configured, to allow more efficient use of fixed docking areas.

    Second, vessels docked using core proxies would share mass as current docked entities do, but would not share power or defenses. This takes care of several concerns, chiefly that docking two ships together this way won't necessarily give you a tactical edge. If anything, you are at a slight disadvantage because of the sudden mass increase, but I feel that is both realistic and reasonable. Basically both ships are still independent, but are forcibly aligned together. This means if a ship is docked in this way to an invincible dock, the ship is not invincible. Want it to be invincible? Use extenders. This prevents abuse of the system.

    Finally, attempting to dock to a core proxy without a core proxy on your vessel would result in the docking system using your core as the alignment and orientation point, as docking does now.

    Other than this added functionality, current docking rules would otherwise be unchanged. Ships docked in the traditional way still share mass, energy, etc but would still require extenders to do so. This makes extenders tactically useful, instead of an irritating requirement for any and all docking.

    Turret docking would work the same way as standard docking, with the exception that the docked turret could rotate. Again, the core proxy would be the center instead of the actual core.

    This would allow existing ships to continue to operate without modification, and it would make adding the new functionality as simple as adding or replacing a single block, and linking it to the core. The addition of this mechanic would also easily allow things like internal docking of small structures like 'elevator ships' power supply cores, escape pods, varieties of cargo containers, etc. Without leaving cavernous openings inside the ship to accommodate a bunch of unused docking area. It would also allow construction of universal hangers and docking/landing pads without too much complexity, while leaving current purpose-built docks unchanged.

    Sorry for the text wall, but I hope it contributed something useful to the discussion.
     
    • Like
    Reactions: Ithirahad

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    I like a lot of the ideas here, and I have one that would not require adding additional blocks, only additional behavior to existing blocks, using existing game mechanics.

    My thought: go with the docking point idea, but use standard docking blocks to do this.

    To make this work, you would link (C,V) a core to a docking block, making that docking block a kind of 'core proxy', so that when attempting to dock with the standard docking beam, the dock to which you are attempting to connect will align and connect to the linked block, instead of the core.

    The alignment of both ships relative to each other would be determined by the orientation of the core proxy, making it easy to dock your ship in whatever orientation you see fit. Once docked, the ships relative alignment is fixed as it is now, until they undock.

    A single collision detection would have to be performed at the time of attempting to dock, just to be sure there would be no clipping. This is similar to the current docking check, though may be a bit slower due to having to calculate the hull shell, but it still only needs to happen once. Even so, it should be a lot faster than a full on collision, because you only need to calculate of a collision is present, not the result of the collision as i think that's what probably makes the majority of the lag we see in collisions while in motion. If there is a possible collision detected, docking isn't possible.

    If multiple core proxies are defined, the system should automatically choose the closest unoccupied one to the target dock. If they are equidistant, either wait for one to get closer for a short time, or choose one at random (or both).

    When docking in this manner, there is no need for size restrictions. To balance this, there are two factors:

    first, if the target vessel did not have a core proxy dock set up, then current docking rules apply (the target dock needs enough extenders to accomodate the ship, or docking is not possible) however, the current docking rules would calculate the size of the ship using the core proxy as the center, rather than the actual core. This would make such a proxy useful, even without both ships being so configured, to allow more efficient use of fixed docking areas.

    Second, vessels docked using core proxies would share mass as current docked entities do, but would not share power or defenses. This takes care of several concerns, chiefly that docking two ships together this way won't necessarily give you a tactical edge. If anything, you are at a slight disadvantage because of the sudden mass increase, but I feel that is both realistic and reasonable. Basically both ships are still independent, but are forcibly aligned together. This means if a ship is docked in this way to an invincible dock, the ship is not invincible. Want it to be invincible? Use extenders. This prevents abuse of the system.

    Finally, attempting to dock to a core proxy without a core proxy on your vessel would result in the docking system using your core as the alignment and orientation point, as docking does now.

    Other than this added functionality, current docking rules would otherwise be unchanged. Ships docked in the traditional way still share mass, energy, etc but would still require extenders to do so. This makes extenders tactically useful, instead of an irritating requirement for any and all docking.

    Turret docking would work the same way as standard docking, with the exception that the docked turret could rotate. Again, the core proxy would be the center instead of the actual core.

    This would allow existing ships to continue to operate without modification, and it would make adding the new functionality as simple as adding or replacing a single block, and linking it to the core. The addition of this mechanic would also easily allow things like internal docking of small structures like 'elevator ships' power supply cores, escape pods, varieties of cargo containers, etc. Without leaving cavernous openings inside the ship to accommodate a bunch of unused docking area. It would also allow construction of universal hangers and docking/landing pads without too much complexity, while leaving current purpose-built docks unchanged.

    Sorry for the text wall, but I hope it contributed something useful to the discussion.
    By the Elements... This is the most logical approach to the docking revamp that I've seen. Doesn't break existing designs, but it solves (almost) all our problems with the current docking system.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    The problem is that you only get one "core proxy." Perhaps it should be linked via cameras instead, so that way you can have a proxy by your docking ports on each side.