Pushing PC CPUs Harder
Early in the week, I had the opportunity to sit next to Mike Simpson, creative director at Creative Assembly at a dinner hosted by Intel. The company is responsible for the Total War series of grand historical strategy games. The latest game in the series, Napoleon: Total War, just hit the street, and can make full use of all six cores on the current Core i7-980X. I mentioned this briefly in the Day One report, but had the chance to quiz Simpson about how the game uses all those threads.
Having so many threads available enables multiple different animations of the soldiers during real-time battles. In past games, if you zoomed in on a battle between units, the up-close action would seem robotic and repetitive, as all of the soldiers would execute the same animation. With Napoleon, there are a large variety of individual combat animations, so combat looks more realistic.
Simpson noted that games are still probably an order of magnitude away from replicating a truly realistic scale. Currently, the game engine can support up to 20,000 units in a battle. That’s still well short of the quarter million combatants at the Battle of Waterloo, all packed into a few square miles of terrain.
Scaling Civilization V
Recently, Firaxis and 2K Games announced that the latest title in the venerable Civilization series, Civilization V, is under development. The game looks to substantially reboot the series, taking inspiration from another classic PC game, Panzer General, in its approach to combat. Only one unit per hex will be allowed, and the shift from squares to hexes will substantially reshape movement. Additionally, a resource like iron or horses can only support one unit, so spamming hundreds of units is out of the question.
Other changes include sharing research costs (instead of trading specific technologies) and the addition of a separate, global strategic AI “personality” for each AI leader. The game will still support hot seat, play-by-email, LAN, and online multiplayer, and will be highly moddable.
The limit of one unit per hex doesn’t mean the animation budget has decreased. Each unit is now represented by squad-like arrangement of many animated figures, each of which features a fixed number of hit points. So, the graphics engine needs to be substantially enhanced.
One of the more interesting tech sessions was also hosted by Intel, and featured Dan Baker, the graphics lead for Civilization V. He pointed out that Civilization IV’s graphics engine was actually CPU-bound, and many systems would start to see serious frame rate degradation as the unit count on screen approached 100.
So Firaxis’ development team threw out the old engine and Baker re-architected a new graphics engine from scratch. The idea was to make the graphics engine smartly threaded, not simply task threaded. The new graphics engine spawns numerous small jobs, which make more efficient use of multi-core CPUs. Aiding this effort is a new message-passing architecture, in which the main game engine communicates with the graphics subsystem through messages. Messages can be prioritized, and even serialized as needed.
Interestingly, one of the key discoveries was the need to completely discard memory allocation. Once this was done, the CPU spent much less time waiting for memory. Also, DirectX 11 will be a big benefit for users, even if they don’t have DX11 capable hardware. The API itself is much more heavily threaded, and even DX9 and DX10 hardware users will see performance increases with DirectX 11.