By Al Giovetti
Support The Computer Show and get paid to surf the web. Click on this Big Bang ad!
Drakan Order of the Flame Interview with Stuart Denman
Alfred C. Giovetti (AG): We welcome to our show Vice President and Lead Programmer for Surreal Software, who will be discussing their new product Drakan Order of the Flame. Stuart Denman. Thanks for being with us and sharing with us this great information on a brand new game
Q: Please tell us about the core development crew for DRAKAN Order of the Flame; who are the key people involved?
Core members in technology (programming):
Stuart Denman: Vice President of Surreal and Lead Programmer on DRAKAN Order of the Flame. Stuart architected the engine and tools and mostly works on low-level engine and tools design such as 3D rendering, animation, optimization, and everything else associated with the technology used in the game.
Tim Ebling is Surreal's "digital physicist." He works mainly on character controls and other game programming and physics tasks.
Armen Levonian works on the single-skinned skeletal animation and inverse kinematics system. He also takes care of our custom tools and plug-ins.
Shaun Leach works on AI and game programming, including 3D path-finding and enemy logic, as well as tool and engine related tasks.
Satish Bhatti is Surreal's networking deity. He created a low-bandwidth system that allows smooth, interpolated position AND animations to be fully synchronized over the Internet.
Q: What programming languages and 3D rendering packages were used to develop the Surreal Engine, used in DRAKAN? Why did you choose these tools in particular?
For programming, we are solely using C++; everything is object-oriented. The engine is the cleanest piece of code any of us have worked on, mainly because I'm pretty strict on standards within the team. We've found that C++ can be just as fast as C, just as long as you know what you're doing and don't overuse those features in C++ that are slower. Microsoft VisualC++ is our compiler-of-choice.
For 3D modeling and animation, we use a combination of 3Dstudio MAX and a custom modeler for modeling and texturing, along with SoftImage for animations. We also have custom plug-ins for these packages.
Everything is then put together in our level editor, which has almost as many features as a program like Photoshop. This is where we build the worlds and set up entities in the game and change their behavior.
Q: Now that we understand the proverbial elements of the 'primordial ooze', can you tell us a little about the Surreal Engine in general? What is it capable of that other systems have not been able to achieve?
The Surreal Engine can render both tight indoor and vast outdoor environments seamlessly (all using the same core technology, Layers – see below). Most people think of outdoor environments as those found in Tomb Raider or Unreal, but DRAKAN has a very different feel because you can fly up so high. The worlds in DRAKAN are amazingly expansive. This also means that the engine needs to be able to render armies of enemies on the ground while you're flying.
The Surreal Engine is also VERY flexible. The game programmer is allowed to do so much more with the system that with other engines. World and model meshes can be morphed and tweaked real-time in the game without issues; even the skeletal-based characters can be chopped up, warped, smashed, vaporized -- whatever we want!
Q: Rumors and bits of information have been released about the layer-based level technology used in DRAKAN. Can you explain this system in its entirety, to define it for the public? How does it differ from conventional 3D level design, and what environmental effects can you produce with it?
I can't delve into too much detail, but I can give an overview. A layer is essentially a piece of geometry that we lay down in our tool, which can be morphed and shaped. Layers combine with each other to create a level. The geometry that is created is more organic than using other polygon-based modeling methods. Any layer can also be morphed and shaped real-time in the game because the system doesn't use fixed visibility methods like BSP trees or some Portal methods.
Q: In more mincing terms of polygon count and frame rate, where does the Surreal Engine stand?
Well, this is very dependent on machine speed and hardware being used, but there are no limits to the number of polygons the Engine can push. Because our landscapes and characters have to be so organic, we tend to draw more polygons than other games. Typical performance on say a PII 300Mhz with a Riva128 would be 30+ FPS, rendering about 100,000+ actual polygons per second (after back-facing and other culling techniques).
Q: Following up on that, what next-generation 3D accelerator features are you making use of? What benefits will users see from Voodoo 2, the new TNT boards, et cetera?
DRAKAN supports a ton of next-generation hardware features. First off, DRAKAN loves to suck up those extra polygons, so the Surreal Engine will scale the polygon counts for next-generation hardware. DRAKAN will also be utilizing multi-texture blending via DirectX 6.0 so it will take full advantage of the Voodoo 2 and TNT's dual blending chips. Multi-texturing allows us to do colored light-maps, detail textures, and even bump-mapping.
Q: DRAKAN allows players to climb atop a great red dragon and take off at any time, engaging in aerial duels as well as ground-based combat. Can you delineate some of the features and capabilities of the flight engine itself?
Taking flight on Arokh doesn't change anything in the way the Engine renders the scenes. The Engine just looks at the scene and notices that objects that are now very far away no longer need to be drawn with the same detail as before, so it scales down the number of polygons (we call this the level of detail, or LOD). This is what allows us to render whole armies of enemies from above, all in 3D, and all animating using the skeletal animation system. The Engine uses the same skeleton and animations for any level of detail.
Q: This type of flight-combat hybrid has never been realistically achieved before. What did you undergo to accomplish this in DRAKAN?
We had to think at a larger scale and from two points of view. Everything has to look good when you're controlling Rynn on the ground and also from far away (in the air). This was definitely the biggest challenge. Plus, we had differences in game-play for both situations, so enemies have to behave differently depending on whether they are in close combat (hand-to-hand) or running from Arokh's fireballs (ground-to-air). Our AI doesn't just attack, they have defensive maneuvers depending on their state, so if they are hurt and know they can't defeat you, they will cower and hide behind trees.
Q: It has been well publicized that DRAKAN will make use of a skeletal animation system. Can you define "skeletal" and "single-skin" technology? What benefits will this infer upon the fluidity of character movements, and how does this system compare to others being developed?
A single-skinned skeletal system simply means that each character has an underlying bone structure that is "wrapped" by a single-skin, real-time and in game. This differs from Quake2 and Unreal's vertex-interpolated animations because in our system, it's the skeleton that animates, not the skin itself. Because of this, our characters can play multiple animations at the same time in different parts of their bodies, and at different speeds! We can also break off parts of characters and influence (rotate and stretch) bones in A.I. This is how we make characters look at things in their environment, and the means by which Rynn reaches for and grabs nearby objects. None of these actions are pre-animated, and you can't do this with a vertex-interpolated system. Games like Tomb Raider use a skeletal system, but it's not as flexible and there are horrible seams between the joint because it's not single-skinned.
The hand-to-hand combat system in the game takes full advantage of the skeletal system and presents a never-before-seen dynamic quality to combat. The system allows the player to attack at any time: while running, jumping, crouching, turning, etc. The animators don't have to do different attack animations for every special situation. Except, of course, those full-body spin-flip-jab moves.
Q: And then further, can you explain what the included Inverse Kinematics chain-based animation structure will mean to the motion dynamic in the game?
Inverse-kinematics (I.K.) allows our characters to reach for any point around them. This means the animators don't have to animate these kinds of situations (for which there are thousands of possibilities). We use the I.K. system to reach for switches and levers, to pick objects up, and to match feet to the ground so the characters don't float or penetrate the landscape.
Q: What type of lighting system does the Surreal Engine utilize, and can you give an example of its effects on the visual experience?
The Surreal Engine supports ambient, directional, point and spotlights, which are all colored and dynamic. This means we can move them in real-time, and every in-game object's lighting will react accordingly. The Engine also supports dark-lights which take away light. This is used for some special effects like a magic sword that absorbs souls and light. All lighting effects are physically accurate, meaning if Rynn is standing in front of a short torch, the underside of her chin will be lit brighter than her face and the top of her feet will be lit. She will also have a shadow cast behind her on the wall from the torch and her back will be lit up by any lighting behind her. This really makes the characters stand out and look more 3D; it has to be seen to be believed!
Q: Can you explain a little about the STOMP in-game cinematic system? Perhaps illustrate how the player can interact with a pre-scripted event, within the new boundaries of the engine?
STOMP is our sequencing technology for in-game cinematics, but it's really a much more general system. STOMP can take control and change the properties of any entity in the game; it could be the player, a camera, an NPC, or a tree, it doesn't matter. STOMP also allows us to combine AI with pre-recorded sequences, so we don't have to record door opening, for example, we just let the doors open themselves. Cut-scenes look very realistic because if the player walks Rynn in to a scene carrying an axe, she will be holding the axe while talking. Birds will fly around in the background (AI) while a farmer gives Rynn a quest. STOMP is so flexible; it can also be used for puzzles and mechanical devices, but so subtle that the player will have trouble deciding what is programmed, and what is pre-recorded!
Q: What is your recommendation for hardware, in order to run a title like DRAKAN?
We recommend a PII 233Mhz or higher with 32 MB RAM and at least a 3Dfx Voodoo card. To really take full advantage of all the visuals, we recommend a next-generation 3D hardware like Nvidia TNT or 3Dfx Voodoo2. Of course, DRAKAN also runs beautifully on a P166, 3D accelerated.
Q: And then finally, are there any other key technical features that will set DRAKAN apart from the other heavily polished action games of 1999?
Multiplayer should definitely be a new experience. We've managed to not only synchronize player movement, but also created a system that keeps the characters playing the correct animations for different situations. Third person hand-to-hand combat is definitely a new experience for the Internet, but then again, so is mounting a fire-breathing dragon and doing battle by air!
For More Information about DRAKAN Order of the Flame, call Psygnosis at (650) 287-6500
ReferencesDrakan Order of the Flame Interview with Alan Patmore