Station Dock Control

From Elite Wiki
Revision as of 06:05, 25 August 2015 by Phkb (talk | contribs)
Sdc sample01.png
Sdc sample02.png

Overview

This OXP attempts to add some realism and depth to the game by giving each station with NPC traffic its own list of docked ships that launch when their scheduled departure time lapses. It does this in the following ways.

  1. Maintains a detailed list of ships docked at stations that have NPC traffic. This includes ship types and equipment, pilot information, escort and group information, docking bays, destination systems, and arrival and departure times.
  2. Launches ships that reach their departure time, and send them on their way to other systems. Perform regular assessments of each station dock, checking its congestion level, and potentially bumping departure times for all vessels to ease launch queue pressure.
  3. Automatically dock ships at stations. Most ships that enter a station will end up on the dock list.
  4. Move ships through a full range of docking statuses: Inbound, Docking, Unloading, Docked, Loading, awaiting departure, and Launching (see descriptions of each of these below).
  5. Simulate real-world pilot activities: Occasionally adjust ships destination, or their departure time, to simulate real-world changes in plan. Some pilots will hide their destination from GalCop authorities, so it doesn't show up on the list.

The OXP works on both 1.80 and 1.82, but it works better on 1.82 and later. In 1.80, ships can look slightly different on launch to how they look in the dock, but new features in 1.82 fix this. Plus, there are some bugs in 1.80 relating to ship AI and hyperspace destination systems that are fixed in 1.82.

This OXP will work with or without RandomShipNames. If you don't use RandomShipNames, the docked list will only show ship types.

Hopefully, the things this OXP does do contribute to a much richer experience for Oolite players.

What's happening under the surface

The main change this OXP makes to the core game is to adjust the core populator function. For ships jumping into the system from somewhere else, there is no change. That should still happen using the existing logic. What has changed is the outbound functions, and it's worth taking a moment to explain the logic that this OXP uses. Previously, the standard populator would randomly launch ships of various types, but some of that randomness was mitigated by some balancing functions. That is, if there was more than a certain number of ships with a particular role, no more of that role would be created. What that did was prevent a system from having more than 3 heavy hunter groups, or 4 medium pirate freighter groups. If there are 3 or more heavy hunter groups, the populator wouldn't create anything.

In this OXP, some of that balancing is gone, because all of the ships in the docking queues are defined in advance. For ships coming into the system the balancing factor is still present, but for ships launching at a station there could very well be 5 heavy hunter groups.

Note: **Any OXP that changes the core Oolite populator function may potentially conflict with this OXP.** If you find an OXP that does conflict please contact the me via the Oolite bulletin board so I can work out the best approach for addressing the conflict.

Dockside operations

When the player is docked at a station that has NPC traffic and allows the list to be shown, an item called "Station Traffic Control" will be available on the Interfaces (F4) page. The title of this will vary, based on the name of the station. For instance, at a main Coriolis station, the title will be "Coriolis Station Traffic Control".

On opening the traffic control screen, a list of ships will be displayed. Beside each ship will be a scheduled departure time or current dock status (see below), and, if the ship has lodged a flight plan, what their destination system is. This list will refresh itself periodically, even while you're viewing it.

If you select a ship from the list a "Ship Information" page will be displayed. This page will outline some of the information the station has about the vessel, including the name, legal status, and whether the ship is part of a group or escort. Also, pilot information will be available, including their home system and species.

Please note that data on the list is subject to change. Ship captains can change their minds about when they want to leave, or what their destination will be.

When examining the ships in the dock, you may decide you would like to launch just before or just after a particular ship. There are a number of reasons why you might decide this. First, that ship might be heading to the same place you want to go. In that case, launching just after that ship would enable you to follow the ship until it creates a wormhole and follow it through. Secondly, you might want to launch before some ships that you suspect are hunters or assassins. In that case you can launch before them and give yourself plenty of time to race away. Or you may decide to launch when there is a large gap in the launch queue, giving you a peaceful launch experience without risk.

In either case, to launch before or after a particular ship, select the appropriate command from the list of options ("Launch before this ship" or "Launch after this ship"). You can't launch before or after any ship that is due to launch in less than 10 minutes. Station launch protocols require a minimum of 10 minutes lead time for a launch.

Occasionally, when you open the Traffic Control display, you will see this: "Establishing communications link with station traffic control. Please stand by." This message indicates that the station's data network is experiencing bandwidth issues. The list will appear after a short delay.

Exemptions:

  1. Police vessels are not shown in the list of docked ships. All police vessels are docked separately to civilian vessels.
  2. Miners, Scavengers and other Station-specific vessels: Some stations will have a miner, scavenger, or some other craft that launch and dock periodically. These are not listed in the station traffic control list, as they fall outside of the traffic controller's work policy guidelines.

Note: While the above vessels are not included on the dock list, they will still show up as "Inbound" when they are docking with the station. This is purely for information purposes. Once they enter the station they are controlled by other dockyard services and will not be displayed on the list.

Status descriptions explained

Ships that appear in the traffic control list can have one of five different statuses. They are:
Inbound This indicates the ship is just outside the station and has requested permission to dock.
Docking This indicates the ship has entered the station and is being maneuvered into a docking bay, umbilicals are being attached, ship manifests interfaced with station systems.
Unloading This indicates the ship has docked in station and cargo, passengers or parcels, are being unloaded/delivered.
Docked This indicates the ship is waiting for cargo and/or departure instructions.
Loading This indicates the ship is currently loading cargo.
Time (hh:mm) When a time is displayed, this is the time remaining until they will launch from the station.
Launching This indicates the ship has requested a launch slot from Traffic Control. Once they are cleared (and it may take some time if there is heavy traffic), they will be maneuvered into the launch tunnel.

Sdc sample03.png

Flight operations

Stations that permit their traffic control list to be viewed also provide a data stream that can be accessed through a multi-function display (MFD). To access this data stream, first target the station, then select a MFD slot using the Shift ":" keyboard sequence, and then cycle through the available MFD's using the ";" key until the Traffic Control list appears:

The MFD is a "lite" version of the main Traffic Control screen. It shows, at the top, the number of ships attempting to dock at the station, and the number of ships that are currently in the launch queue. Then the first nine entries from the traffic control list will be displayed.

Note: There is a difference between "Launching" and being in the launch corridor. A ship that is launching is still inside the station in their allocated docking bay. Ships in the launch queue are being launched by the station traffic controller and should be exiting the docking port shortly.

Download

Download v0.9.7 (Beta) StationDockControl.oxz (downloaded 4958 times).
To download this as a OXP inside a ZIP file, click here. You will need to extract the OXP folder to your AddOns folder to use this option.

Licence

This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 4.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/

Special thanks go to:
cim, for all his coding help and patience with my incessant list of questions. I couldn't have done this without your help, cim!
Norby, Disembodied, another_commander, and Wildeblood for their suggestions and feedback, without whom this OXP would not have been anywhere near as good as it could be.
To all the devs of Oolite, who are committed to making Oolite such a great base from which experiments like this can be launched.

Version History

Version 0.9.7

  • Tweaks to the repopulation function.
  • Added the Launch Queue MFD to the HUD Selector.
  • Added routine to use 1.83/4 code to check for big GUI HUD's.
  • Added rockhermit-chaotic and rockhermit-pirate to station list.
  • Fixed issue where requesting a launch after a ship that isn't due to launch for a considerable time may cause the dock list to be inadequately populated.

Version 0.9.6

  • Removed some test debug comments.
  • Hopefully fixed scenario where purchasing equipment results in an empty dock (although the jury is out on this one!).

Version 0.9.5

  • Added check for player ship when docking ships. In a fast-dock scenario the player ship will otherwise try to be docked like other ships.
  • Removed the ability to view other station docks (accidentally left on during debugging).
  • Reduced logging level to minimal.
  • Added functionality to add custom menu items to a ship display.
  • Added Generation ships to all exclusions.
  • MFD will now auto-hide itself when the target station goes out of range, and reopen when another station is targeted, if the same MFD slot is still available.

Version 0.9.0

  • Further tweaks to what stations shuttles can be sent to.
  • When a wide font is used, the number of ships docking displayed in the MFD is no longer hidden.
  • Tweaked the title of the dock list so it stays within the normal window bounds with wide fonts.
  • Fixed issue where cancelling a docking request was not removing the player ship from the MFD list.
  • Fixed issue where an expired docking request was not removing the player ship from the MFD list.
  • Put "bigTrader" ships into the "no traffic" list, because these ships are likely to disappear between saves, meaning all the dock data will error when attempting to launch.
  • Put interface option text into description.plist file.
  • Checks for the "allow_big_gui" option on HUD's.
  • Added station roles from the Bank of the Black Monks OXP.
  • Added station roles from the Jaguar Company OXP.
  • Added station roles from the Collector OXP.
  • Added station roles from the Aquatics OXP.
  • Added station roles from the Resistance Commander OXP.
  • Added station roles from the Lave Academy OXP.
  • Added station roles from the Free Trade Zone OXP.
  • Added station roles from the Planetfall OXP.
  • Added dock versions of ships from the Aquatics OXP.
  • Ships destinations will now only become visible when the ship's departure time is under 2 hours.

Version 0.8.0

  • Prevented shuttles from heading to otherwise hidden in-system destinations (Slaver bases, hacker outposts), plus some other locations.
  • Shuttles will now occasionally hide their in-system destination.
  • Balancing of shuttle destinations. Closer stations will have higher probability of being selected over distant ones.
  • Added dock versions of ships from the UPS Courier OXP.
  • Added station roles from UPS Courier OXP.
  • Split out the debug mode on the interface screen, so "this._debug" controls output of comments to the log, while "this._mode" controls what functions are available to the player.
  • Fixed bug with storing additional ship roles for escorts, where roles were being stored repeatedly, instead of just once.
  • Converted some strings into arrays.
  • Fixed issue with MFD occasionally showing "NaN" errors after jumping into a new system and before the populator function has run.

Quick Facts

Version Released License Features Category Author(s) Feedback
0.9.7 2015-08-25 CC BY-NC-SA 4.0 MFD Mechanics OXPs phkb Oolite BB

Gameplay and Balance indicator

Tag-colour-green.png