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
This week I’m updating the Steam beta builds to version 0.46 which adds/changes/fixes the following:
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.
– 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.
– 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.
– 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.
– Issue with hologram shader on Linux. Shader has been replaced.
– Post processing stack has been updated, which might fix a performance issue on Linux.
– 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):
– 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
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:
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:
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
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.
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
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.
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