Browsed by
Author: Dispersing Minds

Atmocity weekly update #16

Atmocity weekly update #16

Hello!
A somewhat shorter week of dev, given christmas is just around the corner (merry christmas to all!), but there has been some progress with the game.

First off, the bond and trade system has been fully implemented and now works with saving and loading. The bond system allows players to lend money, that after 100 time units, needs to be repaid with interest. The interest rate is calculated from the global economy and the economic status of the city.

Atmocity

The options menu has been expanded to feature more settings. Aside from splitting things up into different categories, depth of field now has a focus distance setting. The camera rigidity settings has been implemented into the options. This setting allows players to set whether the camera is rigid or floaty.

Atmocity

I’ve added a demolish building Icon, to move demolition from the right mouse button. This makes much more sense given the controls in general. There needs to be a marker added to show what is going to get demolished though. But that will be done next week.

Atmocity

I’ve started refactoring and optimizing some code, namely the UI related code and the car code. The car code is almost refactored, but in doing so I reintroduced a bug where the cars loop around, so this will need to be adressed soon.

Atmocity

Overall, the game runs fairly well on my main rig now. It will be interesting to see how it runs on other rigs, and how other people experience the game, now that the early beta test is just around the corner!

Atmocity

/ Dispersing Minds

Atmocity devlog weekly update number 15

Atmocity devlog weekly update number 15

Hello!

Another week of mostly systems work, but there should be some eye candy too. :)

I’ve focused quite a bit on performance this week. One of the main issues I’ve had has been global fog and sunshafts being fairly bad in terms of performance. So I decided to phase these out in favor of newer assets that hopefully are more performant. To replace the old global fog I decided to shift from version one of the post processing stack to the new version which includes global fog. This meant redoing some of the post processing effects. I consider this work worth the time though.

W50a.png

I also implemented Aura for better looking lighting. I think it gives the game a softer look, which works fairly well. Replacing the post processing also meant I gave the effects another look and did some tweaking to get performance where I want it.

W50b.png

I’ve also started working on separate profiles for the normal view and the efficiency/owner/density views. I want the latter ones to be rather clean and simple looking and give the city a sort of “model of a city”-type look.

W50c.png
Since I’ve updated to Unity 2018.3, I’ve also started looking into the jobs system to add more improvements in terms of performance. I spent a great deal of time trying to implement traffic onto its own thread but had no luck with this sadly. I will probably revisit this idea after the initial EA release since traffic performance is fairly ok as is anyway. I did, however, move traffic raycasting over to the raycastcommand feature, and this seems to have improve things a fair deal. :)

W50d.png

I’ve continued to work on the local economy system. There’s now a system in place to allow conglomerates to buy/sell property from eachother. This means the conglomerates that establish themselves in your city early on, won’t be clustered there over time. I’ve also started working on the conglomerate demand/offer/bribe system. Conglomerates will demand you change policy from time to time if they are unhappy. If you decline their demands they will half production, slow growth in buildings or not construct new ones. Conglomerates will also make offers for you to buy resources that you might need off-market, or offer to buy resources you have a lot of. Lastly, they might attempt to bribe you into making a policy change and in return give you money or resources. There’s a chance you will be discovered doing this, in which case citizens will become unhappy and maybe move away.

The last bit of systems work I’ve done this week was to start implementation of the trade system. Aside from buying/Selling resources directly on the market you can place long term purchse/sale orders. This means you’ll have a slow but consistent import/export of resources, which doesn’t affect pricing as much. This will allow players to make steady sales when they have a lot of goods stored, or if they are running low, start a steady import stream without affecting the price too much.

W50e.png

A maximum of 5 sale orders and 5 purchase orders can be held at the same time. Each time unit buys/sells 100 units of a good, so at most, users can ensure imports or exports of 500 units per time tick. This will allow players to make up for big surpluses or when they are running dangerously low on something in high demand.

Next week, I will be finishing up the trades system and also add the bonds system (a loan system essentially). Aside from that, the local economy will get more work as well as starting work on the budget panel.

/ Dispersing minds  

Join the Atmocity Discord server!

Join the Atmocity Discord server!

For those willing to get some inside news on the development on the game, wanting to contribute with feedback or just talk games, the Atmocity channel has been open for a while.

https://discord.gg/[insert the name of the game here]

Stop on by!

Atmocity progress report #14

Atmocity progress report #14

Hello!
It’s been a productive week. Mostly under the hood stuff and mostly optimizations and bug fixes.

I’ve redone the control scheme slightly, moving the demolish action from the right mouse button to a separate button in the UI. Right mouse click now anchors the camera to a structure so that players can more easily get the camera around corners or rotate around buildings. Rotating the camera has been moved from left click to scroll wheel click. I’ve also tweaked the “floatiness” factor a bit more and this will be implemented into the options menu in the upcoming week, allowing players to adjust how rigid or floaty they want the controls to be.

Atmocity

I’ve added better lighting to the “shady side of the world”. This has been an issue for a while, that certain areas will always be worse lit. I’ve tried to compensate this by adding a dimmed light that is always opposite the sun. It will need further tweaking, but should end up solving the issue. This also works as an additional “night light”, making building easier during night time, if players insist on keeping the day/night cycle on at all times.

Atmocity

I got the save/load menu fully implemented too. The UI still needs work, but in terms of function it’s all there, thumbnail of the city and all included. I also managed to clean up some lousy placeholder code because of this too as well as removing what used to be a “loaded city”-scene and a “new city”-scene. This is now just one gameplay-scene, if it’s loaded with no city loaded, all the new city stats and resources will be loaded as well as a solitary building block placed in the center.

Atmocity

As an additional visual feature, I will implement several different skyboxes and day/night gradients. Exactly what types there will be, I haven’t yet decided, but there should be quite a few to add more variation.

Atmocity

Having done quite a bit of code optimization (some scripts were lagging behind in terms of optimization), next week I will get into refactoring some of the newer code, like drag and drop for building blocks etc. This code is rather messy atm and requires a good cleaning. I’ve also done quite a bit of UI-optimization, splitting up large canvases and also getting rid of some graphic raycasters on canvases where there are no clickable objects.

Atmocity

Local economy should also be finished enough to get it into proper testing next weekend, after which I will be able to set up conglomerate and citizen demand systems. Overall, I am behind schedule, but should have time to catch up after christmas. The game is not quite as finished as I would like for late alpha/early beta, but it’s good enough I reckon.

/ Dispersing Minds

Atmocity weekly devlog entry 13

Atmocity weekly devlog entry 13

Hello,

Dreamhack came and Dreamhack went. I’d like to start out thanking those that dropped by and checked out the game. It’s always nice hearing that the game looks good or looks cool, but a completely different thing seeing people actually try it out and responding to things. Many people seemed very intrigued with the main concept of the game, being able to build really inventive cities while also managing complex economic systems.

w49a.jpg

Of course, I also noticed some things that need fixing and also received some very good feedback. I will detail some of the fixes I’ve made, feedback received and some other fixes I’ve done since the event and also what will go into the game as I move forward to the early beta build.

Unlike most city builders, Atmocity requires a fairly complex camera system so that players can navigate around the city. Most builders fare well enough with just a top down camera, that can move east/west/north/south. In Atmocity, players need to navigate within a volume in full 3D. With this comes a bunch of difficulties that need to be overcome. Most of the people who tried the game out did ok with the camera, but I did get some good pointers on how to improve it further. So in the upcoming few days, the options menu will be fleshed out with a Controls-panel. Here, there will be a sensitivity slider, since some players wanted the controls to be more rigid, while others felt they could be softer and floatier.

Aside from that, there will also be a type of sideways rotation or “lean” feature implemented, so that players will be able to easily setup the camera on level with the overall area they’re viewing. Currently this requires a bit of a specific click and drag movement to do. Zooming will be implemented on the scroll wheel, and clicking the scroll wheel will initiate the camera drag movement. Currently the drag movement is assigned to left click, but this will be used solely for building selection.

At the moment, demolishing buildings is weirly assigned to the right mouse button click. This will, as has been planned for a while, be moved to a hot key and button in the building panel. Instead, the right mouse button click will be used to “attach” the camera to buildings, so that it can rotate around them easier.

These changes should be implemented in the upcoming few days. Navigating mazes like this should become easier:

w49c.png

I discovered a handful of minor bugs, among them a null ref due to cars not despawning correctly when buildings were demolished. This has been fixed, as has the efficiency display shader not displaying correctly on skyscrapers.

I’ve also continued optimizing the game during the week. The reflection probe now uses time slicing so that it isn’t quite as performance heavy as before. I’ve managed to cut some shadow casters, removed hidden faces and made some other minor (per object) optimizations that make a rather sizeable difference in bigger cities. I’ve also managed to cut down on the tri count from shadows by cutting shadow casting distance a bit. This scene maxed out at 1.5 million tris and 1000 shadow casters before, I’ve now gotten it down to 900k tris and 300-400 shadow casters (depending on the number of cars in the scene):

w49b.png

Further improvements will be made making far LODs even more low poly, since they are hidden in fog and blur anyway.

An idea that came up at Dreamhack, to make building weird cities more of a functional choice as well as visual, was to make pollution not spread through blocks. This will be implemented in an early version too. This means that unlike now, when building factories within a specific radius from Residences will cause a penalty, you will be able to plan cities so that factories can be built on one side of a block and residences on the opposite side. There will probably be some sort of balancing issue with this, and I will need to implement it well for it to work well and not make city planning too easy.

w49e.png

My initial plan for the upcoming beta was to have everything more or less implemented. Sadly, some systems are still a bit too underdeveloped to be used properly, so some will be left out during the early stages of the beta. But I am hoping to get them done early to mid january so that they can be properly tested in good time before EA release too. Local economy system is still proving quite difficult, but should get there fairly soon.

The remainder of the week will be spent optimizing traffic further and adding the connection testing that buildings will do to ensure connectivity with key buildings like power plants and water absorbents. On top of that, the save and load manager will be started so that more than one city can be saved and loaded.

w49d.png

There will be Another update on Sunday. For those interested in trying out the beta, beta signup information is available on the Steam page for the game (https://store.steampowered.com/app/779380/Atmocity/).

If you want to more closely follow the development of the game, you can also join Discord, https://discord.gg/CeUuyS9

(Also vote for the game on IndieDB: https://www.indiedb.com/games/atmocity)
/ Dispersing Minds
Atmocity progress update entry 12

Atmocity progress update entry 12

Hello!

This week I’ve been putting in a lot of polish to make the game more presentable for Dreamhack next week.

First notably, the traffic system is now in. It’s still fairly basic with cars just moving and not really abiding to any rules. It’s also not as performant as it will need to be further down the line. I’m going for some sort of ECS solution later on, but there hasn’t been time to fix that now. It works for now at least. 🙂

Atmocity

A gif of the cars in action, prior to some further polish, can be seen here:

Currently, all buildings spawn two vehicles, but later on I will probably make this one per non growable buidling, and then make it 1-5 for residential and commercial buildings so that traffic levels sort of follow the density and size of the city more.

Atmocity

I’ve had to put in quite a bit of effort optimizing the game further. I’ve moved shadow casting over to the lowest poly LOD for each building, which lowers poly count for shadow casting. I also decided to cut having four shadow cascades and instead go for just the two. This cuts the poly count down further, without too much of a cost visually.

Earlier, I’ve run the game at an FOV at 60, which has now been increased to 80. There will be an FOV-slider in the future, of course. But keeping things consistent allows me to find some sort of base-performance level.

Since finishing up the current version of the traffic system I’ve also added in cars as props for each building. This of course adds more shadows and polys to the scene, but I’ve managed to offset this with the above improvements. Also, as all props, cars are grouped together when a building is constructed.

Atmocity

The day night cycle system has also been optimized, removing some lousy code and also fixing some minor bugs (sun sometimes displaying at night for instance). I’ve also given it a few tweaks to improve visual fidelity. The “Always night” and “Always day” options are not fully implemented as well proper menus for fast forwarding.

Atmocity

Since adding the click and drag function for building blocks and roads, I’ve also decided to add a new Visual queue to guide players to what’s going on and allowing them to follow what “rotation index” they’re current only.

Atmocity

All in all, the game runs fairly well on my rig at a consistent 60 FPS. Currently textures are pushing memory a bit (4GB only for textures). But they’re mainly 4k textures, so I will be adding a downscaling feature to allow lesser rigs to run the game with lower texture quality.

The buildings are all event driven so they are very performative. All calulations run on a separate thread to allow for complex calculations to run without hickups. Cars are currently the main source of performance drop along with post processing effects (On CPU and GPU respectively).

All in all, I’ve managed to get into a faster pace of development recently, which is good since after Dreamhack I will focus on getting a first early beta version out to testers (signup info on Steam!). This is scheduled for December 16th!

/ Dispersing minds

Atmocity progress update # 11

Atmocity progress update # 11

Hello!

Lots of stuff going on and lots to finish up before Dreamhack Winter next weekend. :)

Most of my recent work has been put into improving functionality and to a degree also visuals.
One of my main improvements has been to implement a sort of drag and drop typ system for roads and blocks so that players won’t have to place one after the other and can instead select areas to build on. In a “normal” city builder where building occurs on a 2D plane, this kind of functionality wouldn’t be much of a hassle to implement, but given Atmocity allows players to build in 6 directions things become a bit more complex.

For roads I’ve opted for a start and end position with a midpoint in between. For flexibility, using the scroll wheel players can swap the midpoint to change where the road goes.

upload_2018-11-19_19-21-52.png

upload_2018-11-19_19-22-7.png

The way this works is that when starting a build process, the world direction is checked and locked in. Players will then be able to plop down their road on that specific plane. When they need to switch planes they need to initiate another process (mouse click). I have found when testing, that this works fairly well since most of the time you need to navigate the camera to a new location when building on different planes anyway.

For blocks, the plane is checked and then using the scroll wheel players can switch build direction between xy, xz and yz.

upload_2018-11-19_19-26-26.png

This system will allow players to fairly quickly build areas ready for development. It also removes some of the camera micro management that was required before, when you’d have to move the camera around to place blocks in specific locations.

As for visual improvements, I’ve mostly focused on improving roads from their previous flat planes into being actual 3D. Not a huge difference, but it does look better in my opinion to have the sidewalks slightly raised.

upload_2018-11-19_19-17-50.png

I’ve started working on some decoration pieces as well. Once the game releases on early access, a fair bit of time will be spent adding objects that players can use to improve their cities visually. These will mostly just be for decorative purposes. Here’s a sort of “balcony” piece I’ve prototyped:

upload_2018-11-19_19-31-27.png

Cars are still being worked on, I’m almost done with the texture after having done the mesh (a fairly simple one). I’m also still working on movement, so I didn’t get around to fixing up traffic rules yet. Hopefully I can get this done in time for Dreamhack. :)

Surprisingly, this past week I also came across a fair number of bugs that have now been neatly squished!

/ Dispersing Minds :)

Atmocity weekly progress update – #10

Atmocity weekly progress update – #10

Hello,

First off, Correcture Games will attend the Indie Playground at Dreamhack Winter in Sweden at the end of the month. Atmocity will be showcased and you can have a go at some gravity defying city building!

I’ve spent most of the week working on systems in the game. The traffic system is now functional, but needs quite a bit of work so that it looks good, spawns and despawns vehicles and just overall adds to the atmosphere of the game.
There’s quite a long ways to go, but at least cars don’t freak out when going around corners (that was a headache to fix).

W45e.gif

I’ve started reworking some of the building placement stuff. Before, all buildings would be assigned a random rotation when built. Now I’ve changed it so that building rotation is controlled by the player using the scroll wheel. Buildings can still be rotated when they’ve been placed too. Here are some farms freely placed. :)

W45a.png
Next up, I’ll be changing block and road placement to allow players to assign areas with blocks and roads instead of having to place one after the other. This should allow for quicker construction of the foundation on which you build the city. Being able to click and drag where to place roads is also standard in most games of this type so it’s a given to add.

I’ve added a building register that assigns a unique ID to each building in the city. This will be used along with the traffic system to assign a vehicle to each building. Goods are produced and consumed globally, but each building will need access to other key buildings and this will be “tested” using the vehicles. The building register also allows for quicker processing when using the different view modes (like building efficiency view or building owner view) among other things.

W45d.png
Policy is on ongoing project. I’ve changed how tax rates affect citizen happiness from a somewhat consistent curve to one that allows you to set fairly high tax rates before truly affecting happiness. This should allow for some more player freedom, but also allows players to set fairly high tax rates if they have other things that offset the unhappiness from higher taxes.

W45b.png
The tax rates are still divided into three, targeting low/mid/high skilled labour respectively. The effect of taxes on happiness will also depend on how large the proportion of the targeted class is compared to the overall population. If you have a small low skilled labour population you will be able to tax them higher without losing out too much on the overall happiness.

I’ve also finally managed to get the graphs looking more up to my own expectations.
W45c.png
Lastly, I’ve implemented toggles for day/night, always day and always night into the UI. When moving the mouse to the top center of the screen, a small options panels slides down. From there (and the keyboard of course) players will be able to set the game speed (paused, normal, 2, 4 and 8x).

Next week I’ll continue work on cars, doing some modelling/texturing and trying to finetune movements and then adding some basic path finding and traffic rules. I’ll be working on drag and drop for blocks and roads and also some initial work on decoration tiles that can be used to improve your city visually. More policy is also on the schedule!

/ Dispersing Minds

Atmocity weekly progress update #9

Atmocity weekly progress update #9

Hello,

This week I’ve been revisiting making buildings for the game.

I’ve focused on commercial buildings this week having finished 5 new buildings.

Atmocity

That means I’ve finished another full set of commercial buildings.

Atmocity

When finishing up this set and placing all commercial building sets next to eachother I decided to switch them around a bit. The above one was initially intended as the upper middle class set, but after reconsideration I’ve decided to make it the lower middle class set.

Atmocity

The set that was formerly the lower middle class will become the new middle class, and the former middle class will become the new upper middle class. I’ve also decided that post release, once there is time, I will expand each residential and commercial set with one more (a sixth) density. I’m also considering three classes (low, mid, upper) of single or possibly dual density commercial and residential buildings with smaller “foot print”. This would allow players to zone left over space. These sets should be available for the initial early access release of the game.

I’ve not only worked on buildings, but also continued work on the traffic system. Unfortunatly, this is proving slightly more difficult than expected. Hopefully by the next devlog I will have more info and maybe a gif to showcase the progress.

Next week I will also continue work on the middle tier of industrial buildings, and hopefully I can finished it too, as these tend to be fairly simple to make.

Atmocity

That’s it for this time!

/ Dispersing Minds