Browsed by
Month: July 2020

New road variations as version 0.34 goes live!

New road variations as version 0.34 goes live!


Version 0.34 is brewing! Here’s the changelog:
– Indoor stadium added
– Halfsize (flat) blocks added
– Small wind generator added (primarily an early game clean energy building or for use in small neighborhoods).
– Tweaked performance of spacer block shader.
– Road onramps, curved road tiles and twisted roads added.
– Tidied up and made road compilation more robust.
– Improved performance of road compilation further.
– Deprecated old save files (pre early access release). These files will no longer load as it’s become too difficult to maintain compatibility.
– Buildings would assign road connections to straight roads although they were in reach of an already registered road connection (for example a turn or intersection). This meant more roads needed to be processed overall when compiling roads. This has now been fixed. This also affects loading times positively as buildings don’t assign and reassign their connection to roads repeatedly. It also has a moderate positive performance impact on traffic as fewer nodes are travelled by cars when travelling over straight roads.
This change makes it so that the city, once loaded, is connected in steps. As such it will at first display a lower population than when saved, and then in steps establish all connections.
– Additional low poly LOD added for each residential building added. This will not affect performance too much, since residences are generally simpler than commercial buildings, but should cut some tris in the city scene. I’ve also fixed a few instances of buildings having double shadow casters, or missing LODs (and as such overlapping building objects).
– Adjusted lighting to make the “underside” of cities a bit brighter
– Ordered challenges by difficulty.


A set of new road ramps have been added, among them an inner and outer slope and some twisted roads (pictured below).


As seen above, a small wind turbine has also been added. This one is not disliked by local citizens and can be used to power small scale neighborhoods.


There’s a great deal of under the hood work going into this version, specifically regarding roads and how buildings connect to roads to determine what resource network they belong too. I’ve not reached a point where compiling roads is pretty much as efficient as is possible given the way the road system works. When it comes to spawning roads when loading the city, there has also been some improvement in speed. There’s still some room for improvement, but essentially this is now as fast as it can be, given that Unity needs time to spawn road tiles.


Additional road ramps will be added later on as well as the ability to attach trams on ramps as well.

I’ve started implementing the low detail LOD:s. In this version all residential buildings have low poly versions triggered when the camera is far away.


Lastly, old save files (prior to EA-launch) have now been deprecated and will no longer load correctly. This is because it is no longer feasible given ungoing changes in underlying systems, to maintain these save files.

Some new road variations underway!

Some new road variations underway!


Updated the game the other day to fix a bunch of bugs. Having gotten that out of the way I’m now focusing on new features for the upcoming 0.34 version of the game. Central to this version is the addition of some new road variations:


I’ve updated the road system to make better use of the newly added node system that is used by traffic. Using nodes I can now add roads with curves etc. Granted, they still need to adhere to the grid and are not customizable, but will still add plenty of design options. Pictured above is a new ramp leading up to the new half sized flat block that will also be added in the upcoming version.


While working on the new road compilation system, I’ve managed to also optimize it greatly. Compiling roads is no longer a bottleneck, however, roads still take quite a bit of time to load. Overall performance will be a focus in 0.35, with work going into LODs and also performance when roads are being pieced together while loading.


Along with the onramp, I’ve also added some curved road pieces:


Later on, I will be adding in a sort of highway type road, with different types of on/offramps. There are also a set of possible and really strange road types, like the twisted road variant pictured below.

Smaller update before 0.34

Smaller update before 0.34


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

A bit of info on the upcoming version

A bit of info on the upcoming version


A bit of a later than usual devlog.
The game had a small update the other day to fix some bugs, among them a rare crash bug that occured when threads would deadlock when exiting to the menu. This is now resolved! The update also tidied up some of the building placement code and fixed some issues with the UI not updating resource costs etc.

The upcoming version is in the works, and I will detail some of the things I aim to have added into the game for 0.34.


Indoor stadiums! This one is finished already and a given addition in the upcoming update.


I’ve managed to get a system working for turning animated stuff on during the night and off again during the day. I will be using this system for billboards, which I aim to start adding into the game in the upcoming version.


Some new decorations will be added as well. This will autoadapt to surrounding decorations of the same type, similarly to the rounded blocks. I’m also adding a flat block that can be used transition between different heights and add even more variation into city design.


The second density for hotels will be added in, and I should also have a functioning fire disaster in as well as mechanics for putting fires out etc.


Since public transport will be put aside for a while, next up in terms of systems is to expand on ideology. So that will be getting a bit more work moving forward.

Trams, baseball fields and tennis courts

Trams, baseball fields and tennis courts


0.33 is almost ready. On the surface it’s a fairly small update, but it features the complete new traffic system as well as trams, which has taken quite a bit of work and time to implement.


Trams will get some polish over time, but are more or less finished which also means all public transport systems have now been implemented.


I’ve started adding in additional early game entertainment buildings – baseball fields and tennis courts.


There’s also been a lot of work done on fires – the first disaster added into the game, but these will not be triggered in this version as some features are still being tweaked.


Overall, the addition of monorails and trams, as well as changing the traffic system, has added a lot more life and movement into cities, as well as some much needed city detail. As development moves on, I’m hoping to add more and more props and buildings that are more on a detail level.