Version 5.11

From FYM Wiki
Revision as of 09:45, 2 May 2022 by Danny252 (talk | contribs) (V5.11.22 release notes)
Jump to navigation Jump to search

Version 5.11 is the current release of FYM.

Back to Version History

Brief notes

V5.11 has introduced significant changes to car destinations and repair logic.

Car destinations

All cars are now assigned to specific sidings on destination maps. These will be shown explicitly when selecting car destinations.

Each siding in FYM has an associated traffic level, which determines how many cars will be routed there.

Car routing is now more varied, based on real-world patterns. FYM will generally minimize empty travel for cars like boxcars, will generally (but not always) send empty tank cars back to origin, and will route empty grain cars back to the general area in which they originated.

Where a siding is served by multiple railroads, FYM will only allow routings that are valid for the railroad delivering the car. A car loaded by UP at a siding served by both UP and BNSF cannot be routed to BNSF destinations. This logic extends to shortline railroads and their associated class 1 partners.

Car pools (formerly "bill")

The concept of "Billing" in FYM has been replaced with car pools.

Shipper Pool cars (formerly "billed") will return to origin after unloading, but will choose new destinations after loading.

Dedicated Service is a new mode that can be assigned to cars in unit trains, where the previous origin and destination are always re-used. It is important to assign this state for new unit trains - FYM's car routing is much less likely to return empty unit trains to origin without this.

By default, billed cars will be converted to Shipper Pool. However, if a train from V5.10 is loaded into V5.11 with a block of 30 or more "billed" cars travelling on the same route, or the whole train consists of 40 or more unbilled cars travelling on the same route, the cars will be assigned to Dedicated Service.

Car repairs

Car repairs are now more frequent. Cars can be repaired in place if no repair track is available, but the player must wait for a repair team to arrive.

Cars will also occasionally be sent to dedicated repair shops ("home shops") for more major repairs.

Other

The Train Information Window has seen some layout changes, and now has tooltips for most buttons. In particular, note there are now several tabs at bottom right for different operations.

FYM now supports Buffer and Spacer cars for unit train use.

Maps can be rotated by holding down the middle mouse button and dragging the mouse left and right. The "Home" key resets the orientation.

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 the car with CSX in Chicago, rather than the car travelling over CSX's competitor NS.

This logic will also apply to the various Mexico Interchange locations (Laredo/Brownsville, Eagle Pass, El Paso, Nogales) - BNSF, KCS, and UP origins will only send cars to their own interchange locations. Additionally, cars can no longer be routed out of Mexico, into the US, and then back to Mexico!

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

Cars will also have some consideration of distance when selecting destinations. In most cases, rail transport is not competitive with road transport over short distances, and FYM will not send cars on very short distances in most cases. Some special cases are also now handled - in particular, woodchip and garbage traffic is highly localised in nature, and trans-continental traffic will not be generated.

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.

TSAR Window improvements

The TSAR Window now has an additional option for filtering TSARs, "Work Yard", which will show all trains that originate, terminate, or have work notes (e.g. for pick ups and set outs) at the selected yard. This new option should help players to identify routing to, from, and through a yard.

In addition, several minor changes include:

  • O/Here, T/Here, and E/Here have been un-abbreviated to Originating, Through, and Terminating
  • Selecting any of those buttons with a map other than the current map selected will no longer reset the selection, and are enabled even without a map open
  • Tooltips have been added to several buttons

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 the mouse 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!)

V5.11.1

(V5.11.1 was not made publicly available)

  • Fix messages for YM apply/relunquish being unreadable

V5.11.2

  • Enable Home Shop for Repair functionality
  • Fix intermittent bug when following a train between maps
  • Fix Home Shop for Repair behaviour if the car is already destined for a shop
  • Fix locomotives getting multiple "Serviced" history entries if moved back and forth across a repair track
  • Fix mobile car repair sometimes applying repeatedly
  • Fix next map selection logic for exits that connect to the same map ID
  • Fix error when selecting Save to HD/Ride to Map with no map selected
  • Fix YardStateCarColors form not being openable
  • Fix FYM being able to leave custom yard colour data in a corrupt, non-recoverable state

V5.11.3

  • Make dedicated service cars slightly less likely to receive repairs, as they go through more load/unload cycles
  • When follow is enabled, only select moving trains using next/previous train ("I" and "O") hotkeys
  • Add separate checkbox on inbound trains form to determine whether a train is selected on entry
  • Don't show previous car loads for buffer cars (no more carpets as buffer loads...)
  • Simulate inspection of all units in an articulated carset when loading the first unit, rather than on each unit individually when it is loaded.
  • Fix repairs assigned on unload recording an incorrect car location
  • Fix players being able to un-set destinations for home shop for repair cars
  • Fix "Go to map" button on exit list not working
  • Fix connection map ordering in menus (again) and incorrect maps being loaded by default
  • Fix some oddities in repair assignments for articulated cars
  • Fix siding and exit numbers being hidden by the hide text ("T") hotkey
  • Fix YM apply/relinquish messages not being correctly deleted after they're handled
  • Fix FYM installer using an un-signed copy of the FYM executable

V5.11.4

  • Fix cars not handling the deletion of their destined shop

V5.11.5

  • Fix cars with invalid shop destinations (rather than just removed ones)

V5.11.6

  • Increase preference for routing cars to nearby car shops by using the square of distance in weighting, not just distance.
  • Add shop destinations to "Siding" dropdown in Set Sorts window (hotkey 9), and limit siding numbers to those at the selected yard.
  • Autoracks will now match any sort when humped, not just autorack-specific sorts. This change is motivated by:
    • A general shift to move autoracks in manifest trains, so it is increasingly rare to sort autoracks separately.
    • Autoracks routed to home shop were not behaving as expected.
  • Teach Mexican and Alaskan railroaders the basics of car repairs, as their interchange partners point out that AAR rules disallow the interchanging of bad order cars.
  • Workaround car load dropdown not updating after applying a load to a car.
  • Make repair filter (hotkey 4) use white for normal cars, a slightly darker orange for home shop cars, and shorten the "off" part of the flashing cycle.
  • Fix child car types (e.g. large/small variants) ignoring shipment size configuration data, instead generating single-car shipments.
  • Fix display of message about outdated connection maps.

V5.11.7

28 January 2022

  • Add new auto-updater to FYM.
    • When a new FYM version is released, the auto-updater will download and run the installer, with no user input needed.
    • When a user has manually moved their FYM installation, meaning the install data Windows stores is no longer correct, the auto-updater tries to select the directory FYM is running from.
    • The auto-updater will skip re-installation of DirectX.
    • An installation log file will be saved to the log directory.
  • Change filesystem layout for new installs, to finally match Windows standards set 15 years ago:
    • FYM itself will be installed to "C:\Program Files(x86)\Freight Yard Manager\" by default.
    • User-modified data, map data, log files, etc., will be stored in "%APPDATA%\Freight Yard Manager\" by default.
    • For existing installs, no change will occur; FYM will automatically detect the existing install and data.
  • Add ability to select the location of the game data directory
    • In the Options window, there is now an option to select which directory contains FYM's data.
    • This now allows FYM to be installed locally on multiple PCs, while the data lives on a remote hard drive or network location.
    • When starting FYM and no existing data or settings are detected, users now have the option to select a data directory to use, rather than choosing a (new, unique) username.
    • When a new data directory is chosen, FYM will restart immediately and load data and settings from that location.
    • The chosen data directory is saved as a system-wide setting, and is resilient to users ending up with multiple FYM installs.
    • There is not yet a built-in utility for migrating the data directory; this may follow, depending on demand.
  • Fix industries attempting to load/unload cars going to home shop, with disastrous results.
  • Fix Shift-4/5 filters not updating with car destination or filter setup changes.
  • Fix autoracks and intermodal cars sometimes losing their last loaded/unloaded location data.
  • Fix missing icon on desktop shortcuts.

V5.11.8

29 January 2022

  • Fix flashing chat messages not working.
  • Fix incorrect filepaths for some sound files, and make sound logic more resilient to missing files.

V5.11.9

29 January 2022

  • Fix text showing above game controls

V5.11.10

15 February 2022

  • Change to new, custom server software for downloading map data.
    • This should result in faster download speeds when downloading new maps.
    • Further functionality will migrate over to this new server software, in preference to FTP.
  • Internal changes to train and map file data formats to reduce size on disk.
  • Fix various issues in Yard-State-RR-Car colours form.

V5.11.11

19 February 2022

  • Prevent players from opening train files from a newer version of FYM, prompting them to upload.
  • Ensure autoupdater runs before logging into chat, to avoid annoying login-logout-login behaviour.
  • Change turntables to always run 180 degrees from their current position.

V5.11.12

20 February 2022

  • Fix bugs related to train history parsing.
  • Fix car creation window allowing players to create cars of no type, causing an error message.

V5.11.13

23 February 2022

  • Skip version detection on train files without a version header.
  • Change underlying web client in attempt to workaround outdated SSL/TLS issues.

V5.11.14

24 February 2022

  • Actually apply the fix from V5.11.13 to version detection!

V5.11.15

3 March 2022

  • Further SSL/TLS issue work.

V5.11.16

4 March 2022

  • Turns out older Windows versions don't support non-deprecated security protocols on .Net 4.5!

V5.11.17

13 March 2022

  • Reduce the probability of cars being assigned to sidings that handle multiple car types, as transload sidings were receiving too much traffic.
  • When a bad ordered car is repaired, if it is then allocated to a home shop for repair, any cargo in the car will be unloaded on site.
  • Cars allocated to the current map will show "R" in any display mode where local cars show their siding number.
  • Fix in-map data recovery form
  • Fix selected car being forgotten when train leaves a map

V5.11.18

13 March 2022

  • Fix selected car save (but better!)

V5.11.19

13 March 2022

  • Fix car weighting logic

V5.11.20

2 April 2022

  • Fix subunits of articulated cars sometimes keeping their destination when another subunit is allocated to a shop
  • Reconfigure Siding List (hotkey M) window to have three tabs:
    • Car Types - Contains the original data, listing the sidings handling each car type
    • Sidings - Lists the car types, configured traffic level, and assigned name (if any) for each siding
    • Car Shops - Lists the car shops configured on the map. Only shows major car shops to which cars may be routed for major repairs or inspections.

V5.11.21

10 April 2022

  • No longer show an Unhandled Exception when the MIM IDs of a map have changed.
  • Strip load data from a car when assigning buffer/spacer car status.
  • Allow train blocks to be assigned for yards after a runthrough interchange to a different TSAR.
  • Always show siding number in Set Sorts window (hotkey 9), not just industry name.
  • Fix bug allowing new players to choose an already registered username.
  • Fix bug causing siding weightings to be ignored in some cases when using the 1x/Nx Random buttons.

V5.11.22

2 May 2022

  • Add ability to sort inbound trains by name and age
  • When a hump yard is updated, don't reset the YM's carefully crafted car sort data
  • Add checksum to train files, to allow FYM to better detect files corrupted during transfer to/from the server
  • Fix a backup data directory not being created correctly for new installs
  • Fix detection of trains on modified track when a map is updated
  • Fix error in a corner case related to a map with multiple map IDs but only one has sidings