Epic Games was at the Game Developers Conference to show off Digital Extreme's Unreal Tournament 2003 and demonstrate the latest of its Unreal engine technology. The company has also announced the Unreal performance test 2002, a new performance benchmarking system based on the company's new engine. The new performance test is designed to stress both CPUs and GPUs equally, and it should be released in the next month or so. According to Epic, the new test contains content that's a thousand times more detailed than the original Unreal Tournament from 1999.
We were actually able to take an up-close look at the engine at the GDC. The centerpiece of Epic's technology demo was a series of scripted real-time sequences that showed the graphics engine's ability to handle large, incredibly detailed environments, as well as effects like blurring, bump mapping, and real-time player shadows. In a separate real-time demo, Epic's lead designer, Cliff "CliffyB" Blezinski, took the controls to show how Math Engine's Karma physics engine has been integrated into the Unreal engine to allow for extremely realistic physics on vehicles and player models.
As we've seen in Epic demos at the 2001 Game Developers Conferences, the cornerstone of the Unreal engine's next-generation technology is very high polygon counts produced using static mesh objects. To keep performance reasonable, these static meshes can be accelerated using the hardware transform and lighting (T&L) feature in most current graphics cards (starting with the GeForce256 and Radeon generation of cards). In the latest version of the Unreal editor, Blezinski showed how extremely detailed environments are built up without using a lot of memory by creatively reusing architectural elements that are only stored in system memory once. At the press of a button, the editor highlighted how one sci-fi tunnel level reused a metal bulwark object and a mass of curved pipes, but the recycling of objects wasn't obvious without the highlighting.
Near the end of the scripted demo, there was a firefight scene that dramatically illustrated how parts of the Unreal technology could come together to produce the sort of drama you'd expect from a good action movie. In the scene, small squad of space marines approached a lightly guarded entrance to an installation, and individual soldiers smoothly crouched behind cover on one side of the approaching bridge. They took out a couple of guards, who crumpled to the ground depending on how they were hit by gunfire--an effect made possible by the Karma physics system. When a guard in a mobile suit stepped out to stop the attack, a rocket went astray, hitting a stalactite, which in turn crashed down into the bridge. The bridge explodes somewhat differently every time the demo runs, because the physics engine determines how the debris collides. As a finale, one soldier from each side ended up in hand-to-hand brawl in the chasm below. A punch sent a helmet flying, the soldiers tussled on the ground, and they exchanged a series of vicious blows until one ripped the other's arm off. The sophistication of the skeletal animation system and ability to take character models apart by component elements added a lot to the sequence.
What was even more impressive was the demo of the new physics system. In an outdoor environment with smoothly rolling terrain, Blezinski jumped a jeep with full suspension over hills and drove through the engine's new procedural water, leaving a rippling wake in the jeep's trail. In a complex vehicle like a jeep, the physics engine models each moving piece as a simple Newtonian object with properties like mass and inertia and connects them with constraints that model springs and joints. For efficiency's sake, the physics engine uses simplified geometry to calculate the collision and interaction of objects, so a vehicle can be displayed at extremely high levels of polygon detail without slowing down a CPU with lots of unneeded physics processing.
A few character models standing around an indoor level served to demonstrate the engine's "ragdoll" physics. When a character dies, the ragdoll physics takes over for the standard skeletal animation system, letting the character model's limbs move around joints that are constrained to normal ranges of movement. A sniper shot to a character model at the top of a tower gave the model enough of a push to knock it over, tumbling down and colliding into objects on the way. This is all handled in real-time, so each death fall was dramatically different. Even better, the ragdoll system works even between multiple character models, as we saw when two models fell down stairs together, rolling one over the other, limbs all mixed up. The Karma physics engine is a third-party product by the UK-based Math Engine, and while it's been made to work seamlessly with the Unreal engine, it also works with Criterion's RenderWare engine. Interesting enough, Karma's KAT tool can actually import the skeletal data produced by a game's 3D artists for regular animation purposes and automatically simplify that into a system of joints.
Before we see this system make its way into an Unreal-powered boxing game that models real-time reactions to punches, Karma has some work to do. The physics engine is currently unable to work with the animation process, so a model can't move with game animation after using the ragdoll physics. The problem is that there are too many possible ways a character can end up--imagine all the different possible positions a real person could fall down into--and an animation needs to assume some starting position. This is a problem Karma is working on, and they expect that by putting some constraints on how far the physics move a model, it'll be easier to transition back to animation. First, they expect to see something like this work for ranged combat, modeling how a character reacts to bullet impacts before resuming its animated actions. However, boxing and wrestling games may be able to use future extensions of this technology. Karma expects to show how physics and animation can work together by next year's GDC.
There's been some confusion about how to differentiate between versions of the Unreal engine that different third-party developers are using. As it turns out, the Unreal engine that can be licensed by third-party developers includes new features nearly as soon as Epic develops them internally, so all companies that license the engine--including Epic's close development partners working on Unreal Tournament 2003 and Unreal II--all have access to the same technology. But at some point in the year before a game ships, developers generally choose to stop updating the version of the engine they're using or may selectively add features. What some have called the "Unreal Warfare" engine generally refers to how the engine has taken huge leap up in handling extremely high polygon counts since Unreal Tournament, but games based on this engine generation may or not match features of official Unreal games. "Unreal Warfare" is itself the code name of an Epic development project that's not connected with Unreal Tournament 2003 or Unreal II, though the company declined to divulge any further information on this game.
Stay tuned, as next week we'll have a video interview with Cliff Blezinski in which he talks about the upcoming Unreal games and Epic's engine technology.