This week has seen a mix of optimizations, bug fixes and additional features.
First off, the second density for medium scaled commercial zones is now finished complete:
I’ve continued work on inflation, currency and wages, finishing up on the UI implementation and additional functionality. There’s still some ways to go, but it should be ready for next week’s update to version 0.15.
I’ve also put more work into the demand functions of individual resources to add more variation between resources within the same group.
With the complete implementation of wages, currency and wages, there will now be a few extra policies added. Among them universal basic income and fraud monitoring. I have also added two new taxes – wealth tax and financial transfers tax. Since these two taxes will add additional routes for the player to add to the city revenues, residential tax revenue will be adjusted down a bit, specifically for middle and upper class residents.
I’ve continued working on camera movement, and have now added a planar movement option. This means that pushing forward/backward will move the camera over the current plane instead of relative to the camera rotation. This means that the camera remains stable in height. To lower and raise the camera, the player can either pan using the mouse or use keyboard inputs. Overall I find this new movement mode works very well.
Lastly, there have been a bunch of building connection fixes and bugs squished. There full extent of these fixes will be posted next weekend, as the new update is up!
The new build will be up soon! Like the previous two weeks, I have focused most of the time this week on fixing recurring issues with performance and also bugs, but I have also managed to get the second density of mid scale residentials in:
This is the maximum density for the mid scale residential zones. They generally demand less utilities and aren’t as demanding when it comes to nearby buildings like parks, schools and clinics, so they can be a good way to fill out narrow arreas with little room for anything else.
The above image shows the low, lower mid and mid tiers mixed in with some full scale buildings.
On the performance side of things, I’ve finally managed to resolve the bug that caused major slowdown when buildings grow and in particular when many buildings are destroyed at once. One of the issues was checking for nearby buildings. Way back, all buildings were on the same layer, so buildings were fetched and then the type was tested. If a residential building was next to an industrial building, it would get an efficiency penalty (fewer residents). Over time, buildings have been separated to several layers, but all layers have still been checked. However, residential and commercial buildings (for example), never need to check for other residential or commercial buildings. So depending on the type of building performing the vicinity check, layers are adapted so only relevant buildings are checked. This speeds things up dramatically, as fewer colliders need to be checked.
Also, this is all now performed with NonAlloc, to speed things up further.
Another improvement using NonAlloc, is when buildings have either been placed, or grown. When checking for a nearby road tile to “attach” to, buildings now use NonAlloc, preventing FPS-hickups further.
There’s also been a recurring issue with buildings registering a nearby “bad” building, despite there not being one. This should now have been fixed completely.
I’ve also tweaked economy and found a few areas of optimization. In doing so I also found an issue where, specifically industry, could get efficiency levels that were too low and also too high (in the range of 6 to 300%). This has now been fixed and industry will rarely go below 60% unless an input (water, power or labour) is missing. Further tweaks to economy will be done in the upcoming version.
I’ve also fixed a bug where loading cities was bugged out on Mac, and while doing so also found a null ref that was fixed on Mac as well.
As for overall progress, I am slightly behind on inflation, currency and wages, due to a heavy focus on bug hunting and optimization. I do think, however, that I will be all but caught up come next update!
This week marks one year of posting (near) weekly devlogs in this kind of five image + text format! So lots of progress has been made I feel. By this time last year I was working my way towards getting a stable enough build for Dreamhack Winter. I had just cut the block size and started adding roads, the carbon pressurization plant and police station buildings had made it into the game and I was also working on merging blocks to create a shadow casting volume to keep down the amount of shadow casters.
Although there’s still a lot to be done in the game, it’s nice to see that it has come as far as it has.
The devlog can be seen here for those interested in a blast from the past: https://www.indiedb.com/games/atmocity/news/progress-update-5-atmocity
To update on current matters though. This week has been almost solely focused on squashing bugs and optimizing the game. With the amount of new things added over the past few months, it’s been high time to take a step back on feature additions and trying to fix some old and annoying bugs.
– City hall building added.
– Halloween prop added. More time specific props will be added over time.
– New vactrack icons.
– Fixed bug where sometimes loading a city from the main menu would stall.
– Fix for bug where roadtiles on bridges would not connect to road network on loaded cities.
– Fix for bug where destructed bridges would leave surrounding road tiles unaffected.
– Fix for bug where buildings would sometimes not connect to roads when loading cities. This might still occur in rare situations.
– Bug where notices would not move out smoothly fixed.
– Fix for building props not being removed correctly when demolishing.
– Further optimization when demolishing several buildings at the same time.
– Minor slowdown from sound stopping when demolishing a building playing an ambient sound fixed.
– Performance when deregistering cars when owner building has been demolished improved.
Known issues: Traffic is being optimized and a few bugs are being ironed out, so there’s unexpected behaviour at times.
One issue has been with bridges not registering road tiles properly and messing up buildings registering to a road network. There’s still an issue that sometimes buildings will still not connect to a proper road network, but it should be all but fixed now.
Here’s an image of my test build, fittingly featuring lots of bridges:
The city hall building has been added. Currently it doesn’t do anything except swallow some mid skilled workers, but it will be given a proper function fairly soon. As can be seen in the following images, I’ve also added a bit of a halloween theme (temporary of course):
Another bug that has been fairly tricky to find a solution to was that sometimes cities would not load, instead the game would freeze on the loading screen. This has finally been fixed. I’ve also found some sources of performance issues, among them fading out sounds when buildings are demolished and deregistering cars that belong to demolished buildings. These issues are now fully fixed, which cuts down lag when destroying buildings, especially when destroying many at a time. I’ve also managed to fix the multi destruct bug that was particularly noticable when destroying many mini zones.
Traffic still shows off some odd behaviour, which will be given some time next week. Hopefully I can improve performance further too, although it is pretty performant as is. Next week I will also go back to working on inflation, currency and wages, getting a proper implementation in. This will be a stepping stone towards adding some new policy options and adding more economic management options. Until next time!
This week’s update will be rather brief, as there’s not been a whole lot of visible progress. I’m working towards improving performance in some of the newer features as well as fixing some existing bugs.
Among the few new things added are the mini-size commercial zones. So now you can fill in those left over areas with commercial zones. As they won’t grow into bigger buildings, they don’t provide that many workplaces for your citizens, but they also don’t have many demands.
The mini-size industrial buildings have also been added:
The bonds and currency panel is in development still. I’ve started adding in the option to set interest rates, which affects inflation. Currently, the whole system is still in the works, so it is currently not generally necessary to make adjustments.
With the ongoing development on currency, trading prices are now affected by the value of currency. This means that when the currency value is low, it is expensive to import goods, but beneficial to export. When the currency has a high value, imports will be relatively cheaper, but exports will suffer.
As mentioned, focus this week has been on optimization and bug fixes. A bug that has been around quite some time is that buildings would sometimes not display the correct amount of production. This should now be fixed, and the entire system calculating production and consumption has been optimized and simplified a bit.
Another long lived bug is that buildings would sometimes incorrectly receive a penalty for a nearby bad building when loading cities. This has finally been fixed.
– Trade overhauled. If you had active trades in your save file, then these will disappear. There have been quite a few changes made to the underlying systems (demand, pricing etc.) so there may be glitches!
– Resource demand. Global demand for goods now affect pricing. Global demands are divided into four groups, raw materials, building materials, foods and consumer goods. Demand for each resource follows the group demand, but with a random offset.
– Goods tickets are in. These are bigger orders for resources that give rewards like resources or modifiers.
– Small family homes/businesses/industry implemented.
– Local economy factor added. Ensure that conglomerates are kept happy (don’t demolish their buildings, deliver goods via goods tickets and keep taxes on a fair level) to ensure that production of consumer goods and services are kept high.
– First iteration of inflation and currency value added. There will be more additions to this in the upcoming few weeks. Initially it won’t affect gameplay much, instead values are fixed. National bank building required to unlock bonds. The UI will see several changes in the upcoming few weeks.
– Corkscrew pieces for vactrack added. Icons will be updated in the next version.
– Because issuing bonds now requires a National bank building (which is available at 10k population) when you reach minuscredits you are allowed one emergency loan to get things going.
– UI performance increased.
– Open objective panel on start of campaign level.
– Fixed tutorial text panel being offscreen on certain resolutions.
– UI can now be hidden.
– Fix for hint texts for windows being cut off.
– Updated hint texts for trade to accomodate new trade and bonds options.
– Food production tier added to econopedia input/output info.
– Long term trade bug where resources would not be sold or purchased fixed.
– Fixed missing texture for medium sized industrial building (mid density).
– Spawn conditions changed for crates. Crates only spawn once the city has grown to a specific size.
– Fixed issue with challenge achievement being granted if five campaign levels had been completed (due to loading the wrong data).
– Mid tier industry bug fixed. Lack of firedepartment penalty counted twice.
– Performance when demolishing several buildings at a time improved. More work on this is required.
– Carbon power plant carbon consumption lowered (8 -> 4).
– Brushed up on german achievement localisation.
– Adjusted a few achievement names slightly.
– Possible fix for camera moving long distances when there’s an FPS hickup. More work will be done on this.
– Reset to default controls option added in optionsmenu (bottom button that says “Allow tilt”, reference to the wrong text element, will be fixed for the next update).
– Fix for camera jerkiness and spinning out of control when looking straight up or down when tilt i disabled (which it is by default).
– Updated movement tutorial.
– Added basic production into the humble beginnings tutorial.
– Reverted to TAA from SMAA.
– Goods requirements for schools dropped.
– Base trade prices increased. Resources will cost more, but also allow for greater profits when trading.
– Achievement “Dopey” renamed.
– Added field of view option in options menu.
– Added some atmofleet bling.
The central change of this version is an overhaul of trade. This was initially scheduled for mid october, but it seemed vital to get this implemented earlier to make sense of other upcoming changes (currency, inflation etc.).
Goods tickets are also finally in. Completing these will grant resources and modifiers and also make conglomerates happy, which boosts production for a while. Tweaks in the reward structure will be made over the upcoming few updates.
On the subject of currency and inflation, a first, very early iteration has now been implemented. Currently these additions do not affect gameplay much as the values input are fairly consistent. As such, there shouldn’t be any major surprises with stuff like sudden onset of hyper inflation.
Since currency and inflation is tied in with bonds, the national bank building is required to unlock bonds. This means it’s not possible to loan money in cities with less than 10k population (this is the prereq. for the national bank building). As an extra precaution, an emergency loan is granted to the player once, if credits go below 0.
I’ve continued working on tutorials and controls. The changes to the controls are mostly to ensure that what is there functions well and behaves the way one might expect. There’s been a rotation issue when the camera faces straight up or down that has now been fixed. This should prevent sudden jerkiness and unexpected behaviour.
The tutorials have been expanded to include some more information. The controls tutorial has been cleaned up a bit more and the combination of spinning and panning has been added as a hint. This is a movement option I find is one of the most efficient ways of getting around in the game along with just panning and using WASD.
The Humble beginning tutorial has been given a small building materials tutorial. In one of the upcoming updates in october, I will be adding a more intermediate tutorial that delves deeper into production and other resource and trade related topics.
There are some QoL improvements in this version too, FOV slider, the ability to hide the HUD, being able to reset controls to default (although the I missed the button text element on this one… d’oh!).
I’ve taken time to also make some minor brush ups here and there. The atmofleets now have some additional bling with trails and particle effects when landing and taking off.
The vactrack system now also has a slightly inclined turn piece that can be used to make cork screw like tracks.
Make sure to take motion sickness pills before getting on this commute.
As can be seen, there are a few items that were initially planned for this version that didn’t make it in. The mini commercial and industrial buildings among others. This was a tradeoff for getting the trade overhaul in earlier.
Moving forward, the next few updates will be posted weekly, starting the 29th of september, then october 6th and october 13th. These updates will be smaller, and focused a bit more on consolidating feature additions made up until now. So they will be less feature heavy and more geared towards fixing issues and improving newer features.
Work on 0.14 progresses. Quite a few things remain, but a lot of things are falling into place.
As mentioned in last week’s log, I was working on adding separate demand functions for each resource.This is now fully implemented. Demand is set in two steps: each group of resources has a demand function. The groups are raw materials, building materials, foods and consumer resources (like eletronics or plastic). These run along a random sin curve similar to how the global economy works. The other step, is that buying and selling large quantities affects demand. There’s also a bit of randomness implemented to make things develop independetly on a per resource level.
The demand curves will be able to be toggled on and off (in fact they can be already, but the picture is from before that
). All these things combined, trade can now be part of a player’s strategy to make more money.
Goods tickets, which have been mentioned before are also in the works. These are requests for three resources (one from each of the four groups). If you can deliver them in time, you will be given a resource or modifier as a reward. Delivering on them also boosts conglomerate happiness, which boosts output. Here’s the trade panel along with one goods ticket (work in progress, thus a bit messy). As can be seen, you can now also add trades that are not timed, so they will run until cancelled.
The mini size zones are also in the works. Industry and residences are now finished. You can now fill those small left over spots with some small single family homes.
I’ve come across some performance issues, primarily in the new click n drag demolish function. This was a recent discovery, so it has not been fixed yet, but I’m hoping to have it fixed for 0.14.
Other than that, there’s a bunch of smaller things done, like the addition of a restore default controls button in the options menu as well as an FOV slider.
In the upcoming week I will be finishing the goods tickets, working on currency, inflation and interest rates for an early implementation of this as well as finishing up the mini sized commercial zones and a bunch of other smaller fixes and additions.
Work on the next update is on-going! This update will primarily focus on expanding trade and a basic addition of currency and inflation. In this version, the “mini”-sized zones will also be added. These are single family homes, small business and small industry. They only have one density, so they won’t hold many people (4-6 each), but can be used to fill small leftover areas or add variation to bigger neighborhoods.
The trade overhaul is in the works. Mainly, this week I’ve worked on separating the bonds related functionality from the trade panel. What is currently known as the resource panel has also been added into the trade panel. This should prove more logical once it’s finished. Trade and overall resource management will be under one panel, and joining bonds will be currency, currency depreciation and interest rate setting. More on the latter next week.
Trade functionality has also been changed a bit. First, what has been refered to as “direct trade” has been removed. You can no longer buy resources and instantly receive them. Now, you can instead place an order of 500 units of a resource and it will be delivered over time. This, like the direct trade, costs extra. To enable trading contracts, a customs house has to be built. Trading contracts work the same way as before, except you will now be able to set indefinite contracts that expire only when you cancel them. This will allow players to build wealth using trade in a much more natural and less time consuming way.
Trade yields have also been raised. This means you can expect higher costs when purchasing resources, but also higher revenue when selling.
Another feature that is in the works, is that unlike before, each resource will be given its own demand function. Before, the pricing on a resource depended on the global economy and on how much you had traded in recent time. Now, there are four demand functions – raw materials, building materials, foods and consumer goods – that determine the demand of the respective groups. On top of this, a random demand offset will be added to each resource. Like before, the amount you have traded will also affect demand slightly.
Inflation is also making its way into the game. This means cities will now be given its own currency that needs to be managed. Generally, things that are isolated to the city itself will not be affected much by the strength of the currency. Building maintenance costs will remain the same, as will tax revenue. Where the presence of a currency will mostly be evident is in trade, where a strong currency allows you to buy resources cheaply, and a relatively weak currency will be benefitial when exporting. Wages and production output will be affected slightly be the strength of the currency.
Overall, these changes will add a new layer of complexity to the game, but with the additional help documentation I’m working on and after giving it a go, I think most people will find it nifty.
I’ve also continued work on controls, tutorials and help texts. More on this next week, as well as more on trade and currency.
– Customs house building -> in the next version this will unlock long term trade.
– National bank building -> in the next version this will unlock unlock bonds
– Super absorbent. A later stage water production building. More expensive, but produces more water and can be built near pollutant buildings without production penalty.
– Side decoration, to spruce up those concrete blocks.
– Modifiers implemented. The first batch of modifiers include increased tax revenue, increased production, lowered production costs among others. These are valid for 20 time cycles. Modifiers are saved on a per user basis, so they can be collected in one city and used in another with the exception of super challenges. Building info may be off when mods are activated, this will be fixed in the next version.
– First challenge added. Challenges are tricky scenarios that will require a lot of planning and skill to complete.
– Day/Night cycle adjusted to hide some of the TAA ghosting.
– Temporary blocks now autodestruct also in paused mode.
– Temporary blocks can be demolished.
– Parks and decorations were missing prices – fixed.
– Rotation can now be performed on either mouse or keyboard, rebindable in the options menu.
– Fixed issue of accidentally anchoring to buildings when rotating view.
– Crates now display icon of reward.
– Added background to text in upper stats bar to increase contrast and readability.
– Tidied up the controls tutorial and added a few more control items to it.
– Objectives are now hidden when using visibility modes. Unhidden when opening panels.
– UI panels location moved.
– Two new achievements, found crates and challenges finished (this one can’t be done yet, as there are not enough challenges atm, but soon!).
– Increased zones’ road reach slightly, allowing small scale zones to be packed more densely.
– Increased number of active trade sales/purchases from 5 to 20 each.
– Electronics plant production yield increased.
– Tweaked density check that allows buildings to grow to the next density.
– New basic building practice tutorial – humble beginnings. Practice makes perfect tutorial will be back in the next update, but then as a more in depth tutorial.
– Objective skip bug in campaign fixed.
As can be seen, goods tickets were not implemented this version. This is due to prioritising further tutorial improvements and additions based on feedback. They should be in with the next version.
The major additions this time around are challenges. Currently only one challenge has been added. Challenges are tricky scenarios, similar to the campaign levels, but way more difficult. Often they require some clever solutions both in terms of policy to make money and maximizing the space available.
On the subject of tutorials, the old “basic” tutorial has been replaced with a simpler one that is more direct in how to get a city going. For the next version, another more in depth tutorial will be added too.
I continue to tweak controls and systems. This week I’ve changed the anchoring mechanic, as well as adding camera rotation to the keyboard as well. I’ve noticed that most movements can be performed with WASD and panning and rotation with the mouse, which will be added into the movement tutorial as well as a hint.
There is now also a later stage water production building. It’s more expensive, but produces more water and can be placed in dirty industrial areas with no penalty.
The next version, 0.14, will not add as many new features, but rather focus on changing things that are already in the game. Primarily the trade mechanic, which will be expanded quite a bit, and there will be an addition of timed delay when trading directly as well as a purchase/sales price that later on will depend on the strength of your currency.
There will also be a focus on optimization of systems, old and new. As well as fixing minor bugs and issues that I’ve noticed.
First of all, I’ve updated the roadmap and added some additional items to it:
Some things have been implemented since the last roadmap, multi building destruction, rebindable keys etc.
Some of the items are given a more extensive description below.
Additional tutorial work.
Expanded set of small buildings, second density with alternates.
Mini zones (10 residential, 10 commercial, 6 industrial).
4 additional challenges.
Accepting bribe consequences.
Inflation. Interest rates, additional bonds options and currency depreciation.
Additional tutorial work.
Cursed earth retromode scenario.
5 additional challenges.
Early iteration of laissez faire capitalism.
Changed trade system.
Floating islands retromode scenario.
5 additional challenges.
Early iteration of communism.
6th density for residential and commercial zones.
Additional citizen board demands.
Additional conglomerate demands.
Updated localizations for Spanish, French, Russian and German.
Goods tickets are an expansion on the current system where conglomerates sometimes ask to buy or sell goods to you. Like in the current system, tickets will be timed. Each ticket will contain a handful of resource types. To complete a ticket, you need to have all resources available.
Following the addition of the national bank building in the next update, the next step is to add inflation into the game. This will require a lot of work, as there will need to be separate sets of purchase and sales prices for each resource and an interest rate. A currency rate will be added as well, which will affect pricing and wages.
Mini zones are single family residential buildings, small business type lots like convenience stores and small industry. (Smallest square is the mini zone…)
Atmocity currently incorporates a fairly complex simulation of what is commonly refered to as a mixed economy.
Mixed economies feature private enterprise, but also has public systems to cover up in areas where private enterprise might not be viable, or in areas where there is opposition to private business.
In Europe, for instance, we see private business in telecommuncations, manufacturing etc. Oftentimes, healthcare and education is completely or predominantely run by the state.
In Atmocity, the policy window along with taxes and welfare options can be used to adjust how mixed the economy is. But this adjustment is only marginal. In order to implement economic systems such as communism and laisse fair capitalism, more comprehensive changes need to be done to the core of the economic simulation.
The first step, which is a somewhat simpler affair, is to implement an early iteration of laissez faire capitalism. The plan is to have a very early and basic implementation of this in October, and have ongoing expansions on this and the policy system in general from then on. Communism is trickier to implement, but should see an early iteration implemented in November.
Mayors will be able to place water blocks to add more customization to their cities. This is planned for a November release.
By December I hope to catch up on translations for the game. The reason this is taking a backseat at the moment is because the above mentioned changes require a lot of new text. It’s very time consuming to have only a handful of items translated at a time, rather than a big batch. So moving on new text will be in English, and then given a translation around a mid December release.
Obviously, if there are QoL requests, these will be added in for the upcoming release. There might also be some misses in the schedule, but hopefully, this should all have been implemented by the end of the year.
As for this week, there’s been progress made on the 0.13 version, which among other things will add a few new buildings that play a role in the upcoming changes. Among them the customs house, which will unlock the long term trading contracts (unlike now when they are unlocked at all times). This marks the first step in expanding the functionality of trade in the game.
Modifiers have been added into the game! Modifiers are currently found in loot boxes (free ones, not the icky kind) that spawn around the city randomly. Later on, this will also be awarded when finishing goods tickets. Modifiers are unique to the player, so they can be used in any city in free roam mode, campaign or retro mode. Below is how it currently looks. Like all UI it will get more work later on.
I’ve continued adding more decorations into the game. This week I’ve added a type of wharf type decoration to spruce up those dull and grey foundation blocks:
A national bank building is also in the works, this will mark the start of the implementation of proper inflation into the game. I’ll also be adding a new water production building. This one will be a later stage water production building that isn’t sensitive to polluting buildings, produces more water, but is more expensive and requires more resources.
The latest build will be live in a bit! It features a bunch of additional features, some QoL improvements, UI fixes and some other things.
In the retromode, there’s now an alternate version of the windfarm that can be built in the sea. Similarly, there’s now also a wave power plant.
In the retro mode, the research for the centrifugal particle extractor has been replaced with research for the resource separator building. This building is available in the standard mode without research too.
– Click/drag demolition.
– Windpower plant, seabased – Retromode.
– Wavepower plant, seabased – Retromode.
– Recycling centers now return small amounts of metal and sand.
– Separator building, all modes. Researchable in Retromode. Recycles trash and outputs a small amount of all base resources (metal, sand, carbon etc.).
– Goods crates now randomly spawn. If found they grant a reward. Currently missing some UI items displaying what has been found.
– Fixed issue with controls settings always saving on window closing.
– Fix for camera panning reversing when letting go of mousebutton and moving the mouse pointer.
– Fix for laboratory not registering after load.
– Close windows button (marked with x) added.
– Info button (marked with ?) added for each panel in game.
– Camera sensitivy slider reversed in options. Moving it to the right makes the camera floatier.
– Mine and sand extractor descriptions and names added for French, German, Russian and Spanish.
– Fixed some text sizes in russian.
– Fix for campign objectives UI blocking clicks.
– Property tax revenue per conglomerate added into local economy panel.
– Research in retromode fixed to include and exclude buildings specific to mode.
– Research times cut by 10-50%.
– Rich presence expanded.