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