Atmocity progress update #28

Atmocity progress update #28

The latest version will go up in a few hours and features quite a few new things:
V 0.48 Change log
– Nano structures plant implemented. Creates nano structures required for the top density buildings.
– Advanced circuitry plant implemented. Creates advanced circuits used for complex machinery.
– Complex machinery plant implemented. Creates complex machinery used in hospitals, the nuclear waste storage facility among other buildings.
This means all resources meant for the Early Access release version have been implemented. More resources might come post EA-release.
– University building implemented. Adds a city wide education bonus.
– Theatre building implemented.
– Movement option to shift camera up or down has been added – CTRL + W/UpArrow to shift upwards, CTRL + S/DownArrow to shift downwards.
– EA release welfare programs implemented. More tweaks to come in the following versions.
– EA release discrete policy options are all implemented and functional. These will be tweaked in upcoming versions.
– Music implemented. Currently it only shuffles the tracks. The system to trigger music based on events is in the works.
– Spanish localization updated.
– Budget calculation errors have been fixed.
Aside from the above, a handful of minor issues have been fixed.


I’m closing in on finishing all the buildings meant for the EA-release of the game. The remaining ones that will be finished in the upcoming few weeks are the atmoport and the vactrainstation.
The University is used to increase education levels across the city. They don’t need to be built next to specific buildings or anything.
The Theatre building is required to keep upper class citizens happy. In future versions, theatres will produce culture, which will be used to increase happiness across the city.
The nano structures plant produces nano structures that in future versions will be required to get the top density residential and commercial buildings.
Complex machinery is used in nuclear waste storage facilities, hospitals and in future versions is required for high tech industry.
Finishing off the production buildings set is the advanced circuitry plant, which produces components for use in the complex machinery production plant.
There’s been a lot of work put into value calculations, specifically into the discrete policy options added into the game recently. All of the policies now affect values in the game, from electricity consumption to health and education values.
This will receive further tweaks in the upcoming version, as the policies need to be balanced in cost and effect.
Music has also been added into the game finally. The music has been composed by Joshua Szweda and in my opinion fits the mood and theme of the game perfectly!
Currently the music is just randomized, but there will be a mode where tracks are picked based on context. Like if there’s an economic downturn etc. Currently, the system works, but the tracks are not linked to the events yet.
In the upcoming few weeks, aside from working on tweaks and balancing, I’ll be working on the vactrain system and implementing achievements into the game.
Atmocity devlog #27

Atmocity devlog #27

Short entry this week, as I’ve mostly done fixes for minor issues (not really news worthy).
First bit of news is that I’ve postponed the release of the game by one month (from april to may). This is due to an overall heavy workload, but also because I want things to be really well functioning and polished when the game releases into Early Access. This grants me some extra time to add a good deal of fine tuning and polish.
I’m in the process of finishing up the last few buildings. The nuclear power plant has been finished:
The nuclear power plant outputs a lot of electricity at a fairly decent cost, but it also outputs spent fuel that needs to either be stored, or neutralized. The storage facility (second from the right) and the neutralizer (right) can be seen here:
Most of the remaining buildings will most likely be done next week and will mean I finish up resource production and education. The vactrain station includes a lot of new code, so that will be done after next week.
Overall, things are coming together, but as the delay suggest, a bit slower than I would have wanted. But I’d rather release a stable game than an unstable one. 🙂
Atmocity devlog – Entry 26

Atmocity devlog – Entry 26

The 0.47 version will be up shortly!
Changelog V0.47
New features:
– Food processing plant added.
– Cisterns and water treatment plants added. This allows storage of water and cleaning ”used” water.
– Recycling center and trash incinerator buildings added.
– Trash “resource” added.
– Board of citizens added. When the city has more than 10k citizens, citizens will form a group that will make requests and demands similar to those of conglomerates (lower taxes, better services etc.). This will be expanded upon in future updates.
– Nuclear waste storage facility added.
Changed UI/UX:
– Issue where hologram shader would be nearly fully transparent when seen from certain angles fixed.
Glitches/Bugs/Poor optimizations fixed:
Threads moved to background threads to avoid garbage production upon starting the calculation and connectivity threads.
Bug where vicinity check fails when building “bads” on the other side of blocks fixed. (Thanks to RedEventStudios for finding this issue!)
Bug where roads built in the corner between two blocks would not connect to the rest of the road system fixed. (Thanks to TheGeekCupboard for this obscure discovery!)
Bug where bugs built in the corner between two blocks would cause blocks to not be demolishable fixed.
Worldsize variable added to templates.
Other changes:
Crime calculations changed.
French translation implemented. The translation is somewhat incomplete, so some text elements are missing.
Spanish translation updated.
Known issues:
Roads cannot be built facing other roads when the distance is only one grid unity wide. (fix scheduled for v. 0.48).
– Spanish translation missing a few text elements (scheduled for v. 0.48).
– Decoration tile causes a null reference error (fix scheduled for v. 0.48).
Pushed to later update (an outtake):
Quicksaves (scheduled for v. 0.48).
Additional concrete foundations, fancier concrete foundations.
Fix for sun (currently breaks on build…) (scheduled for v. 0.48).
Russian localization implemented (scheduled for v. 0.48).
German localization (scheduled for v. 0.48).
– Nuclear power plant (scheduled for v. 0.48 along with the remaining buildings).
This week, I’ve mostly focused on various fixes, both bug fixes and performance fixes. A few issues remain to be fixed for the next version, but overall, the game should be more stable now. Aside from fixes, I’ve also added in a few more systems. These will be developed further for the 0.48 version.
Cisterns are now fixed, so that water can be stored and consumed later on. Having fixed storage for water, I have now been able to add the nuclear waste storage facility. However, there’s no use building it yet since the nuclear power plant hasn’t been added yet. But it’s a nice looking building. 🙂
I’ve started working on the translations more. I received the French translation and have started implementing it. Some things are still missing, but it’s getting there. The spanish localization still needs to be updated and the german localization is still behind schedule.
I’ve started finising up the policies available at the early access release. Some funding options are still missing, and some of the policy options are not fully implemented and tweaked yet. But most of these now affect things like labour availability or health.
I’m still working on fixing some value stability issues. At times, the economic calculations will cause things to spiral out of control (more so than I would like 😛 ). These issues should be fixed in the next update.
Aside from what has already been mentioned, the next update should feature the remaining seven buildings. Achievements will be added in the upcoming week. One of the big remaining features is the so called “retro” mode. Which is retro in the sense that cities are built on the ground. It’s still uncertain whether this will be finished for the next update, but I should have some more information about it in the upcoming weeks. The 0.48 version is scheduled to drop the 31 of march!
Atmocity devlog 25

Atmocity devlog 25

This week I’ve started adding in the waste management system. Depending on the policy implemented in the city, goods and foods consumption generates trash which will need to be handled. This can be done either by recycling centers, or by using incinerators that produce electricity, but also a bit of pollution.
Recycling center:
I’ve continued working on the conglomerate display and local economy panel. There will be quite a few additions to this moving forward, but mostly behind the scenes stuff like calculating construction speeds for zones and how conglomerates react to different types of taxes. There’s already quite a lot done on this system, but since there has been and will be quite a few more additions to policy it needs to be updated a bit.
For graph nerdiness I’ve added a graph displaying historic values of conglomerates. 🙂
I’ve also started working on the city stats panel. Currently it’s quite underdeveloped, but it should be finished up next week. This is basically just a breakdown of different city stats that the player might find interesting.
As a performance improvement I’ve also added cars being recycled when they move out of view and spawning new ones in view. This is basically a way to keep the number of vehicles down, while still making the roads look fairly busy. There will be many tweaks to this over time, but it’s good to have it working fairly well.
Next week I’ll be starting the music system, along with an adviser system to help players. Lastly, The board of citizens  system will be started. This will be similar to the how conglomerates make demands for lower taxes etc. The board of citizens will ask for lower taxes, improved healthcare and welfare etc.
Atmocity dev log 24

Atmocity dev log 24

Following last weeks update, I’ve had to spend time fixing some unfortunate glitches that followed. Not unexpected since the update was rather substantive, but it did mess with my planning a bit. Oh well!

I have started finishing up the remaining buildings. One of the buildings finished this week was the Fusion power plant seen here:

The fusion power plant needs to be researched before you can build it. While expensive, it does produce heaps of power in a clean way.

I’ve also started reworking water production in the game. Currently you build absorbents that absorb moisture from the atmosphere to gather water for your city. This system will now be part of a future climate system. Pollution and moisture will now play a role in the city living conditions. If pollution rises too much (like a lot) you’ll achieve a green house effect and people will dislike living there. There will also be a limit to how much water you can absorb from the atmosphere in a given time unit. So in order to produce more water, you will be able to build water treatment plants. Also, you will be able to build cisterns to store water, unlike now, when water is never stored. A water district can be seen here:

The food production Buildings are all finished. The last one that has now been added is the Food processing plant, which takes cereal, fruit and legume and outputs processed food. Processed foods are required to keep your upper class citizens happy.

I’ve found a number of bugs in vicinity testing when placing buildings. For example, residences would sometimes register industry, although these were placed on the other side of a block. This should be functional now.

Lastly, I’ve started working on improving performance when building large scale cities, since I won’t be breaking any saves from now on. What is on the list for next week is culling cars when they are outside of view



/ Dispersing Minds

Progress update 23

Progress update 23

This week I’m updating the Steam beta builds to version 0.46 which adds/changes/fixes the following:

Changelog V0.46

This versions breaks old save files, the old files can still be accessed in game, but will load a corrupt city. Old save files can be removed.

New features:
– Connectivity between sections of the city now implemented. More work and tweaking will follow.
– Additional taxes. The code behind the system has been revamped as well, to allow for quicker implementation. This breaks old saves!
– Commercial tier fully implemented. Like the residential tier, demands are not final, as some buildings are still missing.
– Mid tier industry added. Demands are not finalized.
– High tech tier of idustry added. Demands are not finalized.
– Road size, road system and traffic system revamped. This breaks old saves!
– New traffic system. The old system used raycasting and was not scalable. This was mainly a for-show system. The new system uses threading and allows traffic to be scaled up. It also improves the connectivity system in that they can share information. Movement is a bit more floaty, which will adjusted in iterations.
– Decoration tiles – a first decoration tile has been added.

Changed UI/UX:
– Fixed text overflow/truncation in Spanish localization.
– Fixed a couple of incorrect references in the localization file.
– Added load function from main menu.
– Window backgrounds changed to make visibility better.
– Budget panel implemented. Also, values for cost and revenue for each policy slider added.
– Policy window layout changed. More polish will be added to this over the upcoming few updates.
– Fixed bug in building info display for commercial buildings.
– Escape opens main menu in game.
– Build hologram when placing roads now incorrectly becomes red when location has a building.
– Fixed display for road (and blocks) is not red
– ? button in main menu fixed.
– Change res when in windowed fixed.
– Double resolution sets in options drop down fixed.

Glitches/Bugs/Poor optimizations fixed:
– Calculation bug affecting middle class labour fixed.
– Calculation bug affecting happiness (and bugging out several other values) fixed.

Other changes:
– Demolition indicator. Will be tweaked further later on.
– Reintroduced constraint for size of foundation volumes that can be built in one process (much larger than before). This is to avoid accidentally placing large volumes when raycasting against nothing.
– Building vicinity check now disregards buildings on the opposite side of a block, allowing you to better plan cities.
– Added range display for building vicinity check.

Possible fix:
– Issue with hologram shader on Linux. Shader has been replaced.
– Post processing stack has been updated, which might fix a performance issue on Linux.

Known issues:
– Certain aspects of the Spanish localization missing (because of new text items).
– Worldsize of templates not variable. As such, it is not possible to build to the full size of the current templates. This will be fixed in the next update.
– Performance issue when starting threads for calculations and connectivity.

Pushed to later update (an outtake):
– Quicksaves.
– Additional concrete foundations, fancier concrete foundations.
– Fix for sun (currently breaks on build…).
– Updated spanish localization.
– Russian localization.
– German localization.​
– French localization.

The new traffic system is performing as well as expected! It does need the addition of culling cars that are far away and don’t need to have their positions updated, but all in all it’s working quite well. Aside from a few visual tweaks, it is more or less finalized. There will be a handful of more vehicles though, later on.
Following the traffic system overhaul, I have now also changed the road tile size and changed the overall grid in the game. Buildings now make up 4×4 of the grid, and roads are 1×1. Essentially roads are now 1/4 the size they used to be. This makes cities look denser and also allows for more interesting city layouts.

With the smaller grid size, I’ve also started implementing decoration tiles. These have no function for the city, but is also a way for plaers to customize their cities.

The policy window has been getting some work. Although a lot of work remains both in terms of layout and adding more policy to adjust, it is getting closer to its final layout. Implementing policy moving forward, should be much faster given that I’ve overhauled the code behind the policy system. I’m hoping to get quite a lot of policy and funding options added in before the next update.
Here’s the budget panel:

And funding options:

The vicinity system that checks whether a building is within range from a good or bad building has been changed to allow, for example factories, to be built on the back of blocks without negatively affecting buildings. This way, players will be able to build denser cities nd also plan their districts in a different way.

A first iteration of the econopedia has also been implemented!
Unfortunatly I’ve missed the target of improving on sounds and implementing the localizations, but I am otherwise ahead of Schedule. Localizations are quite simple to implement, so once I get the French, German and Russian ones they will be added fairly quickly. I had also planned on adding music for this build, but music is a bit behind schedule but has been coming along really greatly recently and there should be some tracks added for the next build.

/ Dispersing Minds

Atmocity progress update #22

Atmocity progress update #22

Like last week, some time this week was sadly lost to being ill. Luckily, the second half of the week has been really productive and I’ve managed to finish up some of the lagging systems.
The main focus the past few weeks has been to overhaul the traffic system. This is now fully complete. The old system relied on raycasting between each road tile to determine viable routes. This was obviously bad design, but done to have “something” for Dreamhack. Now, the system instead registers nodes from road crossings, turns and road tiles where traffic will leap over an edge. Using this information, each node can be given viable exit directions that is fed to vehicles.
Where the old system could handle something like 50 vehicles in view at the same time, the new system has been stress tested to run 1000 vehicles visible in scene at 60 fps. Given culling etc, this is a number unlikely to ever occur in any given view, but it’s good to see how well it can perform.
Here’s the system being tested:
And going crazy of course:
Being able to display a large number of vehicles is of course nice, but was not the only ambition when overhauling the system. I’ve been struggling to work out a good way to see what buildings are connected to eachother. Using the registered nodes, I can now compile a full network. Basically checking every node in the system, so if node A has exits to B and C, then A, B and C are naturally in the same network. If every road is connected, then there is only one network in the city. But if there are two separate systems, then two networks are formed instead. Using this information I can now divide the city into two or more sections and have production and consumption calculated on a section by section basis. When built, each building is assigned what network it belongs to. All the network calculations etc. are done on a separate thread so they should scale very well.
Next week, the final step in the road system overhaul will be changing the actual tile size.

Having finished the mid tier industry buildings last week, I’ve moved on to finishing the high tech industry this week. With that, only 10 buildings remain for the EA release of the game. That means I’m actually a bit ahead of schedule and should be able to start making a few decoration tiles for city customization. Here’s the high tech industry and an early decoration tile:
Following the changes to the policy system, I have now started implemented more policy and should have a decent set of policies finished for the update next week. The main issue at the moment is being able to present them in an appealing way that makes clear what they are for. But that should be a process over time.
/ Dispersing Minds
Atmocity devlog #21

Atmocity devlog #21


It’s been a rough week battling with both day job, game and also a massive cold (which seems to be winning…), but there’s been some Atmocity progress nonetheless.

Like the past few weeks, a lot of focus is currently on systems work and finishing up features. A lot of work this week went into finishing up the connectivity system in its current state. This will need some further tweaking further down the line when I’m done redoing the roads and the road system (more on that further down). The connectivity system now finds the divided sectors of the city, tests connections between them and then groups connected sectors into units. These units can then be used to calculate production and consumption.

Here’s the system working out what is connected and how:

Something that has been on my mind a lot recently has been to lower the grid size yet again. Those who have followed the game for a longer period of time, know that this has been done once before. Then it was done to get rid of the blocky look of the game as well as to get roads in. Had the grid remained the same size, roads would have become gravely oversized. Over time, I’ve started feeling roads are STILL oversized. This coupled with me now thinking about what will go into the game once all the main buildings are finished, has prompted me to cut the grid size down even more. This will allow roads to be smaller, buildings to be placed with greater detail and with smaller offsets, and the introduction of a lot of small decoration tiles etc. once all the main structures are finished. This will increase what players can do in terms of city customization and decoration.

Here’s the smaller grid size in action (roads not adapted yet).

And here’s the proposed new road system (a quick mock-up):
Following last week’s policy system overhaul, I’ve now started adding in new policy options faster. For the upcoming week I’m hoping to have a whole set of funding options added, so that players can control the funding for different types of educational facilities and healthcare for example. I expect most of the early-access version’s policy will be done for the 0.46 version (which has been moved from the 6th of February to the 17th due to revamped systems not being quite ready, but more features will be included).

I’ve received more feedback from testers, a set of bugs have been found as well as some QoL features have been suggested. These include tweaks to controls and placement of panels etc. Aside from this I’ve also started working on some QoL features that I’ve been thinking about myself. Among them is a range display when placing buildings. All buildings perform a vicinity test when built to check if there are any good or bad buildings nearby. The range display will show the spherical range of buildings as well as light up what good and bad buildings will be within range when placed.


Lastly, I’ve gotten the mid tier industry finished. The mid tier industry is less pollutant (only has marginal pollution). When finishing these buildings, I decided to split industry into three different types so they can be managed differently in the vicinity check. Dirty industry is disliked by all residential and commercial zones. This mid tier industry (called neutral in code, even though it isn’t quite) can be accepted by lower class and lower middle class residences and commercial zones. The high tech industry can be accepted nearby by middle class and upper middle class residential and commercial zones. The upper class residential and commercial zones are very picky, so they don’t like any nearby industry at all.


/ Dispersing Minds

Atmocity devlog entry 20

Atmocity devlog entry 20


Skipped last week’s update, because there was mostly system work done and not a whole lot to write about at that stage.
This week however, there’s a bunch of new things going on!

Firstly, I’ve started working on the connectivity system, which will check connectivity between buildings and sections of the city and calculate production and consumption based on what is available in connected parts of the city. Currently, the system divides the city into small “cubes”, and connectivity is then checked between cubes. Next week, I will start dividing these into groups, so that calculations for produces and consumed goods can be done on a group by group basis. For most players, I reckon the entire city will be interconnected, so there will only be one group, but should a player want to do so, cities will be able to be divided into separated sections. This system will also check travel distances for labour, so that all labour needs to be able to reach a workplace within a specific distance. This means that unemployment and labour shortages can arise, if there’s a difficulty in reaching work places. This is to simulate having to have reasonable travel times to get to work. The vactrain system will extend the travelling distance and allow labour to travel further to get to work.

Here’s an image of the system, when mapping the city:


I’ve also overhauled parts of the policy system. This is mostly to allow faster implementation of new policy. These were hard coded before, but now there’s proper code to handle a handful of different types, that can just be added to an array. This also makes saving them into the data file easier later on.

I’ve finished up the remaining commercial buildings as well! With that, I only have another 18 buildings left (out of 111) to make for the early access release. Next up will be the industrial zones, after which I only have another 11 left to make! I’ve already started expanding the list of buildings that will be implemented post EA-release though, including a sixth density for each residential and commercial zone and a set of smaller zones and parks.

W3_4b.png W3_4c.png

For the upcoming beta-release (scheduled for the 4th-6th of february), the budget panel will also have been implemented. Currently I’m working on the data struct that will collect all the data necessary during the calculations cycle. This includes fetching costs for sets of buildings such as healthcare buildings or education buildings.

I’ve also started receiving some early version of Music from the composer. It’s all sounding very promising and fitting! It’s going to be very exciting to start getting some music implemented into the game.


/ Dispersing Minds

Atmocity devlog – 19

Atmocity devlog – 19

It’s been a long and productive week for sure! Testing is in full swing and I’ve made plenty of changes according to the feedback I’ve received. One of the bigger changes is that I’ve started redoing the UI to make it easier to more directly find the items you are after and to lower the amount of scrolling required when building things.

Another change (that I’m still working on) is moving more values over to text and icon displays. For instance, instead of displaying city happiness as a value from 0 to 100, the value has been divided into five smiley levels. To avoid the confusion behind “negative unemployment” (labour shortage), this will be changed into categories of severe and mild shortage/unemployment and a neutral state.

The thinking behind this is to get players more focused on the bigger picture. The actual values can still be found in more precise panels, like city statistics and budget.

I’ve started working on buildings again as well. The entire roster of standard residential buildings available at early-access release are finished. I plan to also finish the small footprint residential buildings as well (about 6 or so, and more added after release).

The upper-class tier of residences can be seen here, along with a very WIP version of the new UI.

The entirety of the residences can be seen here:

Another change this week has been the addition of adaptive depth of field. Unlike before, when depth of field was always set at a specific focus distance (modifiable via options though), distance is now set depending on the distance to a building being in view of the camera. If no building is found, focus is always set to the sky. This way, there will never really be blurriness where a player is facing the camera.

W2_c.png W2_d.png
I’ve also managed to fix a couple of bugs and glitches, from both feedback and own discoveries. Moving toward the mid January update (scheduled for Wednesday or Thursday) these are the current changes:

– First iteration of new UI. More adjustments to come.
– Upper class residences implemented. Their full requirements are not finished for the time being as some more resources need to be implemented.

– Fixed null in conglomerate window panel.
– Fixed null when a new conglomerate establishes itself via trade of property.
– Fixed null causing file entries to not load in the save manager.

– Reverted to old way of calculating efficiency to avoid ”ping pong” values – efficiency swaying from 100% to 0%. Might revisit this later on.
– Added adaption rate to building effiency changes. This makes building slowly transition from one effiency state to another instead of instantly switching from one to the other.

– Camera shake when constructing buildings now works properly in paused mode and 2-8x speeds.
– Education values now scale properly with city size.
– Crime levels now depend on unemployment, education levels and size of population classes.
– Crime level added to happiness calculation.

There will also be the addition of Spanish localization, a selection screen that allows players to select start layouts for foundations and a toggle for depth of field. The missing icons in the UI image above will also be implemented.


/ Dispersing minds