Version 5.11

From FYM Wiki
Revision as of 21:30, 5 December 2021 by Danny252 (talk | contribs) (Add notes on further features)
Jump to navigation Jump to search

Version 5.11 is the next release of FYM, and is currently in development.

Back to Version History

Car Destinations

Historically, FYM has only assigned and stored destinations as a whole map (or, for maps with multiple IDs, individual map IDs). On arriving at its destination, a car would assign itself to a randomly chosen siding, although if the car had previously been un/loaded at the destination, it would remember the siding used.

In V5.11, we have revised the data that FYM holds about car destinations, and FYM is now able to assign cars to a specific siding at the destination. In the main display, cars will still only display siding numbers if destined for the current map, but siding numbers are now shown for all destinations in the train information window, and can be filtered by in custom Classification Sorts.

When selecting a car destination manually, the dropdown will be populated by siding, rather than map. Note that virtual maps do not have siding numbers, and some other car destinations will not have them (intermodal terminals or older maps where siding numbers were not used for all sidings):

SelectSidingsElsewhere.png

When viewing a train in the Train Information window, siding numbers for all destinations are shown in the "P"ool column, not just the current map:

TrainInfoSidingsElsewhere.PNG

This allows some new bits of gameplay and functionality:

Blocking by siding

In some cases, local trains need cars sorted in a certain order - either because of very limited switching space, or because some sidings are only accessible in one direction. For example, a local may run A-B-C-B-A, serving some sidings at B on the outbound trip, and others on the return. Now that FYM is always aware of the final destination sidings, cars can be sorted by their destination siding at maps other than the current map using custom Classification Sorts.

Siding weights

FYM now stores information about how busy each siding is in real life, with this weight determining how likely a car is to be sent to the siding. This allows us to distinguish between things like busy chemical plants and minor fertilizer terminals, between maps with one industry and maps with dozens, and also to prevent random carload traffic being sent to inappropriate places (many coal mines only load unit trains, for example). Previously, this was all under the control of players, and while many have put in great effort to recreate realistic traffic patterns, it has proved difficult to make those traffic levels consistent across maps, and also to ensure that new maps get reasonable traffic levels, both of which have led to maps being unpopular due to very high or very low traffic levels. With the advent of virtual maps, which often cover a large number of

Regardless of the assigned siding weight, players are still free to assign cars to any destination.

Prevent cross loadings

Many sidings in FYM are served by multiple railroads. For example, many sidings in California are served by both BNSF and UP. If a car is loaded at one such siding with a destination on BNSF, it would be ridiculous (and, in real life, more expensive for the customer) for the car to be routed via UP for interchange to BNSF when the car could travel solely on BNSF. Now that FYM is aware of the railroads serving every siding, it will restrict these sorts of "cross loadings", so that cars automatically choose a sensible route.

FYM has also been configured to have some understanding of the interchanges between railroads, and will prefer more direct routings. For example, a car originates at a location served by CN and UP, and is destined for a location served by the Southern Railway of British Columbia (SRY). CN interchanges directly with the SRY, but UP does not, and would have to route the car to an interchange with either CN, CP, or BNSF. In this case, FYM will send the car via the more direct (and likely cheaper) CN routing.

Another example is a a car originating at a location in Chicago served by NS and the Indiana Harbor Belt (IHB), destined for a location on CSX. The IHB is a shortline railroad co-owned by numerous railroads, including CSX. FYM will route the car via IHB, which will interchange to CSX within Chicago, rather than travelling over NS and only later interchanged.

Car Routing and Car Pools (replacing 'Bill')

For many years, FYM has allowed players to "bill" a car, which causes the car to travel between the same origin and destination until a player changes the destination or removes the bill.

When a car was not billed, the routing logic was complex and not made obvious to players, but again generally preferred to send a car between the same origin-destination pair. The main exception was that if the destination (unload) map could also load the car, it would become unassigned after loading. Some car types, such as Passenger, IM, and Autoracks, were excluded from this behaviour, and also could not be billed.

There were several criticisms of this arrangement:

  • The fact that cars preferred to travel between the same origin-destination pairs led to strange traffic patterns; in particular, new maps did not receive much traffic unless players made an explicit effort to create it
  • This behaviour is not representative of real life routing behaviour; while there are a number of cases where empty cars return to origin, cars in manifest service are rarely reloaded for the same destination
  • "Billing" is not a realistic term

Routing algorithm changes

The routing logic in FYM has been greatly expanded to represent the variety of real world situations. The following behaviour is now better represented:

  • Cars owned by railroads and the TTX company will prefer to be re-loaded at a nearby location; this is done to reduce empty car miles and hence costs
  • Privately owned cars will prefer to return to their origin, but may be reassigned to a different origin
  • Tank cars will very strongly prefer to return to their origin, as car routing charges make this preferable for the customer, and changing the load in a tank car requires thorough cleaning

Car Pools (replacing 'Bill')

Railroad-owned cars usually roam quite freely on the network, but can be placed into car pools, which specify a location to which the car is returned when empty. FYM now supports two forms of car pool:

  • Shipper Pool - a car is assigned to a specific shipper for loading, and will always return to that location.
  • Dedicated Service - unit trains ignore normal car routing logic, instead being in dedicated service between and origin and destination. This mimics the original 'Bill' logic in FYM.

When a train from a previous version is loaded into V5.11, the following car pool conversions may take place:

  • If a block of 30 or more cars with 'bill' assigned with the same car type, origin, and destination is found, those cars are converted to Dedicated Service
  • Any other cars with 'bill' assigned are converted to Shipper Pool
  • If a train consists of at least 40 un-billed cars with the same car type, origin, and destination, the train is considered a unit train and is converted to Dedicated Service

Train Information Window layout and wording changes

The Train Information Window has been very crowded for some time, particularly the bottom control panel. Additionally, the window used the term "Bill" in an unrealistic sense to refer to cars assigned such that they return to the same origin repeatedly. This terminology has been replaced by "Car Pools", with what was once a "billed car" now being "a car assigned to a Shipper Pool".

This has been revised into four sections:

  • Destination, covering the selection of car destinations and assignment of siding numbers
  • Load, allowing different car loads to be assigned to a car
  • Car Pools, covering what was formerly "Bill", as well as some new functionality
  • Repair, covering new car repair functionality.

Buffer and Spacer cars

Unit trains often require buffer or spacer cars to ensure safe transit, and these are now more fully represented in FYM. Cars can be assigned to these purposes in the Car Pools tab of the Train Information Window. In order to be assigned to buffer or spacer car service, a car must be empty and unassigned. A car can only be removed from buffer or spacer car service through the Car Pools tab, preventing cars being accidentally assigned to other destinations, an issue that has often occurred in FYM.

AssignBufferOrSpacer.PNG

A buffer car is a car placed between the locomotives and hazardous goods, to provide some protection to the locomotive and crew in case of a collision or derailment. Buffer cars are commonly covered hoppers filled with sand, or tank cars filled with water. FYM will automatically add a load to buffer cars to represent this.

A spacer car is an empty car used to protect abnormally sized loads, most commonly empty flat cars used in the transport of windmill blades, but spacer cars may also be used in carrying abnormally heavy loads to distribute weight. In the case of windmill blades, these exceed the length of the longest flat cars, and so an additional flat cars are placed at either end of the load to ensure there is sufficient space between loaded cars.


BufferCar.jpg
SpacerCar.jpg
In this unit train, a brown covered hopper is being used as a buffer car. Spacer cars used in wind turbine blade transport. Each blade is loaded across three flat cars, with the central car not actually carrying the blade at all.

Car repair

Car repair (bad order cars) have been in FYM for a very long time, but have not been a major part of gameplay. In particular, maps with car shops have seen very little use, with no particular reason to send cars to them. This functionality has been expanded to give cars two different repair states: "bad order", and "home shop for repair". FYM is able to dynamically generate these states, and the rates of cars needing repair have been increased and are now triggered by many activities. For example, cars arriving at a major yard will be more likely to be bad ordered as carmen find defects on inspecting the train; industries can reject a car for loading after finding it in poor condition; and cars can be sent for repair or refurbishing after unloading.

Bad order

The bad order state represents a car with a dangerous defect that must be rectified as soon as possible. As before, this is indicated by the color red, flashing red in the 4 filter in map. Cars will now display "Bad Order - To Repair Track" more prominently in the Train Information Window.

In the real world, almost all bad order cars can actually be repaired on site as long as suitable equipment is brought. Short spur sidings for setting out bad order cars for repair can be found at many locations, particularly along busy main lines and at facilities like power plants, coal terminals, and other unit train destinations. FYM now has the ability to simulate calling out a repair crew, with a new "Emergency Repair" button in the "Repair" tab of the Train Information Window. In order to use this, the car must be bad ordered (a "Home Shop for Repair" car cannot be emergency repaired) and left stationary and uncoupled from any other cars. After a delay, the car will be returned to service.

EmergencyRepair.PNG
EmergencyRepairTimer.PNG
The emergency repair button being available for use for a bad ordered car. A car undergoing emergency repair, with a timer shown until the car is repaired. The timer respects the current time compression setting (see Hotkeys).

Home shop for repair

A car that is assigned to its Home Shop for Repair will be allocated to a specific car shop in the FYM network, and this will be considered the car's destination until it has been repaired at that shop. A car in this state is safe to move, but needs some form of major work (repair, refurbishment, or inspection). This car shop may be owned by the car's owner (particularly for tank cars), or may be a third party contract shop with appropriate skills and facilities (and a competitive rate for carrying out the work!).

Such cars are indicated by an orange marker (in place of the red for bad order cars), and a shop destination shown in italics. FYM's sorting logic will automatically treat the car as being destined for this shop. On arrival at its destination, the car must be sent to a repair track, at which point it will revert to normal service. It is possible for cars to be sent to a virtual map ID for repair if a contract shop exists at such a destination; sending the car to local delivery like other cars for the virtual map will cause it to be repaired.

Note that it is possible that when a car is damaged in some way, it will first require an emergency bad order repair to make it safe to travel, and then to travel to a home shop for more complete repairs. FYM will handle these states automatically.

Map rotation

It is now possible to rotate your view of a map by holding down the middle mouse button and dragging left and right. When dragging, the view is slightly "sticky" at 45 degree increments. The Home key will return the view to the default orientation for the map.

(We are aware that FYM does not look particularly good at most angles other than 90 degree increments, and that zoom would also be a useful feature, but these require significant revisions to FYM's original graphics engine - we hope to find the time to do these one day!)