Postmortem: Epic Games' Unreal Tournament
June 9, 2000 Page 2 of 4
What Went Right
1. Smart internal marketing team
At the front of Epic's public relations were Mark Rein and Jay Wilbur. Their job was particularly difficult during the development of Unreal Tournament. The media perceived us as impossible upstarts, taking an engine with terrible net-play and attempting to compete against id Software, the industry multiplayer champion. Both Mark and Jay fought hard to win over supporters in the online and magazine press. Mark made sure that the team stayed professional and that everyone was saying what he needed to be saying. Jay hunted down potential engine licensees, and helped establish a level of curiosity among the community and media.
Unreal Tournament was able to garner significant magazine coverage because of the ongoing "Quake killer" debates. Mark and Jay worked to turn the initially negative public response into something positive. While we felt that our game would definitely stand on its own, we had to ensure that the positives were being clearly broadcast. Epic was very careful to avoid mentioning Quake 3: Arena whenever possible, keeping the focus solely on Unreal Tournament's features and staying away from comparative previews. Most interviews and previews would ask us the inevitable "What about Quake 3?" question, to which we tried to answer with complete respect for id's project. Everyone knew that Unreal Tournament and Quake 3 would be pitted against each other. Mark and Jay established very early on that the competition would be friendly.
The characters in Unreal Tournament were designed to be futuristic pit fighters. The selection of characters include ex-military specialists, criminals, and alien warriors such as the Necris Phayder Assassin pictured above.
2. Liberal internal structure, open design discussion
The laid-back environment that both Epic and Digital Extremes fostered greatly enhanced the quality of Unreal Tournament. Everyone was free to suggest or implement an idea.
Programmers had as much design freedom as anyone else on the team. Cliff Bleszinski (Epic) and James Schmalz (DE) were the lead designers of their respective companies and served as content filters. They worked towards focusing the ideas put forth in the meetings. In addition, both of them contributed significantly to the final game content. James designed two of the player models and created many skins and faces, while Cliff designed many of the game's best maps.
Team members were allowed to come into work when they wanted and stay however long they felt like being there. The only requirement was that every member attend a weekly design and focus meeting. This system worked because Epic was very careful to hire mature, dedicated employees and the core development team was kept small. The open hours often saw team members working a 24-hour day, sleeping on a couch for six hours, and then working another 24-hour day.
In addition to fostering a hardcore work ethic, the system created a sideways information flow. A programmer would go straight to the artist he needed something from, instead of through an art director. The fast communication allowed the programmers to stomp out bugs relatively quickly and the level designers to talk directly to the texture artists. An example of this was the single-player ladder system. Shane Caudle designed the art and I wrote the code. The fewer people we had to consult in order to complete the task meant a much faster turnaround. Everyone participated in giving the "coolness factor" thumbs-up or thumbs-down, but the actual development process was intentionally kept thin.
3. Direct communication with the gaming community
Nearly every Epic and Digital Extremes employee frequented message boards dedicated to the subject of Unreal and Unreal Tournament. The majority of Epic employees were drawn directly from the gaming community, either through mod projects or independent game work. Keeping in contact with the gaming community allowed Epic to focus on the target audience during the design process.
Beyond our direct communication with the Unreal community, we also trolled Quake 3 message boards, reading the discussions of the fans of our lead competitor's game. Learning what people liked in a first-person shooter and why they liked it helped us change the marginal multiplayer experience in Unreal to the much faster paced game play in Unreal Tournament.
The gaming community can really help set the tone for your game. When Unreal was released, the online community became extremely vocal and angry about the state of the net play. While most magazines had reported positive experiences with Unreal's single-player mode (reflected in positive reviews), the media eventually came to reflect the cries of the hardcore gaming community. This was in part because the net play was poor, but also due to the fact that many members of the gaming media are themselves hardcore game players and visit those same message boards and community outlets.
After the release of Unreal Tournament,
the Epic team started working on a free
bonus pack containing additional models.
These are concept drawings of the Skaarj
Warrior model for the pack.
We also learned that while the hardcore community is very vocal, it is also relatively small. Designing a game to appeal to that community alone is a critical mistake. Early in 1999 we started work on tutorials for each game type. The tutorials are far from definitive, but they did cover the basics of playing a 3D shooter. Testing on the parents and grandparents of team members demonstrated that the tutorials were useful for attracting and keeping new players.
This community-mindedness greatly contributed to the quality and completeness of Unreal Tournament. We had a very good idea of what players wanted. As I mentioned earlier, we often posted controversial design questions on public message boards to gauge public reaction. The results of these polls were taken into consideration when the feature in question was implemented.
4. Strongly object-oriented engine design
The Unreal Tournament engine's strong object-oriented design makes it extremely modular. This modularity allowed our programmers to make massive changes to parts of the game without affecting other features. Each subsystem is connected to other subsystems through a clearly defined interface, and platform-specific code is consigned to separate libraries. Creating the Linux port, for example, was simply a matter of rewriting an input and sound device and writing a Linux version of the platform-specific library behavior.
Throughout Unreal Tournament's development, Tim Sweeney and Steve Polge worked on improving the networking code. The modularity of the engine meant that their work didn't disturb anyone else's work. Some features, such as Jack's decal system, were added very late in the project. The decal system added a lot of depth and feedback to the game, and took less than a week to get working and fully debugged. Erik de Neve's mesh level-of-detail code touched only a handful of source files.
Every weapon in Unreal Tournament has two distinct firing modes. This made designing and balancing each weapon twice as complex as a normal first-person shooter.
This ease of use is also reflected in the engine's scripting language, UnrealScript. Calling it a scripting language is a misnomer; it's actually a lot like Java. Weapons, pickups, level events, AI nodes, and other world actors are all independent objects. A weapon can be added to the game without touching any source files but the new object definition. This highly extensible language meant that each programmer could add extensive new game-play features with a very limited set of potential side effects. In the end, 90 percent of Unreal Tournament's game-play code was written in UnrealScript.
The Unreal Tournament engine's modular package system coupled with UnrealEd makes the game a mod-creation system out of the box. We designed a lot of our code with amateur extension in mind. Everyone at Epic recognized the value of the mod community and we wanted to make the game attractive to new artists and programmers. Constructing game code in this way made it much easier for us to prototype our own new features. Early UT weapons and pickups were child objects of Unreal. The two games can easily coexist even now.
5. Good Timing
As I said earlier, Unreal Tournament was developed in the same time period as id Software's Quake 3: Arena. The two games promised to be of the same genre and the two companies were known for a high level of competition. While we tried to avoid the "Quake 3 vs. UT" comparisons, they ultimately worked in our favor. The high level of public interest in the new engine war greatly increased our visibility. Magazines and web sites often posted split previews instead of focusing on one game in particular. Interviews with id employees would always lead to Unreal Tournament questions and vice versa.
Unreal Tournament took almost exactly a year and a half to develop, giving the team a lot of time to pack in features. We didn't have to focus on writing an engine from scratch, so we were free to focus entirely on improvements. At this point, we've released three patches for Unreal Tournament that have solved a handful of relatively minor problems. The team has had a lot of time available to spend on adding even more features to the game since its release, instead of fixing outstanding issues. By the time this article hits the stands, we'll have released our first bonus pack: a free collection of new models, maps, and game-enhancing features.
Page 2 of 4