1. NIMBY Rails
  2. News

NIMBY Rails News

Version 1.1.62 Changelog

- An asset listing can now be accessed in the top right toolbar (for now it uses the dollar sign icon, like Company; a new icon will come in a later build). Allows to list stations, lines and trains and sort them by any of the accounting items they collect.
- Add new real time stats to the asset listing for stations, trains and lines
- The train counter shown in the line editor is now a link into the train editor. if there are 0 trains in the line, it opens the purchase interface with a single slot clone schedule for the line. if there is already one or more trains in the line, it opens the regular train editor selecting a random train from the line
- Add a "purchase new train" button to the line editor. if there are 0 trains, it behaves like the train counter link. if there is already one or more trains in the line, it opens the purchase interface cloning a random existing train from the line
- Display current global ridership in the top status bar for no cash games. Cash games can switch to this display by clicking the balance number
- Optimize train AI by building a coarser track occupation map. Builds with thousands of trains will benefit from this optimization.
- Rename "started trip" pax account to "new pax", since this is what is actually tracking, and only track for stations
- Add new "started trip" pax account to lines, stations and trains to track new pax being spawned into full pax
- Add new "never serviced" pax account to stations to track new pax that never had a chance to become a full pax before demand mechanics decreased the station counters
- Do not allow leg calculator usage without a train
- Remove car listing from train bill
- Draw text input cursor as a vertical line segment
- Update the UI library to a newer version to fix some text input scrolling issues
- Fix: the track distance function used by the train speed control was sometimes wrong on branched tracks
- Fix: leg calculator panels should not be displayed when selecting the accounting or status tabs in the line editor
- Fix: leg calculator was overestimating braking time by ~10s
- Fix: leg calculator should always use an empty train as reference, since the new speed control does not allow to slow down below the min speed. Show a warning when the player selects more than 90% of the train max speed in the leg calculator.
- Fix: limit the maximum timestep allowed when integrating the train motion to make it independent of the simulation time step (after 10x speed) in single player and in the leg calculator, iterating extra steps if required (not required in multiplayer since MP simulation is always fixed time step)
- Fix all known errors involving Unicode text and copy/paste
- Fix: increase input text buffer so long strings of IME input are not cut after 6 characters
- Fix: expand rectangle of queried tracks for tile track cache at high LODs so partially out of tile tracks are included in the tile and not cut out
- Fix: do not add catch areas twice when collecting real time stats on lines
- Fix: implement Steam UGC API query pagination to support unlimited amount of mods in mod uploader

Version 1.1.58 Changelog

- Train speed control is now based on keeping a minimum speed, which can be set per line leg
- Line leg times calculator now exposes the speed setting as the train min. speed, and sets it for all the unlocked legs
- New texture manager for trains based on dynamic texture uploading and a LRU cache. The train textures limit has been removed.
- Implement filtering in the train model listing by tags, max speed, max pax, year introduced, year retired and price
- Major rewrite of the high level game state handling. The game UI should now remain responsive while loading a single player game, starting a hosted game, and loading the received game when joining a server
- Show a message and a cancel button in the previous mentioned instances
- Allow max zoom to be 50m wide to show more train texture detail
- Make train models searchable in search engine; results open the train purchase screen
- Improve search engine string match for game objects to consider word boundaries and substrings
- Transfer line icons in line stop listing
- Remember last selected pax listing options when opening a new train or station info window
- When pax consider the ETA of an optimal train yet to arrive, cap said ETA to the pathfinder interval value, both for on-time and late trains. This should help with depot gameplay in the early morning.
- Non-biased pathfinds now also store all their optimal sub-paths in the cache, for a small pathfinder speedup
- Optimize the pathfinder cache to only store the minimum information required for the AI
- Add a minimum FPS cap to the sim to smooth out CPU spikes. The sim can still go slower than the cap if the overall complexity and selected sim speed demand it.
- Sort mods in mod uploader alphabetically
- Do not allow to complete a station platform or depot building when its control points at the extremes touch, like it is already done for plain tracks
- Fix: consider any lingering game state after a multiplayer disconnection to be invalid and discard it
- Fix: the "show trips" view in the info windows could get stuck if the station/train became empty while picking a destination

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