Transport AI

From Zero-K
Jump to navigation Jump to search

Transport AI involves 2 basic things:

  • Transports automatically pick up units from factories and drop them off at their waypoint (they follow factory orders until nearest non-move command).
  • Two queueable commands: Embark Embark.png and Disembark Disembark.png - these commands appear on transportable land units and factories when you build your first air transport. Embark = wait for transport to pick me up. Disembark* = disembark from transport

Possible uses

  1. Give bot factory waypoints through safe area next to the current battlefield.
    • Result: Units walk along these waypoints and if there are idle transports they will pick them up and transport them to their destination.
  2. Give factory waypoint to ally's base entrance followed by patrol.
    • Result: Units walk there and if transport nearby it will pick it up, drop it off and the unit will start patrolling.
  3. Give factory a move order near your base, Embark, then move to an impassable mountain.
    • Result: Units will emerge from factory and enter Embark mode - they will stand there and wait for transport to get them to the mountain.
  4. Select crawling bombs, click to move to enemy base then click Embark.
    • Result: Bombs will stop and wait for transports, transports will carry them to enemy base.
  5. Select Dantes, give them move commands across air safe areas, followed by disembark from behind the base spot and move to enemy base. Then click Embark.
    • Result: Dantes will stop and wait for transports. Transport will carry them along the waypoints to back of enemy base, unload them. From there Dantes will continue on foot.

Ferry routes

Ferry routes automate transports to travel units across a set path to a destination. The UI for creating ferry routes is (Default) in the upper left corner bar next to retreat and repair. The symbol is a red circle with a ray pointing out of it to the right (Ferry.png). To create a ferry route, first left click the ferry route button, next left click the start location of your ferry route, then left click the destination. A ferry route does not have to be just a straight line, the path to take can twist and turn all you like by holding shift and left clicking between setting the start and destination. Your ferry route will appear as a hard red circle indicating the start and a line directing out of that circle towards the end. You can even edit your ferry route, by clicking the ferry route button, hold shift and click on anyplace you placed a start, end, or corner to select it, and then click where you want that point to be. To remove a ferry route, click the ferry route button and left click a start location.

Now that you have your ferry route, it's time to put it to use! Assign transports to the ferry route by issuing a move command into the start circle. The transtports will now stay within a short distance of the start, even if you try and move them away, waiting for units. take a unit you want to ferry, and issue a move order into the circle. Once the unit is in the circle, it will wait for a transport to pick it up and move it to the end of the ferry route. you can shift queue commands for the unit and it will follow the commands after the transport.

Potential uses for ferry routes are to move a large army around static anti-air cover to far locations, as the transports will follow the route both to and from the location. You can set your factory's way-point to the ferry route start, and units will wait for transports to ferry them.

There are a few bugs with the system, such as if you assign a transport to a ferry route one time it may be unable to ever be assigned to a different ferry route, sometimes units won't seen to call for transports when they are in the start circle. if you have a gunship plant's rally point in a ferry route, the transports will wait for transport instead of being added to the ferry route, so you need to manually move them into the circle. There seem to be cases where there are both units and transports at the start location, but the units wait for a transport that is already off on it's ferry mission to come back and pick them up, which is undesired. Somehow, units seem to wait for a transport outside the circle, and thus never get a transport to pick them up.If a unit is waiting and not picked up, it will never get assigne a wait comand when issuing a move comand into the circle, and if yuo want it to be ferried, you must manually issue a wait command on the unit while it is inside the ferry circle. If the LZ is cluttered with units at the end of the ferry, transports will get stuck and not place units down, instead just holding them hostage over the end point.

Notes and details

  • In all of these cases transports return to the spot where they took unit using the same path.
  • Transports might skip some units because it finds it useless to transport them. It takes several things into account - distance of transport from unit, planned unit path, unit speed, transport speed, transport land times, terrain height differences - all of this is used to estimate the "benefit" of transporting given unit with air transport. Benefit = number of seconds saved by using transporter. It only transports units if benefit is higher than 5 seconds and in order of benefit (slowest units will be transported first, fast units might be ignored completely). Exception to this is the Embark command which serves as "priority" transport - units waiting with the Embark command will be served first.