1. NIMBY Rails
  2. News

NIMBY Rails News

Devblog for February 2024

February saw the final releases of the 1.11 beta series, and the start of internal experimentation and development for 1.12. I originally intended for 1.11 to also feature pax generation changes, but the scope of the changes became too big to just be a "plus one more thing" feature during a beta period, so it has now been reassigned as the major feature of 1.12.

Work on the new pax generation system has begun, with many experiments done in February, to put some ideas to the test and see which ones are practical and which ones are not. The guiding principle is to try to model natural demand for pax trips, and then adapt the designs to the reality of a real time game. Solutions have been found for some the challenges of adapting this idea to the game, but a lot of work still remains to be done.

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

Version 1.11

Version 1.11 is now the default Steam version! This version contains only few user-visible changes, with the bulk of the work focused on optimizing the game sim to extract as much performance as possible from 4+ core CPUs. There's also pax pathfind improvements and new features, like board and disembark -only line stops.


[h2]Major multithreading optimzations[/h2]

In 1.11 the game simulation and the game UI can now run fully independent from each other. This boosts the game simulation speed by potentially a large margin, depending on how large your save is (and for users with less powerful GPUs, on how complex your on-screen buildup is). Since the game simulation was already massively parallel, this increases the CPU usage of the game. Faster sim = more CPU usage. If you prefer the game making less use of your CPU, in 1.11 it is also possible to limit this capability down to just 2 sim threads, with the corresponding sim performance hit.


[h2]New pax pathfind capabilities[/h2]

Board only and disembark only line stops are now possible. Although not super realistic, it is useful to keep local pax from boarding long distance lines making multiple stops in a large city, for example. Or to make sure large capacity lines only empty their trains in some selected, less busy stations. Factorio or a human transit simulation? You decide!



Pax pathfinding can now consider a pax staying inside a train for more than 2 train runs. This limit has been in the game since 1.5 and it is now finally removed. The pax pathfinder can now plan a path leg which keeps the pax inside the train until the train starts a technical line or an already visited station appears (not just the boarding station), whichever comes first, over any amount of train runs, including an entire week worth of them.

"Figure 8" or "pretzel" shape lines are now better supported. These lines, in conjunction with single line stations, have had limited support in the pax pathfinder. In 1.11 the game is able to detect more cases of a transfer station, including cases of a line crossing over itself on the same station, or a common looking line having a single direction loop in one end (in this case, the station(s) just before the loop are marked as transfer). This means there are now some cases where pax can disembark in a station and pick a train of the same line, to avoid the loop part of a "figure 8" line for example.

Finally, it is now possible to restrict pax from boarding a train if they plan to ride it for a too short time. For example, if you have a long distance line making a couple of stops in a big city, and want to forbid local pax from using it like a subway between the two stations, you can set a minimum stay time in these stops. Pax will stop considering them as valid legs in their trips if the ride time is under your setting.

[h2]Multiplayer fixes[/h2]

I've written this a bunch of times over the years already, but the new version contains major multiplayer fixes and optimizations. This time I'm confident enough that I've enabled up to 100x shared sim speed and made it the default setting, and feedback from the beta period has been positive. Give it a try if you are a multiplayer fan.


[h2]Better time zones[/h2]

A new option in the company panel now allows to change into a new time zone mode: Approximate. This mode uses a real world time zone map, instead of the previous simplified rule of having one time zone every 15 degrees of longitude. It's still called "approximate" because in order to keep performance from diving, it is a rasterized map with a resolution of around 5km, so locations within a 5km border of a time zone might display the wrong one. Still it's a huge improvement over the previous system.


[h2]Custom accounting start of day time[/h2]

It is now possible to change what time of day the game accounting considers as the start of day, relative to UTC 0. So for example, if your save is mostly built up in the USA east coast, you might want to consider changing accounting start time to -5h, so it tracks the USA Eastern time zone.

---
For a more detailed and technical look into what's in 1.11, check the devblogs:

https://carloscarrasco.com/nimby-rails-november-2023/

https://carloscarrasco.com/nimby-rails-december-2023/

https://carloscarrasco.com/nimby-rails-january-2024/

Version 1.11 is now in the beta branch

Version 1.11 is now available in the Steam beta branch! This version contains only few user-visible changes, with the bulk of the work focused on optimizing the game sim to extract as much performance as possible from 4+ core CPUs. There's also pax pathfind improvements and new features, like board and disembark -only line stops.


[h2]Major multithreading optimzations[/h2]

In 1.11 the game simulation and the game UI can now run fully independent from each other. This boosts the game simulation speed by potentially a large margin, depending on how large your save is (and for users with less powerful GPUs, on how complex your on-screen buildup is). Since the game simulation was already massively parallel, this increases the CPU usage of the game. Faster sim = more CPU usage. If you prefer the game making less use of your CPU, in 1.11 it is also possible to limit this capability down to just 2 sim threads, with the corresponding sim performance hit.


[h2]New pax pathfind capabilities[/h2]

Board only and disembark only line stops are now possible. Although not super realistic, it is useful to keep local pax from boarding long distance lines making multiple stops in a large city, for example. Or to make sure large capacity lines only empty their trains in some selected, less busy stations. Factorio or a human transit simulation? You decide!



Pax pathfinding can now consider a pax staying inside a train for more than 2 train runs. This limit has been in the game since 1.5 and it is now finally removed. The pax pathfinder can now plan a path leg which keeps the pax inside the train until the train starts a technical line or an already visited station appears (not just the boarding station), whichever comes first, over any amount of train runs, including an entire week worth of them.

"Figure 8" or "pretzel" shape lines are now better supported. These lines, in conjunction with single line stations, have had limited support in the pax pathfinder. In 1.11 the game is able to detect more cases of a transfer station, including cases of a line crossing over itself on the same station, or a common looking line having a single direction loop in one end (in this case, the station(s) just before the loop are marked as transfer). This means there are now some cases where pax can disembark in a station and pick a train of the same line, to avoid the loop part of a "figure 8" line for example.


[h2]Multiplayer fixes[/h2]

I've written this a bunch of times over the years already, but the new version contains major multiplayer fixes and optimzations. This time I'm confident enough that I've enabled up to 100x shared sim speed and made it the default setting (famous last words?). If you are a multiplayer fan give the beta a test.

---
For a more detailed and technical look into what's in 1.11, check the devblogs:

https://carloscarrasco.com/nimby-rails-november-2023/

https://carloscarrasco.com/nimby-rails-december-2023/

Devblog for December 2023

Work continued in December to implement major optimizations, but some diminishing returns were starting to hit, so I started a partial multiplayer rewrite to try to fix the many issues it currently has. I discarded large swats of code, old attempts at fixing shared mode and editor synchronization. It's now looking much better, at least on my end, so we will see how it goes when the beta goes public. I then took some holidays to think about where to go next with 1.11. The main idea I had for the release was not working out, so I implemented some small features and will consider making a release sooner than later.

https://carloscarrasco.com/nimby-rails-december-2023/

Devblog for November 2023

Time flies when you are deep into optimization programming, and that's how November went by. The remaining roadmap items are very CPU intensive, so the game needs to extract more performance from the CPU cores. A very deep rearchitecture is ongoing, with a variety of strategies like database-like transactions and triple buffering game state. As a result the UI and the game sim are now fully asynchronous, removing a large pause from the game sim, letting it run for a longer in time on the CPU cores.

November was definitely a technical maneuvers kind of line, maybe December will return to more regular service.

https://carloscarrasco.com/nimby-rails-november-2023/