The Slimline Update
Hi everyone!
Every once in a while we do a major tech update which doesn’t change the game, but changes the game’s underlying systems to improve performance. That’s what we have today.
In this Slimline Update, we have a number of big tech improvements, plus a few bug fixes and quality of life improvements. But first, the most important change to highlight:
No Autosave on External ‘Quit’
-
If you quit the game by pressing Alt+F4 (Command+Q on Mac) or by clicking on the ‘Stop’ button in Steam or by killing the game in Task Manager (Activity Monitor on the Mac), or by clicking on the window close box in a Windowed video mode, the game no longer performs an autosave before closing; it now just closes as quickly as possible.
This seems to be the way that the vast majority of Steam games work, and so I’ve changed our behavior to match everybody else. (but I still thought I should highlight it, since we used to autosave here!)
We do still perform periodic autosaves automatically (unless you disable them in the game options), and we do still perform a normal autosave if you quit the game using the in-game UI, and of course you can initiate a manual save any time you like. It’s only if you stop the game from outside that we skip the autosave in order to close faster.
Quality of Life Updates
-
New “Slider” UI widgets are now in use throughout the game; these now display precise values and also let you simply type the exact value you want into them.
-
New “Precise Duplicate” functionality; if you hold ‘shift’ while using the Duplicate function on scenery items, buildings, or groups, (either via hotkey or by clicking the button), then the duplicated objects will begin exactly on top of the originals so you can use the “precise” tools to move them precisely from there. This can be useful for making straight lines or patterns of objects!
-
Better saved game lists that show more information about each save.
-
Fixed the activation of the “Apply” and “Cancel” buttons in the combat ability editor, which sometimes wouldn’t enable when editing an ability’s costs or a few other values.
-
Changed game dates to be “Day, Month, Year”, instead of just “Day, Month”, so now we have “January, Year 2” instead of “Month 13”.
Rendering & Performance:
-
Updated our whole rendering system to be friendlier toward older OpenGL drivers and video game overlays. (the game now works using a single OpenGL context instead of a pair of them in an uncommon configuration) I don’t expect this change to make rendering faster for most people, but it should work better on old video drivers or pretty much anything that’s trying to hook into our game rendering code.
-
Loading saved games is now about three times faster than before.
-
Writing out saved games is now multi-threaded and about twice as fast as before.
-
Saved games are now slightly smaller, while also still being compatible with both newer and older builds of the game!
-
Quitting back out to the in-game desktop interface is now substantially faster than before.
-
Huge speed improvements to placing additional solid scenery objects into regions which already contain silly amounts of solid scenery (it used to be that if you had hundreds of thousands of navigation-blocking scenery in a region already, that the whole game could seize up for half a second or longer each each time you added another or moved an existing one; that’s now vastly improved!)
-
Fixed a lot of frame rate stutters as you open and close different UI elements in-game, and in particular the game’s character model editor interface.
-
Running a large game now uses about one third as much RAM as it did before. (One of my test cases of huge player saves has dropped from using 15 gigabytes of RAM down to under 5 gigabytes, for example)
-
The game now starts up much faster. (on my dev machine it now opens the game window within about half a second, instead of taking several seconds).
Video Options:
-
Renamed our “Fullscreen Window” video mode to “Borderless”; that hill is not worth dying on! :D
-
“Borderless” video mode now lets you explicitly set which display you want to use.
-
“Fullscreen” video mode now lets you explicitly set which display to use, as well as what resolution and what refresh rate you want to use. (caveat: this probably won’t fully work on Linux builds until next week as we wait for the Steam Runtime containers to upgrade to the latest release of SDL3, which fixed an important bug about the handling of fullscreen refresh rates)
-
Alt+enter now explicitly toggles between windowed mode and borderless mode on whatever display the game is currently on. (previously it separately remembered which display it had been on in windowed mode and which in a fullscreen mode, and swapped between those, so the window could actually jump around quite a lot, before. That doesn’t happen any more!)
Linux Notes:
-
On Linux, the game now runs natively within the Linux Steam Runtime 3 (sniper), where previously we had been on Runtime 1 (scout). (we will be updating to Runtime 4 in the near future; we found an issue with Runtime 4 which we’ve reported to Valve; as soon as their fix gets promoted into the stable build of Runtime 4, we’ll upgrade to it! Big thanks to them for their help with diagnosis and fixing the issue!)
-
Also on Linux, we no longer make a 32-bit build at all; we now only have a 64-bit Linux build. (In practice, nobody has made a 32-bit computer in decades, and Steam itself doesn’t support 32-bit computers any more, so.. no reason to keep making those 32-bit game builds, right? The 64-bit builds are always going to run faster and more efficiently. We’ll probably deprecate the 32-bit Windows build at some point in the near future for the same reason, but we haven’t actually done that yet; there’s still a 32-bit Windows build for this Slimline Update, but I’ll be shocked if anybody ever actually runs it!)
Other stuff:
-
Integrated professional localization for our five officially supported languages. (and over the next couple of hours these will also roll out to our achievements and presence messages within the Steam interface itself)
-
This build also contains the first half of the AI changes which will be required to support the upcoming Factions update. I’m super excited for that! Most notably, players can now think about fighting other players as well as NPCs, and monsters can think about fighting NPCs. (although right now we’re taking pains to try to ensure that it doesn’t happen, but if you’re feeling mischievous you can now take control of one subscriber’s toon and force them to fight another subscriber’s toon, and the AI will cope with it and continue the fight once you release control!)
..and geez, there’s been like an infinite number of tiny bug fixes, too!
As always, I want to send huge thanks to everyone who’s been testing all of this on our public ’test’ build for the last six weeks or so! It’s been a huge set of changes to the code and I’m super proud of where we’ve gotten to!
And now, onward to finish up Factions! Talk again soon.
-T