Code cleanup and internal porting effort

Steam Revolution: The Age of Rail · published · build 26290490

There were a few changes visible to players that will make the first experiences a bit smoother by changing how save games work and some bug fixes.

  • Directly load into the game if there is a single game. However, added a button to play a different campaign so that you can still select between them. Also if there are multiple campaigns, the selection menu is still shown on startup.

  • Added ability to delete save games. There is a trash icon that show up when hovering now, and a confirmation dialog.

  • Fixed non-smooth tracks after cutting, which resulted from not recalculating track connections after creating the new tracks.

  • Truncate strings with invalid characters when loading and saving games.

  • Running at 1000x speed doesn't uncap framerate anymore.

The vast majority of the time went into porting systems be compatible with Linux, although I have not released a native Linux client (yet?).

  • Ported the game over to using SDL3 for windowing, input handling, and some other OS interactions. In the process of doing this, I fixed a few minor bugs, e.g. properly supporting switching between multiple displays that have different refresh rates, and better fullscreen handling.

  • Added a Vulkan rendering backend, but still use the D3D12 backend for the Windows build.