1. NIMBY Rails
  2. News

NIMBY Rails News

Version 1.1.52 Changelog

- New pax AI path finder. Pax can now tell the difference between passing by a station and changing trains, and will use the interval time divided by 2 as the waiting time when calculating the optimal path to take.
- The "show trip" option in pax listing has been greatly improved. It now distinguishes between passing by stations and transferring lines at stations, and shows the same time values the pax AI uses. It represents the optimal path, keep in mind the pax AI is also capable of modifying the times for the wait to adapt to the local conditions in its current station.
- When considering local station conditions, pax are now capable of taking into account the remaining time for a train to leave the station.
- New pax random destination picker. The older rules based on the very coarse and often wrong city location and population database have been discarded. This new random picker is in turn much more efficient.
- New company level setting to change overall pax spawn rate. After creating or loading a (SP) game, a new option is available in the company panel. It allows to tune up or down the overall demand of the pax random destination picker. The default value is 20% of the max possible pax generation rate, and higher factors are not recommended. Tune it down if you have slowdown problems or the amount of overall pax is too much to handle. This setting is stored in the save so MP hosters can change it in SP and have it apply when loading the save in MP mode.
- Since the city database is not used anymore, tweak the new random destination picker to consider instead the potential destination station catch population as a factor to discard it. This factor is less important for regional and long distance pax, which already have lower generation factors.
- UX changes to the line editor and line calculators to make it more visible that leg times and interval times are now mandatory.
- New station tab: platforms, with line timings and train information. NOTE: this is considered a WIP/developer feature and it's not fully baked.
- When the "show trip" mode is enabled in a pax listing, show the trip legs as an overlay on top of the map. NOTE: this is considered a WIP/developer feature and it's not fully baked.
- Board new pax with the same destination in chunks of 10 to speed up train boarding
- New internal model: line clusters. Identify isolated clusters of lines which are interconnected, and thus have guaranteed paths between all their stations, and start using this guarantee to simplify some code
- Perform random destination picking at the line cluster level, removing a lot of redundant processing and data
- Tune station flow to keep it fast but not overwhelm other AI processing
- Make train exit flow the same as station boarding flow
- Delete line confirmation dialog
- Pax pathfind cache should be invalidated by phases, to reduce lag spikes when editing lines
- Allow to use the max line interval when costing transfers in the new pathfinder, with a per-line toggle
- Make train cache pathfind lifetime last longer and randomize the live time
- Stop using the intermediate track textures at medium zoom and instead switch to the thinner textures
- Relax waypoint track min length to 30m
- When displaying track length in editor, if it's a platform, only display if its previous track is also platform, adding its length to it
- Display platform names on top of zoomed in stations on map
- Add a "max train textures" drop down to graphics options to allow to select less train textures in case the default max causes trouble for some users
- In track editor, station names should only be interactive depending on the mode, not on flags due to the shift key
- Fix: placeholder should not be deletable
- Fix: track deletion confirmation and blueprint confirmation should lock the track editor tools
- Fix: pax list sorting by count does not work for "next stop" grouping
- Fix: modal messages should always be toplevel windows
- Fix: some lines following tracks which got outside of the boundary formed by their stations were not properly rendered
- Fix: circular line runs were not rendered at some zoom levels
- Fix: never allow the total number of train units to be 0 in the train purchase editor
- Fix: pax inside train stopped at a station which is not their next stop do not count towards the train exit flow
- Fix (new pathfinder): the local cost overrides were substracting rather than adding the local costs
- Fix (new pathfinder): last stations on a line weren't handled properly
- Fix (new pathfinder): substract stop min time when comparing times for a train which already stopped (and is being considered by its remaining stop time)
- Fix: the pax pathfinder special case for evaluating trains with a set line and stop was not working properly, in effect disabling the local pax AI
- Fix: in the pax pathfinder, the transition from a pass-by into a wait-at node should not cost the min stop time
- Fix: line and train results in search engine should open their editors
- Fix: when pathfinding with an origin line+stop constraint, discard all paths that stop at the same origin station, not just those that make the pax wait at it
- Fix: batch new pax train loading was going over the train max pax limit in some cases
- Fix: rare crash in the cached track tracer
- Fix: do not reset the clone orders checkbox after purchasing a train.

Devblog for February 2021

What a crazy launch month! I've released more than 20 public builds in a bit over a month, plus answered hundreds posts and support requests, while working every day on the game. But now the hype has died down and many of the bugs died too, so it's time to tackle some more complex development tasks for the 1.1 cycle. Some of those have already started, and others will start soon. Read the blog post for a reminder of the milestones of the past month and what I'm going work on first thing in March.

https://carloscarrasco.com/nimby-rails-february-2021/

Version 1.1.45 Changelog

- New line drawing code which is 100x faster and has a lot less clutter.
- The line drawing code is now using procedural shader-based stippling rather than textures. This enables much more seamless and regular stippling, overall better looking than in the previous version, and allows to render all lines in a single pass.
- Keep old line drawing just for the currently edited line in line editor.
- Store track drawing in a tile cache, like it is done for lines. This should help players with slower PCs and very locally dense, large builds.
- Switch train AI back to (cacheable) track length based pathfinding, since the train avoidance heuristics were not working very well. This also results in a general train AI speed up.
- The leg calculator has been reviewed to match as much as possible the actual train AI.
- Allow to set train pax occupation % in leg calculator
- Expose train leg timer in train info. A new ETA and km counter is now displayed in the train editor info panel and in a tool tip for the speed counter in the train info window.
- Bump max trip time to 4 days
- New map option: map labels
- Show more train timer info in train info window
- Add a texture # counter to the mod listing to make it visible to players there is a train texture limit
- When cloning a train, the schedule is not cloned by default anymore. Add an extra checkbox in the bill to opt in to cloning the schedule.
- In multischedule editor, "select all trains" is now "select all listed trains", so it only selects trains which have their line or model group open
- Sanitize save file names even more, handling all documented forbidden for Windows.
- Store per-line the last values of pax occupation and ideal avg. speed for the leg calculator
- In train purchase bill, default the "clone schedule" checkbox to true when the initiator was the clone button, and to false when the initiator was the "purchase new trains" button
- Lock/unlock all stops buttons in line editor (only while the calculator is open)
- Make next stop list the default for train info windows
- Better wording for train ETA labels
- Make train ETA info visible in line status panel
- Avoid running train pathfinder AI if the current and next track offer no opportunities for a new path
- Train path finder should not consider reversing direction as a free step
- Detect if the GPU is AMD, and then automatically change the renderer to OpenGL to avoid bugs with the Direct3D renderer. This will happen only once and the user can switch back to Direct3D if they want to.
- A few users have broken permissions in their home folder and/or are trying to run the game in job-provided computers with restrictive enterprise policies enabled that prevent it from creating its saved games folder. As a last resort, create the saved games folder in the Roaming config folder.
- Fix: stop adding and min wait time to the leg timer in some conditions
- Fix: some track editor actions didn't properly invalidate the track render cache
- Fix: depots were missing their roofs
- Fix: cloning trains should try to restore the default code and name if it was not edited by the user
- Fix: leg timer should correctly be stopped while a train is doing a scheduled stop, since leg times are meant to only include running time, not waiting time
- Fix: changing the line color does not invalidate line render cache
- Fix: always store train colors and consider the v2 recolor flags only at the moment of drawing the train.
- Fix: zooming while holding RMB should not reset map position
- Fix: also support 720p users in new train purchase UI (temporary until the rest of v2 data is exposed)
- Fix crash: mod uploader file picker for icons was being picky
- Fix crash: correctly handle malformed numbers in some input boxes
- Fix: leg timer was sometimes counting an extra track length, adding a few extra seconds
- Fix: reset all train stats when cloning trains to make sure they belong to the selected combination

Version 1.1.38 Changelog

The big new feature is train mods schema v2. It enables train mods to provide any composition the mod author wishes, instead of the old rigid MU structure. This is being deployed immediately to the default branch to avoid the situation of mods that require a beta version.

- Train mods schema v2 implemented. Train mods can now provide a richer set of data to the game, and more importantly, they are not limited anymore to a rigid head-car(s)-tail structure. Instead they can provide any number of custom compositions, repeating any number of cars in any order. All v1 mods remain compatible.
- New train purchase interface to pick premade train combinations and their variable car numbers
- Add IME text input support
- Allow leg time estimator to have a min speed of 1 km/h
- Remove track id from track info
- Restore some level of train path cache, with a single frame duration, to help with depot pathfinding slowdowns
- Do not default to any speed value in the leg calculator
- Fix: reviewed again string input for non-latin scripts and fixed some bugs with Unicode handling
- Fix: new pax in stations should display the origin station name

Version 1.1.37 changelog

- Add button to toggle click to zoom in the lines and train listing
- Future proof mod loading so unknown schema mods do not crash or glitch
- Warn the user when trying to use a mod with unknown schema sections
- Add whole-line clipping to discard line drawing in map view
- Fix: the out-of-screen clipping for line drawing was not working properly
- Fix: crash when options panel cannot find a matching translation mod for the currently set game language
- Late trains also have an ETA penalty
- When a pax arrives to its next stop, reapply the ETA estimation from the POV of station immediately
- Make the new pax AI permanent, bumping the save version of the game
- Add "group by next stop" to train pax listing
- Interventions should also reset the stop and station state of the train
- Add a checkbox to mod uploader to not set the description or icon when updating a mod
- Mods panel is now a top level panel with its own toolbar icon
- Remove the train filter for lines and models and replace it with a grouping feature
- "In depot" filter for train listing
- Redesign pax listings to give more space to station name when using a grouping option
- Store exact game version in saved games header
- Add saved game file information to the saved games picker
- Add proper error warnings when dealing with different versions of saved game files
- Allow to rename rather than overwrite old version save files
- Fix: deleted stations sometimes caused ghost pax to remain hidden inside forever
- Pax now have a little memory! When they board a train, they also decide which is their next stop, and stick to it.
- Train stops now have a cost in the pax pathfinder, making lines that take more stops more time-costly
- The previous ETA costing now properly considers paths that bounce back at the station and discards them when it makes sense
- Late trains from the POV of the ETA are costed with the same amount of their late time
- The previous changes have a measurable CPU impact in large builds
- Give more space to mod uploaded for easier editing of description and update notes
- Attempted to fix the truncation of the mod description when editing mod updates in the mod uploader, but it turns out Steamworks sends the description already truncated
- New map option: disable line stop icons
- Fix: building the data structure used to avoid 1D collision had a degenerate case which leaked memory and slowed down the game in particular circumstances
- Dynamic tractive power formula was way overestimating its output. Make it more realistic but still a bit faster than real life
- Fix: stations with no region should still have some level of demand above 0
- The leg time estimator now has rough acceleration approximation for some fixed accelerations, or can optionally use a train assigned to the line to simulate its acceleration ramp
- Optimize track validator by not validating against map geometry built tracks whose sibling tracks are already built
- More rendering optimizations for the zoomed out views
- Fix: 1D hit test was looking too far ahead in some cases, resulting in deadlocks (one of the possible deadlock cases)
- Fix: set min stop time does not work if the current stop time in the stop is "pass" and it is not a waypoint
- Distinct icons for pass and stop waypoints, and also for station pass stops, on both line editor and lines on the map
- Add "continue game" main menu button
- Add interval suggestion in the calculator
- Simplify right toolbar to add room for more (future) buttons
- New map options panel with options to hide some map objects; also move map overlay buttons to this panel
- Move line timing setters and calculator to its own panel
- Reduce MP sync bandwidth by 3x, by increasing the sync phases. trains now take up to 3s to be sync to clients, but the sync window was already behind by more than that, so it didn't make much sense to keep the original 1s phase. all other phases are also increased in proportion
- Dynamic tractive effort. it will be reverted if too much stuff breaks.
- Fix: perfectly lined up N-S or W-E station platforms sometimes had 0 sized bounding boxes, causing coverage errors
- Two letter platform names when more than 26 platforms in a station
- Keep station auto name on unchecking the auto name feature if the custom name is empty, and auto focus the text input
- Display some text instead of a tiny box for empty station nameplates
- Tentatively disable one of the track hit tests which was giving trouble in very simple 1D hit cases
- Enable some debug graphics for hit test. For a few beta builds extra debug information will be shown next to trains in some circumstances
- Make scrollable listings better clip their content labels to make scrollbars more usable (not the real fix, but better than the previous state)
- Speed up train icon drawing
- Use a less pointy arrow for trains
- Speed up line drawing by using a simpler kind of line
- Relocate bottom listing tools so delete button is not under the scrollbar
- Fix color picker widget showing no color on first reset
- Disable train avoidance in train pathfinder if the to-avoid track is the destination or its linked tracks
- Accounting panels should be a scroll area in low resolution screens
- Fix: pax must pay km fares when the train passes by a waypoint
- Stop file modification times from jumping around in file picker
- Add train count in line stops header