Empire: Total War is going to be upgraded with Napoleon: Total War in February. PC Games Hardware interviewed one of the developers about the multi-core support of the strategy game.
Empire: Total War: The Russian Grenadiers is one of the new units. [Source: view picture gallery]
Sega and The Creative Assembly are currently working on the latest part of the Total War series. Napoleon is an add-on to Empire: Total War and is scheduled for release in February 2010. Some time ago PC games Hardware had the chance to ask Ric Broadhurst, one of the developers, about the multi-core support of the strategy game and what can e expected from Napoleon in this regard.
Ric Broadhurst of the Napoleon: Total War development team at The Creative Assembly. [Source: view picture gallery]
When the game was released there were no optimizations for multi-core CPUs and many customers complained about the poor performance. What was the reason to ship the game without a multithreaded engine and only supply multi-core support via a couple of patches? Which problems did you face during development that led to the poor performance of your technology? What made multi-core optimizations so difficult in the case of your engine?
Ric Broadhurst: Empire: Total War was always designed to be multi-threaded, but getting such a vast game to run stably and not de-synchronise when playing multi-player takes a huge amount of work. Most of the work for multi-threading was complete at launch, but further testing, tweaking and optimising was necessary before we could release it. PCGH:
With patch 1.3.0 you managed to nearly optimize your engine for multi-core CPUs as well as heavily improve the performance of the game with dual and even single core processors (we measured up to 100% performance gain). How did you realize this technical wise? Have you reworked the thread structure? Have you integrated new technology? Did you have to rewrite much of the core code?
Ric Broadhurst: As the engine was already multi-threaded code, some of the performance prices had already been paid and so when it was safe to release it, you got good performance boosts. As part of our usual development process, some further improvements were incorporated giving everyone better performance. One technology that we found very useful for basic multi-threading optimisation was Intel Threading Building Blocks (TBB). PCGH:
Are the optimizations for multi-core support finished now or can some extra performance still be squeezed out of your update technology?
Ric Broadhurst: As the number of cores keeps growing, it gets harder to scale the game to take full advantage of them; technically, the more things that go on at once, the more they need to talk to each other and the more of the extra performance is used in internal communication (synchronisation). The ongoing challenge for us is to reduce the need for synchronisation, thus improving performance on existing machines and further to take advantage of more cores as they become available.
Empire: Total War (7) [Source: view picture gallery]
Will you, for Napoleon: Total War, once again try to improve performance on multi-core machines? Do you once again try to optimize your code?
Ric Broadhurst: We are always trying to balance code improvements with game improvements and this time, we will hopefully achieve both including extending multi-core support and performance to the new generation of CPUs. PCGH:
Can we expect other technical improvements with Napoleon: Total War or does it only supply the player with new content and features? If there will be new or polished technology, can you please go into detail?
Ric Broadhurst: For Napoleon: Total War, we will be working on performance and polish for both min-spec and high-end machines including more processor specific optimisations and streamlining our graphics code paths.