Smaller update before 0.34
Hello!
I’ve updated the game to adress a loading bug that caused loading to stall. This only happened when there was a specific high density building in the city and was due to a missing material.
This update also adds a bunch of fixes that have been in the works for the upcoming 0.34 update, that I expect to upload next sunday.
There are a few new features that have been added in now:
– Small quick start template added
– Russian localization expanded
– There is now only a fixed amount of resources available on the global market, meaning they can now run out. The amount depends on global population (which mirrors the city’s population) and the state of the global economy. When times are good, there are less resources available, as there are more buyers
– Increased size of connection area when placing monorail and vactracks
The change to trade will require additional tweaking over time, but is aimed at promoting production of goods in the city, rather than just setting up long time imports. The long time imports will become more viable the larger a city gets and to fix short term requirements for building materials or other resources.
There are a bunch of bugs that have been fixed as well as additional optimization for road compilation. Road compilation has also been changed to work with the upcoming addition of ramps [pictured below], roundabouts and other new road additions. Compiling roads works on a thread and so is usually not noticable by the player, but in the test city I use I’ve managed to bring compilation time down from 32ms to 7ms. In a large user city I’ve tested, compilation time is down from roughly 25-30s to 2,5s. There are two areas of improvement specifically:
– The old system relied on information from when a road is plopped (whether a road has a connection to another road on another plane). This required some additional costly checks that have now been removed.
– The old system checked each tile against each other registered tile (not all road tiles are registered) until it had found all connections. Now tiles that are not viable are ruled out from the beginning. Tiles that are not viable are tiles that don’t share either of x, y or z position, tiles that are on the same plane but face another direction (ie upside down tiles) and tiles that have no exits.
There were also a bunch of checks that could be made more efficient, that have improved performance slightly.
Additional work is needed to improve this further, but compilation time is no longer a bottleneck for larger cities. Instead additional LODs to lower the quality of distant geometry seems to become more and more vital (and will be put higher up on the todo).
The old road compilation system also had a usage case that it could not solve, meaning traffic would end up in endless loops. The new system can handle this case.
– Fix for road connections (affecting pre placed roads) not registering in tutorial
– Improved performance when replacing regular roads with avenues
– Improved performance when demolishing multiple blocks at the same time
– Improved performance of road compilation
– There was a usage case that could not be solved by the road compiler before, this has now been fixed
– Fixed lots sometimes either showing they have water/electricty when they don’t, or the opposite. This was due to demands getting stuck, so if there was water missing when the lot was built, then it would always show as missing
– Tidied upp rotations when cars sweep over edges (they used to lose track a bit)
A proper devlog detailing the new features of 0.34 will be posted tomorrow.
/ Nick