Atmocity week 39 update

Atmocity week 39 update

Although not a super efficient week, I’ve started picking up pace again. This week I’ve started expanding the UI to be able to fit new features in. More space for buttons at the top, slider for Resources (since the entire pane was full and I’ve still got resources to add).

The empty buttons at the top will be for the stock exchange/trade center, local economy/budget, conglomerate/citizen advisory board and the last empty one will likely be used for research.


Two new buildings have made it into the game this week. The Police station (here almost finished):

And also the Carbon Pressurization Plant, that will produce Diamonds that will be used for advanced circuits and jewelry.


I’ve been continuing optimization work. Since switching to smaller building blocks the same volume of blocks produces 8 shadow casters instead of one. This, along with the increasing number of props like trees and containers, was pushing the number of shadow casters a bit too much (1500+ in a view). To remedy this I made a system that creates a shadows only volume based on the blocks within segments of 5x5x5 sized spaces. Together with a system that merges all similar props into one object per building has meant the number of shadow casters in now generally below 500-600.

The grouping of blocks can be seen here:

There’s been some other minor progress too, fixing bugs, mini-optimization and overall polish and work on LODs, but that’s pretty much it.


/ Dispersing Minds

Current Atmocity status

Current Atmocity status

It’s been a couple of slow weeks again. Been bogged down with regular job and some family matters. But now I’m back at developing the game properly again! Recently I’ve been working mostly on graphical touch ups and optimization.

Main progress recently is that I’ve finally managed to get trees that look good and perform well. I’m now using an unlit shader with an illumination layer. It also has vertex distortion so that they sway, looking like a bit of a wind effect without having to use colliders etc. I also added so that the cutout is affected by distance, allowing me to “fade” trees before they are culled by the camera.

To accomodate for the increasing amount of props in the cities (trees, containers etc), I’ve added a mesh merging system so that objects of the same type for each building are merged on build.

Since changing to smaller building blocks, buildings can no longer grow from within the blocks. Buildings now being bigger than the blocks. Instead, I’ve added a cutoff based on height. Buildings will now appear from the bottom and up. Hopefully I can make this look even nicer with some working machinery or something. :)


I’ve also started texturing roads. There will be two types of main road depending on whether they’re connected to residential and commercial zones or not. Currently the latter version is the finished one and as such it’s shown even alongside industrial zones in the images below. :)

Trees and roads:


Night time roads:


I did manage to also get some systems work done. Mostly related to the global economy system, which is now a bit less unpredictable. I also fixed a handful of bugs, among them one where nominal costs would increase over time (due to inflation), but incomes would remain the same, meaning that over time you would start losing imense amounts of cash

Moving forward towards the next alpha release, the third, I will focus on adding a handful of new buildings and improving the UI further. I will also start incorporating new menus, such as the global economy menu.

/ Dispersing Minds


Atmocity alpha version 0.2 is live

Atmocity alpha version 0.2 is live


This week’s focus has primarily been to reach a new stable version of the game. There’s been a lot of under the hood work done – stuff that initially pretty much broke the game and required quite a lot of effort to get working.

First of all, the game has moved away from the big block sizes into a smaller block size. Along with this, there will be two sizes of buildings. Currently, only roads and canals are the smaller size, but in the future there will be a set of smaller residential and commercial zones along with small parks and statues etc.

Another big change, hinted above, is the introduction of roads. The current implementation is rather simple – each building requires a road. However, there is currently no control as to whether this road leads anywhere. This system is still in its infancy and was therefore cut from the new alpha build.

The addition of a road system means the game moves away from a global resource system and into a system where resources are shared within an area connected by roads. This “Island” system as I call it is more or less finished, but as I mention above, the road does not connect different islands and as such, the game still handles resources as if they were global.

The finished road system should make it into the next alpha version.

This version also features three sets of residential zones and three sets of commercial zones along with the addition of the carbon storage facility and carbon power plant. This means that there is now also a carbon resource.

I’ve also redone the density function meaning that sparse areas of residential zones will not spawn higher densities. This is to avoid areas completely maxing out in areas that do not have a lot of densely packed zones. This also gives cities a more “realistic” skyline.

There are now also tool tips to help players understand what is what. Obviously, the game is still very light on information to the player, but this will be added in as more things get finished.

There’s also been quite a few bug fixes in the game, but I’ve mainly focused on optimization. I’ve managed to cut quite a few textures by adding together textures and mapping UVs differently. I’ve ensured things batch together properly so that there are as few new instances of things as possible meaning I could go from roughly 1500-2000 drawcalls in a medium sized city, to about 500-600.

A few things had to be cut from the alpha. Some policy stuff was meant to make it into this version, but had to be cut due to a few bugs needing to be ironed out. I’ve also pushed the addition of music for now.

Those willing to stream the game, please contact me via email!

/ Dispersing Minds

Version Fire Spider now live

Version Fire Spider now live

I’ve now set the builds for version Fire Spider live.

The main focus for this update has been to lower loading times, as that had become problematic over time.
The main source of the issue was leaking materials, which has now been fixed. This should lower loading times substantially. There will still be some loading times when the game first loads assets, so in particular when loading a level the first time.

This is the full list of fixes:
– Lowered the amount of objects in each object pool.
– Removed leaked materials in scenes and replaced these with global materials. This was a huge one, because the leak primarly affected decals, causing materials to be duplicated.
– Applied material property blocks to selectable and fading objects to prevent material leaks when objects fade in and out or colortransition.
– Added a fast forward button.
– Added enemy path visualisation at the beginning of the start of campaign levels.
– Fixed a bug where the screen would flash red at the beginning of each level as if taking damage.
– Optimized how sounds load.
– Optimized texture sizes.
– Optimized base localisation at start.
– Cleaned up redundant objects left in some scenes.
– Increased enemy speeds slightly.
– Increased the base turret range slightly.
– Compressed the game as LZ4HC, which will also helps loading times and lowers the size of the build.

That’s all for this time!

/ Dispersing Minds

Atmocity progress report July 2018

Atmocity progress report July 2018


Seeing as I’ve got time of from work, there has been a lot of progress on Atmocity lately. Most of it has been directed towards the upcoming demo and early QA test build, but there’s been a lot of overall progress.

I’ve finally gotten around to start working on sounds properly. There is now a selection of ambient sounds coming from buildings when you hover the camera nearby. There will also be an addition of sounds played when buildings are clicked, but this will be added later on. I’ve yet to get work started on music. I’ve only made a few concepts, but nothing that has really hit me as a perfect fit for the game. The work is ongoing though, and I expect to find the right fit soon.

The demo features about half of all the launch day buildings. Two residential and commercial tiers, the low industrial tier, all parks, all plazas, most production buildings etc. This means that I’ve been able to put a lot of work into the underlying building code and I now consider it pretty much done. It’s stable and efficient and as far as I’ve been able to tell, bug free. Adding additional buildings will therefore, mostly be a matter of modelling, texturing and rigging them in Unity. That means that building production should pick up pace significantly and I hope to finish this process completely by the end of September.

The demo also features a barebones version of the resource trading interface. You will be able to buy and sell resources, and prices will adapt to the under/over supply of resources. What’s missing now is a “price pull” feature that means a lower price on one food resource will also affect the price on the other three. Same goes for building materials. This feature will be implemented later on, as it will also depend a bit on the global economy and how prices of goods are determines in general.

As I’ve worked and tested the game more, one thing that has become apparent is the need to quickly review your city to find areas that are not performing well. To make this possible for players, I’ve implemented an efficiency visualization tool. This fetches the efficiency of each building and color codes buildings from red to green. This way poorly functioning neighborhoods will be seen quite easily and the player can start working towards fixing issues.

Probably greatest progress visually (aside from there now being more buildings) has been on the user interface side of things. I’ve managed to more or less finalize UI design. A lot of information to the player will be conveyed via icons rather than text. The hope is that icons will be self explanatory enough and that the player will be able to link for example the icon of a missing consumable to the same icon in the building menu to quickly find their way around the interface. There is now also a main menu and a loading screen. Currently it is rather barebones, but it allows for further additions as they are needed.

There should be a pretty comprehensive update for the month of august as well! Stay tuned.

/ Dispersing Minds

Visualization tool in action
Night time
Atmocity progress report

Atmocity progress report


First off, the development of Atmocity is progressing quite well. I’m done with slightly more than 1/3 of all buildings. I’ve focused a bit extra on visual consistence within the different tiers of residential and commercial zones. Although I will return to working on all buildings further down the line, I think they are looking quite good already:

Aside from tiered buildings, I’ve also finished a hospital building. The texture of which I will change slightly in the upcoming week. Aside from that it too is finished for now:


This week, however, I have mostly focused on code. This week and last I’ve changed the entire building placement sequence to better fit the upcoming changes in the UI. Before, placing buildings required first selecting a location, then selecting the building to place. With the ever growing list of buildings, the UI has become too cramped to fit all the different types of buildings. So in order to fit all buildings into the UI, I will need to have a beefier UI with scrolling. So I’ve changed the sequence to selecting building first, then placing it. To display what side of a cube is currently selected, a hologram of the selected building is displayed. With these changed I’ve also made it possible to speed place buildings. This feature is especially intended for placement of zones and will make placement less tedious.

The majority of code work has been spent on full implementation of the resource management system. Prior to this weeks work, buildings would check their surroundings for buildings they like and dislike. If there’s a “bad” building nearby, a building will incur a penalty. For example, residents don’t like living next to factories, so a residential zone placed next to an industrial zone will not house as many residents. This would also affect how much tax a building generates. The existence of power or water, for example, was not of any concern though.

Now, buildings are not only producers of tax, or citizens, but also consumers. This means that the resource management system comes full circle. Not only do buildings need to be placed intelligently in your city as to not incur penalties, they also need to be given the necessary resources to produce. This means that residential zones that have no power or water, or lack food resources, will not grow and will pay less tax. Farms that have no water cannot produce food. Simply put, without input, no output.

This also means that the development of the games is moving into a more obscure phase. Not as much will be shown, because I will mostly be concerned with improving the game and gameplay, along with interfaces, rather than adding visible content. An interesting phase nonetheless. 🙂

Brink of Extinction version Blitz Ant launched

Brink of Extinction version Blitz Ant launched


First off, the webpage hasn’t been updated in quite a while, but that will improve from now on. About a week ago, I updated Brink of Extinction to the new version, called Blitz Ant. This version of the game adds several new features and fixes a bunch of issues, namely:

– Optimization
Shadow system has been optimized and settings for it tweaked.
FXAA removed in favor of TSAA. This means that the aliasing has been minimized even on low resolution scaling. TSAA is more performance heavy than FXAA, but the added performance cost is offset by allowing lower resolution scales to get the same or better graphical fidelity.
Loading times between levels lowered. Music is compressed into memory in the background instead of on load and SFX uses faster compression.
Improved pooling system and waypoint path generation to allow for pool expansion and drawing from a single pool. This dramatically improves the loading times, in particular it lowers the load of creating many objects on start (noticeable by a lot of stuttering when level is first loaded in).
Optimized UI code.
Some adjustments in large scenes to lower the number of objects and their FPS impact.

– Features and balancing
– General changes
Difficulty ramp on campaign changed. Earlier levels are now a bit easier, later levels slightly trickier.
Powerup costs will increase per use.
Turrets now have a special attack that unlocks when you match a specific stat. The special ability requires a 60/105s (campaign/endless) charge time.
Turret upgrade cost offset. Each upgrade costs more than the previous one for the same stat. In the campaign this generally means the special abilities cannot be unlocked on the early levels and pushes players to build in more locations instead of maxing turrets early on.
Turret recoupable credits from sales the same as before, meaning less of investment on upgrades can now be recouped from sales.
All enemy and turret stats rebalanced. To allow for more finetuning, DMG and HP has been doubled and then tuned further. This means the repair speed has been changed to accommodate higher HP values for turrets. It also means fully repairing turrets is now more expensive than before.
There’s now a 5 % chance turrets will score a lucky chance when enemies fire the killing shot. This sets the turret hp to 1 and stuns enemies for a second, allowing turrets to survive even the most devastating hits. Using the Bull turret’s gentle giant special ability sets the chance to 50 % for a short time.

– Endless mode
Continuous mode leveling system overhauled. Instead of all stats leveling up each 5-8 spawn cycles, either of DMG, HP or yield is randomly picked to level up each 1-2 spawn cycles. This should make each game more different and changes the difficulty ramp a bit – If you are lucky, yields will level up faster than damage and hit point, for instance.
Insect generals added to the continuous mode. Every fifth cycle, the last enemy spawned from one point will be a general – the general is three levels ahead of the wave level for DMG and HP and 5 levels for yield stats. Works as an extra challenge and a way to boost credits. Marked with a red vortex particle underneath.
Wave pause time changed from linear random to normal distribution. Making very long and very short pauses rarer.
Pause time between enemy spawns in wave changed from linear random between -0.1 and 0.2 to normal distribution between -0.1 and 0.4.
Spawn amount per wave in endless mode changed from random between starting value and starting value to cycle, to normally distributed with starting value as mean. This mean shifts up by value one per 5 wave cycles meaning each 5 cycles will increase the number of enemies spawned. Getting very few or very many spawned enemies should thus be rarer in the beginning and more common later in a game.
Yields changed from linear to log normal curve, meaning faster in the beginning and slower later on in the endless mode.

– Graphical changes
Some turrets have had some animations and more particles added.
Explosion effects overhauled.

– Other
The game has been translated into Russian, Swedish, Romanian and French.
Button press sound moved, to avoid “false” click sounds.
First wave starts briefly after placement of first turret to allow planning.
Level 14 deathbox fix. Enemies would sometimes miss the deathbox causing the level to not finish.
Bug where raycasting would bug out when not using SSAA fixed.
Additional hexes on level 5 and 9 and the endless mode highway level.

Unfortunatly There were a things that I had intended for this version, but simply did not have time to implement or finish implementing.

– Remaining additions for the future
I had intended to have these additions added this update, but due to a lack of time they’ve been cut. Should hopefully see implementation fairly soon.
* Mac version added. Was intended for this update, but due to continuing issues with the Mac build it has been pushed to the future.
* In game scoreboards when you finish a continuous level. Will be implemented in the next update.
* Hexagon level. Was pushed to a later date due to lack of time to balance it properly and give it the required time to test it.
* German, Spanish and Chinese translations.