Browsed by
Category: Atmocity

Atmocity devlog #35

Atmocity devlog #35


Work on the game is progressing steadily. This past week I’ve finished up work on the new block placement tools. It’s now possible to click and drag to place the smaller building blocks. If a bigger block has been placed, this can be cut in half (sculpting). This will allow players to build more fine tuned foundations for their cities and will also open up for some interesting decorations later on.

On the subject of decorations, as can be seen in the image above, I’ve added in a very simple park tile. I’ve also added another “geometric garden” type tile that can be used to decorate the city. The new one (and an older one) can be seen here. Prior to release I will try to get a handful more decoration tiles in. Suggestions are welcome!

Here’s another image of the park tile in the same context:

One of the remaining features to add is research. I’ve gotten rather far with this during the week, adding in most of the UI (along with most UI related code). I should be able to finish this up next week and get the research yield functions in as well.
Research is enabled once the city has 15k population and a laboratory building. It is required to unlock some production buildings and power generation Buildings, such as nuclear and fusion plants. Aside from building unlocks, there’s also research that enhances buildings, like lowering pollution from carbon power plants and improving carbon dioxide capture and storage. Once enough has been researched to unlock the bottom tier of enhancements, players will be able to improve education, health and water/power conservation.


Since the current test city is getting rather large, I’ve also been able to start adressing some optimization issues and have started cutting tris and improving slow code. Fixing the new block tools also allowed me to reorganize that code and make it more efficient and also more well-functioning. Among the fixes there have been removing the risk of accidentally placing an area of blocks when only clicking to place one.

Atmocity devlog #34

Atmocity devlog #34

It’s been a while since I posted. Mostly this is due to not having very interesting things to post about (mostly done minor tweaks, fixes and optimizations recently), but also due to an extreme work load recently.

Hopefully things should clear up a bit moving forward and I should be able to dedicate more time to finishing up the remaining features I want to add into the game before it goes into early access.

The last EA building has been finished – the atmoport:
This is a must have building that will accept goods and citizens to your city. There will need to be one for each network in the city. So if everything is connected properly, there’s only a need for one, but if the city is scattered across different islands, then you will need more.
I’ve yet to finish ships landing etc, but I’ve started working on a path finding system that should make the remaining work fairly straight forward.

I’ve started working on sculpting tools and being able to place smaller building blocks right away. This will make things a bit more interesting and allow more customization to cities.

One of the remaining things to make is a “land” mode of sorts. There will be a few different variants to this, but one idea I’m working on is a straightforward constructed island in water. The image below is an early concept.

I’ve also reimplemented some atmospheric scattering and am fairly happy with how it looks:
This will require some more work be put in to the day/night cycle, but should be worth it in the end.

Next week, aside from finishing up the sculpting and block placement tools, I will also be finishing up ships landing at the atmoport and also adding in some more decorative buildings such as an obelisk, a small hedge “park”, a sloped park and a small border piece that can be used to decorate the side of blocks (to remove that concrete look)

Atmocity devlog entry 33

Atmocity devlog entry 33

New build is up! No huge additions, but quite a few important fixes and overall polish.
New stuff:
Wage level implemented – this might cause higher unemployment than before. I’ve attempted to offset this by increasing abour demand overall, but it might not perfectly offset things.
Unemployment welfare affects wage level.
Health insurance cost is now affected by overall health levels.
FDat file type deprecated from saves.
Changed plop costs and upkeep costs for each building.
When there’s no power or a lack of power, less of the city will light up at night time.
Health yields from hospitals and clinics increased.
Policy costs adjusted.
Funding for crime prevention added.
You can no longer place buildings when out of Money.
Russian translation implemented.
German translation implemented (some parts are missing still).
Other translations minor fixes.
Road and vactrack paths calculations improved
Minor fixes:
Retirement funding is now calculated properly.
Road construction bugs fixed: Roads could be built through blocks. Roads could be on uneven blocks.
Camera movement still when inputting city name.
Fix for dissolve shader when close to buildings and blocks.
Fix for cost information not updating when in paused mode.
QoL improvements:
Grid displayed when placing blocks, buildings and roads.
New demolition indicator.
Cloud saves.
Loading speeds improved.
Known issues:
Blank messages from nowhere. These don’t affect gameplay and disappear when reloading the city.
Text size in local economy panel oversized.
The vactrains have gotten a minor face lift:
I am almost done with everything vactrain related. What remains (still) are the trains. These should be finished next week.
I’ve started tweaking building outputs even more, to ensure that output makes sense. For example, absorbents have not been outputting enough water, so this has been changed a bit. Health yields from clinics and hospitals has been increased as well. This means that it will be easier to keep health levels up, but clinics are still necessary to keep residents happy.
There’s also been a great deal of work put into shaders in terms of performance and look. Things overall should be a bit shinier now, but more importantly culling objects when they are far away works better now.
The number of shadow casters has been lowered and poly counts have been lowered for some of the more common props, like trees and cars.
Another performance improvement is the way road (and now also vactrain) networks are calculated. This runs on a thread, so it hasn’t been too important to keep it performant. But it has been pushing what is acceptable in terms of poorly performing code so I opted to make some improvements. This should come in handy when people start building huge cities. I’ve also moved this away from being calculated every time step in the game and instead only when a road or vactrain network has actually been changed.
Policy keeps getting minor adjustments. I want policy decisions to matter, while also being costly. So the effects need to be tweaked. It’s also important that not all policy can be implemented at once, but rather implemented as the city grows larger and can afford it.
I’m closing in on finishing up localisations. Russian, Spanish and Swedish are more or less completed. French and German have a handful of elements missing. The Russian localisation required a bit of extra work due to the sizing of text elements being larger. This has largely been fixed, but a bug where the local economy panel isn’t adjusted correctly slipped into the build (whoops!).
I’ve also decided to change the road check for each building from a sphere to a box. This allows buildings to be placed in corners as pictured below. This means that denser neighborhoods can be built and the need for roads is lowered a bit.
Next week, I mentioned vactrains will be finished up. The atmoport building and hopefully also function is on the schedule. Hopefully there will be time to start working on the objective system for the campaign as well. Should I finish those things, only one urgent things remains for the early access release of the game – the retro mode.
Atmocity devlog entry #32

Atmocity devlog entry #32


Work continues on the game! Focus this week has been to finish up the vactrain construction and getting it to section the city properly so that resources are shared in the connected parts of the city. The only thing that remains now is to have actual trains travel through the tubes (will be done next week). Here’s a test with determining what is connected and assigning different network codes to each interconnected system:

The vactrain system will make it easier to section off parts of the city, such as dirty industrial areas, and connect remote residential areas.

The French, Spanish, Russian and Swedish translations have been updated. I’m hoping to get the remaining translation (german) next week, so that this can be implemented as well. This is the last remaining element to get an approved build on Steam. There’s been more work put into policy effects and costs. These adjustments follow a fairly substantial test city that I’ve started building.
I’ve also added some QoL enhancements such as a max output information display when hovering over buildings in the building selection menu.

Another QoL improvement is a grid displayed when placing buildings, blocks or roads. This will make it easier to plan cities.


Next week I will also be working on squashing some bugs and making some minor improvements to systems before I move on to a bit of optimization work. This will lead up to the next version, which releases next weekend.


Atmocity devlog entry 31

Atmocity devlog entry 31

It’s been a while since I made a proper update. The previous few weeks have been very hectic overall, and on top of that most of the game progress has been on fixing bugs and making minor tweaks here and there, so not really update worthy.
But now there’s been some visible progress! Vactrains are now a thing. They’re not quite functional yet, but I’ve managed to get building them down, and added the station building into the game. Vactrains are used to connect remote parts of the city.
I’ve rebalanced the entire set of buildings changing pricing the resource requirements as well as some of the output levels. The next step in building management will be to add in the availability conditions. Some buildings will be locked from start, requiring a specific population for example, or that the building is first researched in a lab (which is a building that itself requires a specific population). Given that the vactrainstation has now been finished, only one building remains to be made for the early access release (atmoport). The atmoport will be a building placed when you enter a new city. This building will be the place where goods and citizens can travel to and from your city.
Another thing I’m working on, that has been prototyped earlier, is being able to set different skies. This won’t affect gameplay, but can be used to add variation. Each theme comes with it’s own skybox, and sun color temperature etc.
One thing that I’ve noticed will be important is to convey when things are missing or going poorly in the city. Currently, I’ve added specific songs from the soundtrack to play only when things a recession occurs. I’ve added a feature that the city doesn’t light up at nighttime when there’s no electricity. When you’re low on electricity, a set of buildings will randomly not light up at night time. That way you get a visual queue that you need to expand power production. Once I add cop cars, ambulances and fire trucks, these will be more prominent on the streets when crime is high, health is poor or when fire safety coverage is low.
I’ve continued tweaking the economic system, changing costs and effects of policies and how long it takes for policies to reach full effect. Messages sent from the board of citizens and from conglomerates are now also saved.
Next week, vactrains should hopefully be finished completely. I also count on having most of the translations added into the game as well. I’m also adding some quality of life improvements like auto benchmark and some more options.
Atmocity progress update #30

Atmocity progress update #30

Like last week’s devlog, this one will also be rather short. I’m currently under a fairly heavy work load and on top of that, most of the work that goes into the game now are to system tweaks and improvements.
Work continues on tweaking calculations. More or less all systems, such as health, wages, unemployment and happiness, are interconnected. As such, balancing these systems out and avoiding extreme results is a bit tricky, but it’s getting there. The real test will come once the game releases into early access and a more diverse set of play styles is being tested.
I’ve also been polishing up the shaders in the game, adding vertex displacement to building footprints and making minor performance adjustments. I’ve also changed import settings for textures to decrease their size.
More localisation work has been done. Spanish has been updated, which means it’s almost finished. A first iteration of the russian localisation has been added, but will require some work (text size etc.). I’ve also added the Swedish localisation into the game. Work on the german version is ongoing and the remainder of the french translation should be done fairly soon.
I will be trying to get some more buildings into the game before the EA-release. Primarily decorations, like this forest:
There’s also been some minor stuff added. Cities can be named. The ui has gotten some minor adjustments and will continue to be improved in the upcoming week, especially the statistics panel which has been placeholder.
Atmocity progress update #29

Atmocity progress update #29


There will be no extensive devlog this week, since most of the work I’ve done involves system stuff and generally surrounding systems already in the game.

I’ve continued working on the vehicle system and squashed a few visual issues. Moving forward I can now start culling vehicles properly to allow more vehicles shown in any given view without tanking the FPS.

I’ve now also implemented a proper calculation of the wage level. The wage level affects the demand for labour, so if wages are high, demand gets a slight hit. Conversely, if wages are lower, demand gets a slight boost.

With welfare systems such as unemployment insurance, health insurance and retirement, these are generally designed in such a way as to replace wages while a person cannot work. As such, the city’s wage level is now a part in calculating the cost of these benefits. If the city has a high wage level, these benefits will cost more when people are unemployed for example.
The next step will be to incorporate the wage level into the tax income from residents.

Another thing that I’ve aimed to incorporate into the EA-release of the game is a vactrain system. I’ve started coding this into the game, and aside from registering stations, it’s almost ready to be tested. For next week’s devlog there should be a finished concept up for display.

There are still some bugs to be fixed here and there, and some UI adjustments left to make. But overall, what was intended for the EA-release is starting to get rather stable and polished. That means I can move onto doing some optimizations here and there to make sure the game runs really well.

/ Dispersing Minds

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 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.