Graphical Splendor in Age of Empires III
Screenshots: click here
Let’s start with a humble musketeer, who’s role on the battlefield is to stand around long enough to get a few shots off before he’s inevitably blown away by cannonfire. If a musketeer is hit by an enemy musketball, and your 3D card is powerful enough to do it, his torso will deform as he’s running so you can actually see the bullet impact. His hat and backpack and musket are also separate models attached to him that can move around on their own. So, when he’s blown off a cliff — and he will be, often, if I have anything to say about it — his hat flies off and his musket goes whirling away. All of this is powered by real-time physics, which I’ll talk more about in a second.
Lighting is a huge part of the rendering engine, and it’s used to create some spectacular effects. Pottinger explained that the team built the engine so that it has a high dynamic range: it’s capable of simulating very bright lighting, with nifty bloom effects. This all sounds like lip-service until you can see it in action. Pottinger showed two screenshots of a cathedral in a city, one with a low dynamic range and the other with Age III’s higher dynamic range. The difference was striking: the first cathedral was almost completely dark on one side and looked like a model on a computer screen. The second screenshot of the exact same scene had bright, realistic light that spilled over and illuminated details on every side of the building. It looked much more natural, almost photographic, yet still stylized and beautiful.
There’s also bump-mapping, a technology that uses lighting to make models appear to have more surface details than they actually do. I never thought I’d see this technology used in an RTS, but there it was, providing detail for Age of Empires III. The artists used it in subtle ways. Bump-mapping gave cannons extra ridges or added ripples in drifts of snow. These effects are understated, but make a big difference.
Naturally great lighting also involves technology for casting shadows, and here the engine lives up to the task. Every object casts shadows on every other object in the game. So, swaying trees will cast soft dappled shadows on the ground below, shading the soldiers standing nearby, who themselves cast shadows on the ground. The Age team used different tricks to soften the edges of these shadows so that they look convincingly realistic.
Age of Empires III also places a huge emphasis on water and how it’s displayed. It’s another one of those big graphical elements that players end up spending a lot of time staring at. At first the team actually had a real-time dynamic water and waves simulation built into the game, but it was too processor-intensive, and hard to localize on such big giant maps. They ended up finding a way to pre-compute different wave patterns, which may not have the “gee whiz” factor of dynamic water but which look incredible anyways. Water can be rough and choppy or smooth and glassy depending on how the map artists want to render it. Dynamic reflections ripple on smooth water surfaces, a touch that really adds to the overall look.
Rivers in the game flow in the proper direction, with clever little details like little pieces of flotsam that drift with the current. Small rocks might also jut out in the middle of a waterway, with current visibly rippling around them.
Effects like smoke are also rendered with subtlety and realism using a particle system. There’s even invisible ‘wind’ on every map that blows everything consistently. Curling white trails of smoke from cannons, campfires, or chimneys twists in the wind. Particles go flying whenever there’s an explosion: cannonballs will plow into the ground, kicking up dirt. Or debris will fly into the water, creating great big splashes. Age III programmers were able to create a lot of nice subtle effects with this particle system.