- Joined
- Oct 17, 2013
- Messages
- 40
- Reaction score
- 77
For a very long time, we have been interested in obtaining a "dock with" command for our AI drones and fighters/miners, etc. However, a ham-handed "dock with" command in the current AI only appears to be possible if the docks are mounted externally on any given ship and are easily accessible to the AI entities.
However, for those of us who spend large amounts of time designing elaborate interior corridors and hangers to dock our fighters/miners safely inside our mother-ships in sheltered hangars (carriers, mining barges, titans, stations/hangars, etc.), it seems very unlikely we'll be able to coordinate organized docking maneuvers for AI ships.
Enter "docking waypoints."
During Build-mode, players will be able to create "waypoint series," a package of information that is stored as part of the ship blueprint/individual ship entity. Each WP series will have information associated with it: 1) what type of WP series it is (dock path, escort position, patrol path) and 2) a list of associated waypoints (and their respective priority -- WP 1, 2, 3, 4, etc.).
Then, selecting a WP series to add WPs to, players will designate positions (in the blueprint's coordinate system) by marking physical blocks in the positions they wish to designate. Note: since the WP block marking is stored as position info and not block info, the blocks would need to be afterwards removed to allow ships to fly through that point in space.
Players should afterwards be able to access a list of WPs associated with any given series so as to rearrange the WP priorities (in case WPs are added/removed from the series).
For docking WPs, a docking module/turret docking module should be designated so that the ship will (if <10m away after clearing the last WP) automatically attach itself to the docking module. Docking waypoint series can be toggled as "reversible" or "non-reversible" to differentiate between docking and undocking maneuvers (Some docks have craft undock the same way as dock, just in reverse. Others have a specific docking in-path and a different out-path).
Escort WPs will define a path for craft to fly along to enter escort formation. At the end of these paths, crafts will attempt to mirror the mother-ship's orientation and speed and will attempt to maintain the escort position. These paths can optionally include a list of WPs for "leavin escort" if the player wishes them to leave escort formation in a specific manner.
Patrol paths are WP series that are similar to escort patterns but are flown in a constant loop. The ships will attempt to arrive at the first WP to begin the escort pattern and will fly the entire path. At its conclusion, they will find the first WP and rerun the path. They will continue to do this until commanded to stop.
Concept Strengths:
1) Simple System for Programming Docking Maneuvers
No scripts necessary. Because ship attitude, roll orientation, and speed are set at each waypoint, docking AI craft read what to do from the pre-defined waypoints themselves. Assuming their size allows them to clear the player-built corridors/hangars, craft should be able to read docking instructions on-the-fly allowing effective docking on the first attempt.
2) Escort Positions
Have you ever wished you could have your smaller craft follow your mother-ships with a predefined escort formation? One that allowed your craft to engage enemy craft during an attack and then return to fly alongside you in their proper positions? These waypoints (being information attached to the ship blueprint) would allow you to define escort positions for your fleet carriers and colony ships, keeping those pesky fighters and bombers from hitting that annoying turret blind-spot that you designed.
3) Internal Docking
Obviously, such a system would teach AI how to properly enter your ship to dock.
4) Traffic Control
If you have a station in a field of asteroids (generated, or player-built), you could define an external traffic pattern to allow your AI to properly navigate to hangars.
Potential Issues:
1) Your ship must be motionless
If your mother-ship is moving, AI-controlled entities who have been commanded to dock may collide with your ship while attempting to reach their series of waypoints. Even worse, AI-controlled ships may make it through the first, outer waypoints and be moving towards your inner waypoints when you reorient to where they are farther out from your ship that the outermost waypoint. In all cases, there must be a way to "update" the AI's order depending on which waypoints are nearest/next on the list to fly to.
2) Telling AI-ships which dock to fly towards
Just telling a ship to dock with you is not enough; ships may collide with your mothership or fail in docking if they are not sized properly for the dock they attempt to enter. There must be a way to designate specific docks/docking waypoints when commanding ships to dock (for example, Dock 1 has a waypoint chain for a small dock on top of your ship, Dock 2 has a waypoint chain for a large dock on the bottom of your ship, and you want a large ship to go to the large dock, not the small one). Adding a subcommand to the "Dock" command may allow you to designate which pre-built docking waypoint path you wish the ship to follow.
These are just a few of the initial applications this system can provide. If anyone has any suggestions to fix some of the issues or refine the concept, please post!
However, for those of us who spend large amounts of time designing elaborate interior corridors and hangers to dock our fighters/miners safely inside our mother-ships in sheltered hangars (carriers, mining barges, titans, stations/hangars, etc.), it seems very unlikely we'll be able to coordinate organized docking maneuvers for AI ships.
Enter "docking waypoints."
During Build-mode, players will be able to create "waypoint series," a package of information that is stored as part of the ship blueprint/individual ship entity. Each WP series will have information associated with it: 1) what type of WP series it is (dock path, escort position, patrol path) and 2) a list of associated waypoints (and their respective priority -- WP 1, 2, 3, 4, etc.).
Then, selecting a WP series to add WPs to, players will designate positions (in the blueprint's coordinate system) by marking physical blocks in the positions they wish to designate. Note: since the WP block marking is stored as position info and not block info, the blocks would need to be afterwards removed to allow ships to fly through that point in space.
Players should afterwards be able to access a list of WPs associated with any given series so as to rearrange the WP priorities (in case WPs are added/removed from the series).
For docking WPs, a docking module/turret docking module should be designated so that the ship will (if <10m away after clearing the last WP) automatically attach itself to the docking module. Docking waypoint series can be toggled as "reversible" or "non-reversible" to differentiate between docking and undocking maneuvers (Some docks have craft undock the same way as dock, just in reverse. Others have a specific docking in-path and a different out-path).
Escort WPs will define a path for craft to fly along to enter escort formation. At the end of these paths, crafts will attempt to mirror the mother-ship's orientation and speed and will attempt to maintain the escort position. These paths can optionally include a list of WPs for "leavin escort" if the player wishes them to leave escort formation in a specific manner.
Patrol paths are WP series that are similar to escort patterns but are flown in a constant loop. The ships will attempt to arrive at the first WP to begin the escort pattern and will fly the entire path. At its conclusion, they will find the first WP and rerun the path. They will continue to do this until commanded to stop.
Concept Strengths:
1) Simple System for Programming Docking Maneuvers
No scripts necessary. Because ship attitude, roll orientation, and speed are set at each waypoint, docking AI craft read what to do from the pre-defined waypoints themselves. Assuming their size allows them to clear the player-built corridors/hangars, craft should be able to read docking instructions on-the-fly allowing effective docking on the first attempt.
2) Escort Positions
Have you ever wished you could have your smaller craft follow your mother-ships with a predefined escort formation? One that allowed your craft to engage enemy craft during an attack and then return to fly alongside you in their proper positions? These waypoints (being information attached to the ship blueprint) would allow you to define escort positions for your fleet carriers and colony ships, keeping those pesky fighters and bombers from hitting that annoying turret blind-spot that you designed.
3) Internal Docking
Obviously, such a system would teach AI how to properly enter your ship to dock.
4) Traffic Control
If you have a station in a field of asteroids (generated, or player-built), you could define an external traffic pattern to allow your AI to properly navigate to hangars.
Potential Issues:
1) Your ship must be motionless
If your mother-ship is moving, AI-controlled entities who have been commanded to dock may collide with your ship while attempting to reach their series of waypoints. Even worse, AI-controlled ships may make it through the first, outer waypoints and be moving towards your inner waypoints when you reorient to where they are farther out from your ship that the outermost waypoint. In all cases, there must be a way to "update" the AI's order depending on which waypoints are nearest/next on the list to fly to.
2) Telling AI-ships which dock to fly towards
Just telling a ship to dock with you is not enough; ships may collide with your mothership or fail in docking if they are not sized properly for the dock they attempt to enter. There must be a way to designate specific docks/docking waypoints when commanding ships to dock (for example, Dock 1 has a waypoint chain for a small dock on top of your ship, Dock 2 has a waypoint chain for a large dock on the bottom of your ship, and you want a large ship to go to the large dock, not the small one). Adding a subcommand to the "Dock" command may allow you to designate which pre-built docking waypoint path you wish the ship to follow.
The Issue of Moving While Docking:
Docking ships can attempt to match their mother ship's speed and direction of acceleration. This will normalize their speeds and allow the docking maneuver to happen while moving. But buyer beware: make sure your mother ship cannot/does not outrun (accelerate faster) than docking ships... or else they may not be capable of matching the main craft's speed.
The Issue of Multiple Docks Tied to One Docking WP Path:
If you tie multiple docking modules to one docking WP path, only one ship will follow the docking pattern at a time. The others will wait their turn. At the end of the docking path, assuming the docking module is easily accessible and close enough to the WP path terminus, the craft will find the next available dock and settle in.
Docking ships can attempt to match their mother ship's speed and direction of acceleration. This will normalize their speeds and allow the docking maneuver to happen while moving. But buyer beware: make sure your mother ship cannot/does not outrun (accelerate faster) than docking ships... or else they may not be capable of matching the main craft's speed.
The Issue of Multiple Docks Tied to One Docking WP Path:
If you tie multiple docking modules to one docking WP path, only one ship will follow the docking pattern at a time. The others will wait their turn. At the end of the docking path, assuming the docking module is easily accessible and close enough to the WP path terminus, the craft will find the next available dock and settle in.
These are just a few of the initial applications this system can provide. If anyone has any suggestions to fix some of the issues or refine the concept, please post!
Last edited: