Browsed by
Author: Dispersing Minds

Wood burner, policy changes, calculation changes and water shader fix

Wood burner, policy changes, calculation changes and water shader fix


A brief devlog this week!

After rebalancing building material requirements for buildings, and after reviewing overall demands for resources, I felt that the wood resource is fairly underused compared to how easy it is to obtain.
So I added a wood burner power plant! It’s less pollutant than the carbon power plant, and carbon neutral if the wood is grown in the city. It’s a bit more expensive in both plop cost and upkeep cost, but is a fairly good early game power plant.


I’ve started working towards implementing the ideology system, and a first step towards this is to clarify the function of all policies. Descriptions have been written for all of them – initially only the english version will be added, but over time I will get translations added in for the currently supported languages.


While working on the policy descriptions, I’ve also another round of tweaks and ensured that they function as planned. Quite a few have been made either cheaper, or more effective, and some were missing certain effects that have now been added in.


In preparation for a fully functional aeronautics station, I’ve started restructuring the calculation thread. This is to allow networks to be partially calculated (as opposed to sequentially as is the case currently) so that labour can be shared between them. This also involves splitting what used to be pretty much one solid chunk of code into more managable pieces and cleaning up redundant, repeated and unused code.


On the visual side of things, the blimps now spawn properly and aeronautics stations are registered and given a port number so that they can be connected in a system. Getting blimps to find and go to different stations is quite a bit of work, but should be fairly straight forward.
I’ve also gotten some visual annoyances out of the way, among them how there was a seam between water block sections. This issue popped up out of nowhere quite a few versions ago, but I’ve not been able to find a solution until now. But now it’s back to normal again. 

0.39 is live!

0.39 is live!


A new version is going live in a bit! It doesn’t feature quite all of what I wanted to have done, but there’s been a lot of stuff done to prepare for these additions, so they should be in fairly soon.

What IS in then?

EA 0.39
– Mayors house added – can be upgraded!
– Added another 2×2 park and plaza.
– Palm tree avenue added.
– University building changed to community college building. New University building added.
– Aeronautics station added. Currently they only add the public transport area effect. Connection to other regions of the city and blimp functionality will come in the next version.
– Heatwave, blizzard, crimewave and epidemic disasters added. Additional heatwave and blizzard effects to be added later on.
– Heat now affects risk of fire.
– Added a season toggle into the options menu.
– Vacuumtubes now have color settings!

– Public transport area effects of tram (lowered) and monorail (increased) stations tweaked.
– Building resource plop costs increased (generally with the exception of nano structs).
– Increased building credit plop cost for a small selection of buildings.
– Added LOD:s and low quality shadow casters for hotel buildings. More hotel props also added.
– Added LOD:s and low quality shadow casters for less frequently occuring buildings like the coalpress and batteries.
– Texture streaming tweaked.

– Vactrackstation was missing public transport area effect. Fixed now!
– Fixed flower farm, dye and textile factories not enabling in build menu.
– Fixed bug that was stalling research.
– Fixed citizen rep goto home/workplace not working (remnant issue of recent SSAA update).
– Fixed avenues not reverting to regular road when tram was built.
– Fixed fires burning out when saving (then loading) city during a fire.
– Fixed disappearing second density 2×2 first tier industry buildings.
– Fixed bug where setting monorail/tram color would set the wrong material.


Small additions like a palm tree avenue and palm tree prop that is added around hotel buildings have been added, along with the football goal prop to the stadium building.


The aeronautics station is in! Currently it only adds the public transport effect to its surroundings. Getting it to connect to other regions of the city with an aeronautics station so that labour can be shared all over will require work on the core of how things are calculated in game, so I have held off on doing this to not rush it and risk breaking stuff.


Not seen in the image, but added afterwards is a new shader that will allow players to set custom colors to vehicles such as the blimp, vactrain or trams. This aside from being able to set a custom color on tram, monorail and vactrack networks.


The old university building has been “downgraded” to a community college and a new university has been added. Currently, the community college provides as much education as it did previously, but with the addition of a new university as well as new education boosting buildings once ideologies are added there will be a small adjustment made to these values in upcoming versions.


A bunch of bugs have been fixed too. Most notably a bug that caused research to stall.

Up and coming in 0.39

Up and coming in 0.39


Recently I’ve been getting to work on the aeronautics station that will spawn blimps and can be used to connect “islands” of the city with resources and labour. The aeronautics station will (understandably) not connect electricity and water, but allow labour to travel across the city and resources to be moved around the city easily.


I’ve added additional disasters that can be triggered manually or occur randomly: Heatwave, blizzard, crime wave and epidemics. There’s some more work needed to visually convey heatwave or blizzard, but currently it uses the vegetation shader to display dry grass or snow.


The next version will feature another 2×2 park and plaza building as well:


There’s a bunch of bug fixes going into the next version as well; among them a fix for research stalling, a fix for 2×2 second density first tier industry being incorrectly mapped when loading cities (and as a result, the building is not loaded) as well as a fix to the goto home/work feature in the citizen representative panel.


In version 0.39 the current university building will be “downgraded” to a community college and a new university building will be added in. More billboards are being worked in, as well as hotel LOD:s and (hopefully) another density for hotels.

0.38 is live!

0.38 is live!


Was initially going to have a longer dev stretch for the next version, but found a bug I wanted to fix so I’ve uploaded version 0.38 early! It’s a fairly small update overall though.

– 2×2 second density industry added.
– Rebalanced 2×2 first density industry.
– Proper cereal and legume farm icons added.
– More street noises added.
– Icon for upgradable buildings added to cost info.
– Building collapse sound added when buildings burn down.
– Sport props added to tennis court and baseball field.
– Proper fix for block placement offset bug.

– Flowers added to flower farm.
– Fixed issue where nested vacstations would not connect networks properly when nested.
– Fixed being able to build more than one city hall etc.
– Fixed fire sound not despawning.
– Fixed notices going haywire when changing resolution when a city is loaded.
– Fixed vegetation shader not lighting back of (cereal, legume, flower) particles properly.
– Fixed being able to click and drag to place several city halls (for example) and other

The bug I wanted to fix was where nested vactrainstations sometimes wouldn’t figure out what was connected and what wasn’t. This should now be functional. The scenario below would not work properly:


Not in the update, but something I’ve worked on this week is the mayors house – an upgradable building that adds a bit of culture, but mainly boosts surrounding property value.


I’ve managed to fix the issue with the vegetation shader where the “backside” of the billboard wouldn’t be properly lit. Now it’s consistently lit regardless which way the billboards are facing.


Using the same technique as above, I’ve also added in flowers to the flower farm:


I’ve also added in more street noises, fixed the block placement issue (properly this time) and fixed notices losing their anchor position when resolution is changed in game, among other things.

Big update – version 0.37 goes live tomorrow!

Big update – version 0.37 goes live tomorrow!


Work on version 0.37 has really picked up this week and it’s now almost ready. It should be live tomorrow as planned!

It’s fairly balanced between new features, optimization and bug fixes. One of the more apparent fixes it that cereal and legume can now be produced by two different types of buildings. The previously available greenhouses are still available but are now more expensive, while also producing more. They are primarily intended for bigger cities. Early on, there are now more traditional looking farms that are cheap, but produce less.


I’ve also now added in an overpass that can be built on. These function similarly to bridges, requiring a connection on two sides. Once built, they function just like normal concrete blocks.


In this version, fires are enabled. If a building has very little coverage from fire departments, or crime is exceptionally high, it will run the risk of catching fire. Buildings on fire will be put out over time, but fire might also spread to neighboring buildings. Buildings that are owned by the city need to be repaired manually. Zones on the other hand will be repaired over time. Buildings can also burn down completely, if they are owned by a conglomerate, this will cause unhappiness. More disasters will be added in version 0.38 and onward, starting with minor stuff like heatwaves, blizzards, crime waves and ending with meteor strikes and nuclear meltdowns.

There’s now also a new mode – Atlantis – where the aforementioned disasters are disabled. In this mode, the economy is always booming and most of all – you have the perfect amount of cash at hand at all times!


Two modes of bulldozing are now available. The original one where blocks, buildings or roads are selected for destruction and a mode where blocks are destroyed, but whatever is built on these blocks is automatically destroyed as well. This will speed up restructing areas.


Most of the work on optimizing graphics is done for now. Pretty much every building now has a low poly LOD version and a very low poly shadow caster. This has allowed for a better draw distance that can be set from the options menu.
Trees now look a bit nicer too, after some shader adjustments and tram tracks are now textured instead of using a mesh, which is more effective but also reduces aliasing. Resolution scaling options were off causing some performance trouble, this has now been fixed and it should now also work better with TAA to prevent aliasing.

I’ve also fixed a bunch of bugs, among them roads connecting through bridges when placed on the side of a block that also has a bridge and block placement being offset when resolution scaling is not set to 100%.


Overall, this is a fairly large update with a bunch of new features and fixes. As mentioned, it will be live tomorrow!
As for version 0.38 – this is planned for september 21st. This is fairly far off, but it will also be a fairly large update with plenty new features that require time to brew. After that, I will go back to the two week update schedule I’ve had before.

Upgradable buildings, increased draw distance and more

Upgradable buildings, increased draw distance and more


Skipped the devlog last week as I’ve mostly been focusing on boring optimization recently. But now I’m finally getting back into adding new features and improvements.

First of all, billboards are being added in finally. Currently, I’ve only added a handful of static billboards, but will be adding more of these as well as animated billboards.


I’ve changed tram tracks from meshes to a texture overlay which removes a bunch of unnecessary tris, but also makes them look better at a distance (less aliasing). I’ve also managed to get monorail emission to draw at further distances.


A result of the graphical optimizations is that I’ve now been able to increase draw distance. To keep the game running well on lower spec rigs, I’ve added draw distance into the options.


I’ve started implementing upgradable buildings – nuclear power plants, police and fire stations for starters.


I’ve also added a bulldozer mode that destroys blocks as well as buildings placed on the destroyed block. This makes destroying stuff faster. There’s more stuff underway, hoping to also get fires added in properly for the next update – which will go live August 31st.

Next version adds lots of optimizations – and seasons!

Next version adds lots of optimizations – and seasons!


The next version of the game is almost done and should be live on tuesday. This one is primarily focused on performance and preparing for further optimizations on the graphical side of things (code is fairly optimized already).

The only new feature in the upcoming version is the addition of seasons. This called for recoding the ground texture used in the game, which also meant that seams between buildings could now be replaced. Grass is now mapped in by world coordinates, so building rotation won’t affect grass like before.


Seasons currently don’t affect trees, that shader work is still ongoing. But here’s autumn:


I’ve also continued work on LOD:s, but think I’ve gotten to a point where I might need to also rethink shadow casters and baking more things into grouped objects to improve performance further. Verts/tris are also a bit of an issue in some larger scenes.

(New ground shader also makes it possible to set specific colors in the scenarios, like dry grass or snow)


I’ve also decided to cut normal maps from building footprints as a lot of them are mostly grass or concrete and the unique normal map does not add much. Instead I use a generic noisy normal map to add a bit of roughness.

I noticed unity also now removed the startup window without a replacement, so I ended up having to incorporate some of the graphical settings into the options menu, primarily texture and shadow quality, as these were set in the window before.

Modern museums, more roads and a bunch of fixes, 0.35 is live!

Modern museums, more roads and a bunch of fixes, 0.35 is live!


It’s been a year since the game went into early access! It’s been a long and challening but fun journey thus far. Although many things remain, there have been many additions to the game since. Water blocks, odd roads, monorails, trams, more than 200 new buildings and a lot more.

The game is now at version 0.35 which features:

– Modern museum building added.
– S ramp added for roads.
– Population condition to grow new densities of zones increased.
– Day/night can now be set using a slider.
– New fountain decoration added.
– Added alternate monorail t-piece to allow for a different rotation. This is more of a temporary fix, due to some restrictions on rotations for vactracks and monorails. A proper solution will be added later on.
– Snow and dust added to retro mode levels snow earth and ruined earth.
– Fireworks added to stadium (trigger randomly) and city hall (trigger every fourth night).
– Building manager script is removed when demolishing buildings so that buildings, when growing or being demolished, are not accidentally saved (causes double spawns on the same location when loading).
– Flat blocks are now merged into a regular 1/8 block when stacked. Existing stacked blocks are not affected by this.
– Happiness formula tweaked.

– Happiness calculation bug fixed. This meant health and education provided way too much happiness.
– Fixed a few special cases where roads would appear as if they connect to a ramp via the side.
– Fixed roads incorrectly connecting from a regular block to a road on a flat block.
– Fixed roads not spawning streetlights (this was due to restricting roads sometimes respawning when new buildings were placed).
– Fixed not being able to build zones near straight monorails, even though placing the monorail after placing the zone would work. (inconsistent collision detection)
– Fixed destruction hologram for lots.
– Fixed materials for some 1×1 and 2×2 residences where normal map was not correctly offset.
– Fixed shadows on water shader for waterprops on buildings.

There’s now a modern museum that will help boost culture in cities:


Culture has been a bit difficult to increase without plopping operas all over the place – the modern museum should hopefully help increase variation. Culture will be easier to manage once ideological buildings are added (many of which will increase culture).


I’ve also added some minor details like snow and dust trails in the retro mode levels and some fireworks that trigger in the outdoor stadium and city hall.


There was a bug related to the new flat blocks and roads, where roads would sometimes thing there was a neighboring tile although that tile was on a different height on a flat block. This has now been fixed. Likewise, sometimes roads would try to connect to the onramp or the twisted road. This too has been fixed.


I’ve also added a new type of ramp, an s-ramp to make smooth transitions between different heights.


Overall, this is a rather small update coming directly after 0.34 last weekend. I’m hoping to keep up this pace with smaller, but more frequent updates, for a while to finish up some of the smaller items on the roadmap such as buildings and details. I will try to work on systems stuff in the background, such as disasters and the ideology system.

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.