We have worked to multi-thread as much as possible. Rendering setup for Units, particles as well as audio and some other some other smaller subsystems, have been multi-threaded.
With regards to the update logic (animations, AI), features such as multiplayer expect deterministic results, the engine made assumptions about serialised computed states. There is also an overhead in tracking multi-threaded state which negates the gains for the most part at normal battle sizes. As such there will still be some bottlenecks in specific battle setups or scenarios although they should be improved somewhat from the original.
We have also spent time on other optimisations, I've provided some examples below:
Unit rendering optimisations whilst increasing complexity (e.g. unit ethnicity variation):
*Batching of draw calls
*Instancing
Buildings
*Instanced and reworked the assets
*Fully implemented LOD system
We also spent significant time on campaign rendering
*New mesh and texture setup (as previously discussed in modding response).
*Texture streaming system
Although we are using the original game engine (with significant edits) we have written an entirely new renderer which is plugged into the original engine, the renderer now supports:
*A modern post processing stack
*SSAO
*Realtime reflections
*Volumetric clouds, improved sky and atmospheric effects leveraging trueSKY.
*High quality shadows.
*DoF, Heat Haze, Bloom
*Colour grading
We have plan at release or shortly after to expose many of the renderer parameters so that modders can modify the look of these effects and ship them as part of their mod.
Replied to
Will the game run on multiple threads? The original runs slow in large battles even on modern multi-core CPUs