It's free to join Gamasutra!|Have a question? Want to know who runs this site? Here you go.|Targeting the game development market with your product or service? Get info on advertising here.||For altering your contact information or changing email subscription preferences.
Registered members can log in here.Back to the home page.

Search articles, jobs, buyers guide, and more.

by Stuart Denman
Gamasutra
April 18, 2000

This article originally appeared in the
March 2000 issue of:

Printer Friendly Version

Letters to the Editor:
Write a letter
View all letters


Features

 

Contents

Origins of the Team

What Went Right

What Went Wrong

Onwards to the Next Projects

What Went Right

1. Success with graphics

There’s no doubt Drakan had an ambitious design, so the graphics had to be top-notch in order to make the game world believable. The amount of art and animation content we would need mandated careful planning, lest our schedule slip. The solution to the problem was what I call “flexible reuse.” In addition to the sharing of texture and geometry data between objects, Drakan’s engine (code-named the Riot engine) was programmed to allow arbitrary scaling and rotation of art content. By assigning different behaviors and combining multiple art components, we were also able to create totally new structures with minimal effort.

Because we dropped 3D software rendering, we knew all of our textures could be created in true color. This vastly improved the look of Drakan, so much so that we decided to switch from using palette-based textures to true-color textures, which required quite a bit of reworking on most of the textures in the first few levels. This decision is just one example of Surreal’s aesthetic fussiness. Often if a few people thought that something within the game didn’t look good enough, it would end up getting redone until everyone was satisfied. The benefits can be seen in the final product, but our schedule sometimes suffered as a result.

Colored conceptual sketch
of a Wartok grunt.

Though the artists created the objects and buildings in the game, the designers were responsible for placing the objects into the game and gave immediate aesthetic and game-play feedback to the artists. They also were responsible for building the landscapes and caves, which defined the overall level flow. This process evened out the workload between artists and designers, but it required the designers to have a good artistic sense. This can be seen in the very fantastical landscape architectures that the designers constructed and then painted with tileable textures. The textures were drawn by the artists to have many variations and transitions, which added to the organic nature of the terrain.

2. A green team with fresh ideas

Drakan had an advantage that many large game development companies sometimes overlook. It had a young team, highly motivated, bursting with ideas, and ready to take risks. The ideas were unique and motivated by the desire to set Drakan apart from the shooters and Tomb Raider clones (although this was still difficult given the tendency of the gaming press to compare games to one another).

The most original idea in Drakan was the combination of dragon flight with sword and bow combat on the ground. This fundamental idea formed a developer’s carnival for more innovative ideas and forced the player to strategize in a way not often seen in action games. The relative vulnerability of the female rider contrasted with the powerful dragon required careful thinking by the designers. Levels were created with restrictions on the dragon’s ability to go places. Rynn could enter caves, but would come across areas where the dragon’s flying abilities or strength would be necessary to proceed. The player (as Rynn) would then have to find a large door or other method to get the dragon inside the cave system. In this world of magic, creative ideas for special effects are very important, and these tasks were ideally suited to people who were not afraid to do things “outside the box.”

3. Engine and tools

Many recent games have shipped with engines that simply cannot handle the target platforms and the breadth of 3D hardware that they claim to support. I believe this is primarily due to a lack of planning and preparation for current and future technologies (not having scalability, for example), and a rush to focus on the game’s design and art. No time is given to solidify the underlying technology, which should ideally be done before the designers and artists even start constructing content. If the designers spend half their time waiting for the game to load, or dealing with unplayable frame rates, the final game will only be half as good as it could have been.

Regarding the game’s code, if ever there was an example to put the C vs. C++ argument to rest, it is Drakan. There simply are no performance reasons not to go with C++, as long as the programmers understand what is happening under the covers. Object-oriented code generates so many benefits, especially for an engine that you plan to build on for many years to come. In Drakan, the game-specific source code and engine source code were separated into different projects, so no game-specific code was allowed in the engine. The game-specific code included such features as the user interface, AI, and game entities, and contained no platform-specific code.

Surreal’s in-house level editing tool showing the
real-time 3D editing window in the center and
top-down layout view in the upper-left.

The engine is broken up into many classes that handle various engine tasks and are the interfaces by which the game code accesses the engine. For instance, there is a sound class for playing sounds, a texture class for working with textures, a sequencing class for playback of scripted cutscenes, and numerous others. These also form a framework for future porting of the system-specific functions to other platforms. The stability of this system can be validated; we are currently creating additional games based on the Drakan engine with little or no code changes to the engine project. To further reduce the debugging time, we put coding guidelines in place to ensure the consistency of code between programmers, and created classes to catch array boundary violations and memory allocation problems.

Drakan has no scripting language. Instead, the programmers create modules that are visually connected by the designers to create scripted events in the game. Such modules include triggers, switches, timers, counters, and more complex modules such as doors, enemy creatures, and weapons. The modules have programmer-defined parameters associated with them. A parameter can be almost anything: a number, a list of options, a sound, a texture, another module, and so forth.

The system meant designers could tweak parameters and combine modules in ways that the programmers never intended. One particularly nice example was an effect that was originally created for the “ice sword.” The effect was made up of a number of particles (originally snowflakes) that would collect for a certain amount of time on the mesh of an affected object. After a time, the particles would fall to the ground and stick for a bit. All these properties, from the timings to the particle texture, are configurable. With this feature at their disposal, the designers created glowing auras around ghosts by increasing the particle size and making the stick-time infinite. They created snow that landed on invisible platforms to guide players across them. The snow effect was attached to arrows to drop ice behind them as they flew. All this from a small bit of programming.

The engine also has an efficient caching system, so it’s able to handle hundreds of megabytes of data on our minimum system requirement of 32MB RAM. The two main characters, Rynn and Arokh, total more than 20MB of animations, plus 12MB of sounds (including in-game cutscenes). To pull this off, the system keeps the most recently used sounds or animations in the cache and can flush memory that it hasn’t used in a long time. Further reduction of memory usage is achieved by sharing animations between characters with the same skeleton, even if they have completely different skins. The system only loads the data that it needs, as it needs it. This is important during development, as artists and designers are prone to leave unused textures, sounds, and models in a database. The result is good engine performance during development, which is also representative of the final product.

Rynn’s highest polygon count was only 538. Single-skinned characters such as Rynn generally look much better with
fewer polygons compared to the segmented characters
traditionally used in most game animation systems.

We tried to ensure that the engine and tools always displayed to the artists and designers something that was representative of the final game (WYSIWYG). The best example of this was our real-time 3D editing system. The engine was integrated into the editor, so any geometry, texture mapping, or lighting changes made by the designer would be immediately reflected in the 3D view. The importance of this aspect of the tools should be emphasized because it gave the designers the ability to tune levels and game play very quickly and with a minimum of guesswork.

4. Compelling design

A good design will not only sell a game — it can also help smooth the development process. The Drakan world has immense possibilities, so new ideas were born easily within its scope. This kept the team highly motivated, as there were always innovative things to do with the genre. The varied environments gave a wealth of new things to work on for the art and design team, and were an ideal canvas for programmer invention.

Concept sketch of the Dark Union sailing ship.

The design also kept Psygnosis very interested. Drakan became its top PC product, and it was comforting to us as developers to know that our publisher was behind the product. Psygnosis saw the marketing potential in a beautiful female character combined with a fearsome, fire-breathing dragon and the press latched on to the concept with excitement. They could market it to Tomb Raider fans, AD&D fanatics, and even 3D shooter addicts.

Even the most brilliant design would be difficult to implement lacking a proper design document. The 175-page Drakan design document contained outlines for the entire game, including all AI behaviors, weapons, and level flows. It served its initial purpose well, and was a blueprint for our lead designer’s vision. The document was vital to the development team, especially when it came to scheduling, creating tasks, and communicating with the publisher. But as you will read in the following “What Went Wrong” section, feature creep overtook  the project halfway through, and the document never kept up with the changes. A design document should always be maintained throughout development to preserve it as a useful resource for the team. Fortunately, the team could always rely on Alan to explain anything or to fill in any holes in the design document.

5. Indoor/outdoor environments

Morphing walls were created by assigning special behaviors to the world geometry.

One of the major technologies that set the Riot engine apart from the other landscape engines was its ability to render both indoor and outdoor environments using the same engine. The benefits to game play were huge because we could do arbitrary cave systems, arches, overhangs, and other structures that were perfect for a fantasy game. The “layer” system that the landscape was created with was ideal for massive outdoor environments and allowed the designers to create very organic-looking worlds. Rectilinear structures such as buildings and objects were created using arbitrary models imported from external 3D modeling programs. Although these models were not included in the visibility calculations, the layers were included and were nicely suited for use in the visibility culling of large environments. Because the layers were small height fields that made up the ceilings and floors of the surroundings, they took up very little space in memory. This meant that the levels could be vast, and it helped give the player a sense that there was a living world around them.

________________________________________________________

What Went Wrong


join | contact us | advertise | write | my profile
news | features | companies | jobs | resumes | education | product guide | projects | store



Copyright © 2003 CMP Media LLC

privacy policy
| terms of service