Added new smaller map (3.5km x 3.5km) for testing stuff quickly and with better performance for older PCs and laptops while I keep optimizing stuff.
Improved city sizes, distances and densities in different map sizes.
Reduced factory production rates.
Reduced number of supply trucks a bit.
Tripled moon brightness so it’s a bit easier to see during night time.
Added proximity fuses so missiles that are barely missing an aircraft can still detonate and damage it with the airburst.
Nearby explosions can now fully destroy vehicles if the blast is strong and close enough.
Made unguided missiles from TM-21 Volley create barrages instead of all landing within a very small area.
Made unguided rocket launchers also aim to the predicted positions of units when they are moving instead of current one, although the rocket itself obviously doesn't follow or steer towards the units.
Improve anti-air missiles maneuverability to chase jets better.
Added guided missile target locking time.
Started working on an early version of a damage shader and linked them to the fires, so things actually look damaged and destroyed after some time of being on fire.
Now destroyed vehicles wheel suspension gets damaged.
Improved armor and penetration calculations so units with light armor can be destroyed by heavy machine guns as expected.
Improved damage decals sizes to avoid weird overflows affecting other objects. This will eventually go away completely and use damage shaders for each object.
Made build panel more compact.
Made artillery split their time between bombing strategic areas and bombing any spotted enemy unit. Later you will be able to choose the balance between those, and companies will request those arty strikes on enemy positions instead of attacking any of them randomly.
Made some cool physics debugging tools for my sleeping and fracturing systems. It was extremely useful to find what was causing slowdowns as the game progressed.
Added physics sleeping for a ton of objects that were not sleepable before, which accumulated during the match making the CPU suffer.
Dead soldiers were preventing everything around them from going to sleep too (and over the course of a match there are lots of dead soldiers, usually near debris…)
Improved physics sleeping to take into account newly spawned objects (like debris or fractured objects) and movement between cells properly
Made physics cells smaller to avoid waking up stuff too far away.
All those improvements are extra important because the physics engine ticks at a fixed rate, which means if frame rate drops, suddenly it will execute all the physics multiple times in the same frame, making the next frame slower, executing more times, and the game falls into what's known as a physics spiral of death. All these physics wins should help keep the game running much smoother in version 0.1.10 when I release it next Tuesday.
I also have another two round of physics optimization that will be pretty cool, but it will have to wait until after the next patch, as there are other more important things to do.
I also found a potential future optimization of about 1ms in the main thread, related to a Unity system that shouldn’t be taking 1.2ms as it does right now! If I manage to get rid of that it would be a really nice win.
In alpha 0.1.9, after a while, the game audio would start cracking and making static noises. I had been optimizing the number of voices that play at once, with priorities and distances as expected, but the problem remained. So after a bit more debugging I found that a ton of audio objects were being created in WWise and never freed up. After a while, all those objects started bringing audio thread performance down until sounds started glitching, as it didn’t have enough time to process all the objects in time before the end of each frame, causing buffer starvation. Now I am deregistering objects once they are used, for both one time audio events (shooting for example) and even for ongoing events (vehicle engines, fires) once they are far from the camera. Instead of quickly reaching several thousands of objects, not it stays at around 200 objects maximum, which takes almost no CPU time. Hopefully 0.1.10 won’t have any audio corruption issues and will also save some precious CPU time!
Improved exposure with a small range, and made some indirect illumination and tonemapping improvements to improve contrast.
Settings screen now has 4 tabs: general, graphics, audio and controls.
The new “Audio” tab has a ton of sliders to control the volume of different things in the game.
The “Controls” tab doesn’t have anything in there until I move the control remapping I did before into UI Toolkit.
Planes physics were not using velocity squared for drag. Adjusted all drag forces and engine forces. Improved throttle handling with keyboard. It’s a bit wobbly right now but I will improve it over time.
Added platoon selection panels to the strategic orders for defend area, defend line and arty emplacement, so you can configure which platoons should be part of it.
Now you can actually draw the areas for the arty emplacements.
Showing relationships between orders and companies.
Showing relationships between an echelon and its members
Improved mip map selection a bit to prevent some very low quality textures appearing sometimes. I think it will still some sort of fix from Latios framework side.
Small ocean improvements.
Fixed: Weird map generation issue where sometimes generated maps would miss part of the terrain meshes.
Fixed: Soldiers and other units could accidentally destroy themselves with their own projectiles when physics lagged.
Fixed: C-RAM and DSAMS don’t have an animation while building.
Fixed: When drawing strategic orders, “Escape” shows pause menu instead of canceling drawing
Fixed: Cars and other objects sometimes appeared to be floating (outdated positions)
Fixed: Camera could go veeery far away from the island and be hard to come back.
Fixed: You could fly away in a plane very far away from the island and get lost forever.
Fixed: Reduced MALT weapon penetration that was set to a high default.
Fixed: Zooming in with scroll wheel causes camera to slide on the ground very fast and end up somewhere else!
Fixed: Zooming out moved the camera a bit higher instead of back.
Fixed: Timing crash during island generation when computer is very slow.
Fixed: Timing crash when regenerating navigation mesh tiles after objects fracture.
Fixed: Lonely unit indicators showing up in the middle of the island
Fixed: heliports weren’t producing helicopters.
Fixed: Some issues during island generation causing overlapping areas and roads.
Fixed: Problem with units choosing targets for a specific weapon and then trying to use a different one to shoot at that target, which would sometimes cause them to use the wrong weapon or fail to shoot (for example when trying to use an AA missile to lock onto a ground vehicle)
Fixed: target locking was taking into account visibility of the aiming point and not the actual target.
Fixed: Camera positioning for scorpion launcher on Charly IFV in first person.