NIMBY Rails devblog 2022-03

Station footprint extension building

The new building system in v1.4 is not just meant for cosmetic architecture. It’s also meant to enable new gameplay elements, to give an additional user buildable object which is not a track segment. The first use of this capability is platform footprint extension:

This building is special. It is only displayed in editor mode, and it has no texture. It’s also not an station by itself, but if it intersects a platform footprint, it extends it to bridge over to another platform. This was already possible with invisible track mods but now it’s cleanly supported by the core game.

Station coverage rework

Before a major review of the demand and station catch system is done in the future, it’s worth to make sure the current system is working properly, since some elements of it might carry over. The catch area system has had some unfixed flaws since the first v1.1 release when it comes to varying station radius, with smaller radius creating coverage gaps. This is now fixed in v1.4:

The catch area logic is now working properly, with every point of the map now correctly covered by its closest station as long as it is within its radius. With this definition smaller radius stations neatly cut out bites out of larger ones. This also enables an often requested feature: 0 area stations, for effectively disabling pax demand on them (they can still work as transfer stations).

The first implementation of this fix discarded the current approximation based on a triangle mesh and instead used a pixel perfect system, both in the game logic side and the rendering size with a shader based visualization. Unfortunately it turned out to be too costly in terms of CPU and GPU for some users, even with restricted number of station influences. To fix this problem the older mesh approximation system was resurrected, and worked on until it also had no gaps.

Blueprint clipboard collection

It is now possible to save the track editor clipboard contents to disk, and keep them in a persistent collection, independent of the loaded game:

This is for now a basic implementation of the UI and featureset for this system, but even at this basic level it involved extensive work. In particular this feature must preserve mod usage, and provide a way to use clips in new games which are missing the required mods by the saved clips. The game detects when a clip with a missing mod is used, and shows a listing of the missing content to the user, with the option of enabling said mods in the current game, or replacing the modded tracks and buildings with built-in objects.

This feature will evolve to also offer clip collection sharing with other players, although the exact system is still undecided.

Use full platform for flip, now also for fully linked platforms

Another improvement for train direction reversal behavior: if performed on a platform of sufficient length, and free of branches and signals, it will use its full length. This already worked in v1.4 for dead end platforms, and now it works for linked platforms. It still has a suboptimal behavior in that it needs to ride all the way to the end of the platform, but the unsightly “folding” effect in the middle of the platform should be gone as long as all the previous conditions are met.

User label building

Another kind of special building has been added: user labels.

This “building” shows even more of the specialization possible with the building system, with buildings which are not sizable and have no actual geographical footprints. These user labels behave like map labels, with the same zoom independent sizing. Some degree of customization is also available, with optional background fill, colors and font sizes.

Slowing down in April

I’m moving soon and I will have less time to work on the game during April. I will also have limited connectivity before land line internet gets installed in the new place. That being said I plan on making v1.4 the default game version in mid-April if 1.4.12 (and subsequent bug fixes when required) is looking good enough. Afterwards another shorter lived v1.4 beta series will start, to explore the last couple of items in the v1.4 roadmap, which are more speculative than the work done so far.