Sponsored By

Postmortem: Defense of the Ancients

In a Gamasutra-exclusive postmortem, some of the key figures behind seminal Warcraft III mod Defense Of The Ancients, now working on the DoTA-influenced League Of Legends for Riot Games, provide a look at the creation of the original title.

Steve Mescon, Blogger

March 19, 2009

21 Min Read
Game Developer logo in a gray background | Game Developer

[In a Gamasutra-exclusive postmortem, some of the key figures behind seminal Warcraft III mod Defense Of The Ancients, now working on the DoTA-influenced League Of Legends for Riot Games, provide a look at the creation of the original title.]

Introduction

Having touched the hands of more than 10 million people worldwide since its inception nearly 5 years ago, Defense of the Ancients, (DotA) is arguably one of the most popular game mods of all time.

Created primarily with the free "World Editor" packaged with Blizzard's amazingly popular RTS game Warcraft III: The Frozen Throne, each new version of DotA is the culmination of tens of thousands of man-hours of work by hundreds of community volunteers.

DotA is an online session-based game where each of up to 10 players chooses a "hero" to play during a 5v5 match. Assisted by computer-controlled units, (known as "creeps"), you can kill enemy heroes and creeps to gain resources and levels that allow you to purchase items and train new abilities for your hero.

The game is won by destroying your opponent's primary structure (Ancient), before yours falls. DotA is typically played online or over LAN in sessions that last about an hour on average.

Drawing inspiration from a popular Starcraft mod known as Aeon of Strife, the first version of DotA was released in the middle of 2003 by an individual known only by his pseudonym "Eul".

In Eul's original DotA, players could choose one of 32 heroes, and hold up to six items simultaneously from a pool of 39 available options. This rudimentary predecessor of the current DotA paved the way for the future innovations that have led to the success it is today.

On May 29, 2003, Blizzard officially released the Warcraft III: The Frozen Throne expansion pack which added a breadth of new features to Warcraft III, including a new and improved World Editor.

This new tool provided map-makers far more options for customizing items, skills, models, tiles, etc. Utilizing these newly released tools, many spinoffs of the original DotA were created with vastly superior sets of features, including the first versions of Steve "Guinsoo" Feak's Defense of the Ancients: Allstars which is the focus of this postmortem.

Guinsoo originally began development on DotA Allstars because he was frustrated with bugs and balance issues in the version of DotA that was most prominent at the time.

His original intent was not to begin a large-scale project, but simply to create a more fun version for himself and his friends. After finding success with these initial changes, he started to enjoy map development more and more, and began expanding his releases.

What Went Right

1. Diversity of content

It was quickly realized that replayability would be the key to DotA's success; it was necessary for Guinsoo to make the game as deep as possible while still working within the limitations of the engine and tools to which he was bound.

This was executed by examining the "fun" elements of gameplay, and expanding on the game simply by adding more choices (and therefore more possible combinations of gameplay). Guinsoo began adding content at an extremely rapid pace, with each individual hero or item increasing the replay value of the game exponentially.

Heroes - By the time Guinsoo released his final version of DotA, there were 69 completely unique and diverse hero options for a person to choose from -- creating over 300 million possible 5v5 matchups.

With every new hero added to the game increasing the number of possible unique matchups, adding heroes was a simple way to enhance the gameplay depth and longevity without having big-company resources. Ideas for new heroes came from Guinsoo's group of close friends, the community forums, volunteer beta testers, etc. Hero names have been influenced by many popular anime, Magic: The Gathering, comics, and so on.

Items - In DotA, items were originally added to create additional ways for you to customize your hero during a session. In the original version of DotA, however, a single gameplay session lasted long enough that most players could get the "best" items for their character in every item slot and still have lots of unused gold left over by the time the game ended.

Guinsoo felt that it was necessary for items to be able to scale with the character, so players had cheap options for the beginning of the game, mid-priced options for the middle of the game, and high-priced options for the end of the game.

Unfortunately, simply adding lots of items for each tier would mean that if you wanted to replace the items in your inventory with more powerful ones, you would have to sell your items back to the shop losing half the gold that you paid for them.

Since having to sell and replace your items was not a desirable option, Guinsoo created an item combination system as a solution to this problem. This allowed players to buy cheap items early in the game, combine multiple cheap items into mid-priced items for the middle of the game, and combine multiple mid-priced items to create expensive and powerful items for the end of the game.

Doing so meant that the resources players were gathering throughout the game had consistent usefulness, and created a persistent goal of trying to get to the next tier of items.

Roshan - In version 4.0a, Guinsoo added Roshan. Roshan was a computer controlled "boss mob" which required an entire team to kill.

Defeating Roshan rewarded your team with experience and items, but left your defenses exposed during the fight. As such, choosing to battle him was a potentially risky endeavor.

If the other team became aware that you were fighting him, they could either try to kill you, (and steal Roshan), or push into your base to destroy key structures.

As an attestation of the fact that many sources have influenced the progress of DotA, Roshan was actually named after Guinsoo's bowling ball.

The addition of such a substantial amount of gameplay diversity led to balancing issues. Due to the limitations of the tools that Guinsoo had available to him, balancing decisions had to be made through direct observations and direct player feedback.

Balance was tuned each version, and the only way for him to know if he got it right was to see if the players stopped complaining.

2. Focus on PVP Combat

In the earliest version of DotA, much of the moment-to-moment gameplay experience was not battling enemy heroes, but instead supporting the computer-controlled creeps on your team. One of the first things Guinsoo did when he began heavily developing DotA was to observe which elements of gameplay provided the most fun and replayable experiences.

It quickly became obvious that the fun and replayable part of the game didn't necessarily lie in the successful completion of the main objective, but rather the player-versus-player combat.

Because of this observation, Guinsoo quickly began to shift the gameplay focus away from its' previous PVE oriented strategy by enhancing the PVP elements of gameplay.

Supporting friendly creeps was still a viable strategy, but killing enemy heroes became increasingly satisfactory and rewarding. Updates to the game which were designed to promote player-vs-player combat include:

  • Increased the gold and XP reward for killing an enemy player

  • Added Unreal Tournament sounds, making killing players more rewarding

  • Increased penalties for death, taking your opponent out of the battle was now a viable strategy

  • Added item powerups

  • Designed heroes with less creep summoning or control abilities, instead opting for single-target nukes, stuns, etc.

It was also necessary to focus on PVP combat in order to advance DotA in the competitive e-Sports world. DotA has been included in many worldwide events, including Blizzcon, Asian World Cyber Games, Cyberathlete Amateur League, CyberEvolution League, Electronic Sports World Cup, and more.

3. A Strong Community

One of the biggest challenges facing the early DotA community was its size. Battle.net was a big pond, and at the time, DotA was just a little fish. To help alleviate this, Guinsoo created an official channel for DotA players to congregate; a place where they could discuss the most recent map changes and find other people to play with.

This initial groundwork helped create a vibrant community of early adopters, which is essential to the success of any viral product. This extremely vocal group of advocates recruited players to the game and to the community, allowing DotA to effectively circumvent any traditional marketing that would be required to make a multiplayer game successful.

Near the end of Guinsoo's time as the DotA Allstars map editor, the official community www.dota-allstars.com was launched by me (Steve "Pendragon" Mescon). This new website and message board allowed users from around the world to gather and discuss the map, post feature suggestions for future versions, share replays, and identify with a community of like-minded players.

The community website was launched in attempt to provide a strong sense of cohesiveness to the community as a whole, and it really served to help people start to identify themselves as people who played DotA as a game, instead of playing it as a sub-experience of Warcraft III. This shift in mindset also greatly contributed to its viral success.

4. Warcraft III Engine & Map Tools

Being a game mod, one of the key advantages DotA had over full-fledged games is the tools packaged with Warcraft III. This set of extremely robust tools allowed for rapid development and iteration of content.

Guinsoo and his team didn't have to worry about creating models, textures, tilesets, etc., as everything they needed was built into the toolset. This boon allowed the team to focus on what they did best -- gameplay.

5. Small Development & Testing Team

In order for DotA to be successful, it was necessary to leverage volunteers in a significant way. The entire staff, including Guinsoo, was a volunteer. This afforded the team some interesting advantages that many companies (gaming or not) would definitely envy.

As the team manager, Guinsoo has no trouble motivating volunteers to spend time working on something they were really passionate about. Everyone wanted the game to be popular and successful for no other reason than that they wanted to work on a popular and successful game. This project was clearly not "just a paycheck" to anyone on the team.

There were also no business requirements, no deadlines to worry about, no business model to be mindful of, no marketing team, producers, or executives who had to be kept in the loop. This allowed the team to focus purely on gameplay, without having the overhead of project management, daily standup meetings, sprint planning meetings, and so forth.

Having such a small team with only one leader also meant that iterative process could happen at a much quicker pace. Rapid iteration and content releases is one of the cornerstones of the success of DotA.

After the discovery of a bug in the morning, a patch could be released by the afternoon, simply by uploading a new file to the distribution website. Once posted there, new versions quickly propagated to the playerbase. A new piece of content or a new feature could be implemented and distributed overnight.

The entire development process being controlled by a small group of people also meant that the design team usually maintained a completely unified vision.

All development was done by a group of friends, and the traditional company politics that we all know and love would rarely come into play. This also meant that releases could be tightly controlled without the risk of leaks.

What Went Wrong

1. Small development & testing team

While the small size of the development team was advantageous in many situations, it also posed some unique challenges that many games aren't faced with.

There weren't enough available hours between the team members to properly test each new release, so versions were sometimes released with bugs that needed to be patched immediately.

When version 5.84 was released, only one beta game was played and it was played in "deathmatch" mode, (where once your hero dies, it's dead permanently, and you're assigned a new hero to play), to test all the heroes in a single game.

Unfortunately, the tester playing the "Dragon Knight" hero didn't have the opportunity to test one of his abilities, and the map was released with bugged 400 hp/s regeneration ability instead of the intended 4 hp/s regeneration one.

However, the vision was also bigger than the available man hours allowed for. Guinsoo and his team simply didn't have enough time to implement everything they wanted to, and expanding the team through adding more developers would have posed a new set of challenges.

Ultimately, the call was made to prioritize changes by their overall impact to the release, and many great ideas fell to the cutting room floor as a result.

2. Warcraft III Engine & Map Tools

Using the Warcraft III engine imposed certain limitations on the development team that could have been addressed with relative ease in a full product..

No matchmaking was available; brand new players were often forced to play with seasoned veterans, which created an uneven distribution of skill.

This issue was partially addressed through the creation of meta-communities by the players, such as dota-league.com, GG-Client, DotA-Rank, Clan TDA, etc. Unfortunately, these are largely cumbersome services that are hard to use and still contribute to the high barriers to entry of DotA.

In addition to the matchmaking limitation imposed by the tools, lack of stat-tracking meant that some players weren't motivated to keep playing. While each individual session offered players a unique and diverse gameplay experience, players had to start from scratch after the session was over. Not even wins and losses were tracked, which meant you could play over 9,000 games and not see any upgrades in record, status, notoriety, etc.

Blizzard also released regular updates to both Warcraft III and the World Editor tool. Significant code rewrites were often required because of changes Blizzard made. The map file itself could also not be larger than 4 megabytes -- a limitation imposed by Warcraft III. This meant that developing custom content (skins, animations, and models) was usually out of the question.

Due primarily to the fact that the development was small and they didn't have enough bandwidth to implement everything they would like, optimizations that were relatively important (because of the impediments of the Warcraft III engine) were often overlooked.

Certain characters or abilities would lag the game, and it took a long time to load at the beginning of each match. With each new version, the decision had to be made to either optimize the existing map, or add new content.

While optimization was extremely important to Guinsoo, it often lost out to adding more content. Shortly before Guinsoo handed the map to the current developer, he made optimization a high priority and implemented several performance-increasing additions in his final releases.

3. Difficult Distribution & Installation

Existing only as a modification of another game and lacking network support meant that whenever a new version of DotA was released, the entire playerbase had to somehow be notified of the change, and then provided with a copy of the latest release.

New map versions were hosted on a website, but this became increasingly difficult to manage due to bandwidth consumption increasing as the number of active players grew.

Players could also download from other players (joining a game hosted on Battle.net would automatically download the map if the player didn't have it), but game hosts were often reluctant to allow players to download from them.

Many simply assumed these players weren't good at the game because they hadn't already obtained the latest version from the "official" sources.

Once a player actually had the map file, there was no automated installation process. Each player had to save the map file to the correct sub-folder manually. This was often a confusing process for users -- especially for those who were new to the game and hadn't successfully completed the process at least once before.

4. High Barrier to Entry

Between the lack of multiplayer support and matchmaking, the depth of the game content, and the difficulty of distribution and installation - it was very difficult for a new player to get into the game for the first time.

If the user doesn't have Warcraft III installed, they had to first install and patch Warcraft III and The Frozen Throne expansion set to the latest version, then download the map file and place it into the correct folder, and finally get online and try to locate a game.

Due to this unique combination of factors, most players couldn't even access the game unless they knew someone who could "show them the ropes". The widespread success of DotA is entirely due to word of mouth and the social nature of the game.

Once a new player actually installed Warcraft III, downloaded the map file, moved it to the appropriate folder, and successfully joined a game, a whole new set of challenges was presented.

Because there was no game tutorial available to give beginner users some introductory guidance, players simply had to join a game (potentially with people who had been playing for years) and play.

With more than 60 heroes available, it was difficult to know how to use your abilities and which abilities your opponents could use against you. Given the complex item and recipe system, new players didn't know which items to buy and in what order.

Lastly, because new players typically didn't play very well and DotA is a highly competitive team game, more experienced allied players could be very critical of them. This often resulted in new or inexperienced players being goaded into quitting the game entirely -- never to return.

5. Game Length

The average length of a game of DotA was about 60 minutes, but games could last as long as 2 hours or more. This unpredictability made it extremely difficult for players to budget enough time to play an entire session, and just one player leaving or dropping from the game resulted in an unfair advantage for the team with the greater number of players.

The unpredictable length of the game also hindered DotA from advancing as a competitive eSport.

Tournaments are difficult to schedule if a round could last anywhere from 30 minutes to two hours, and since the game isn't quite as action-packed as a first-person shooter, many people found it confusing to follow or boring to watch.

Conclusion

When all is said and done -- the good, the bad, the ups and downs, the countless hours spent working on a project driven purely by the desire to create a positive experience for some relatively unknown quantity of people spread throughout the world -- one thing is clear: DotA is fun. The years spent by Guinsoo, Eul, IceFrog, and countless anonymous individuals on DotA, have evolved a small map mod into a worldwide phenomenon.

Estimates of currently active players reach as high as 10 million worldwide (the true number is nearly impossible to determine), and in many regions DotA is more popular than CounterStrike, World of Warcraft, and even the game it rose from, Warcraft III. Despite the accolades and phenomenal success of DotA, it's clear that something is still missing.

DotA has an artificial limitation on its potential. There's a limit to what can be accomplished while nested safely under the wing of Warcraft III.

Players of DotA worldwide have been calling for attention from game developers, hoping someone will take the fundamentally unique, deep, and fun gameplay of DotA, and turn it into something more.

In September of 2006, Riot Games was founded with the hopes of making a game based on the core fundamentals of DotA (great core game design, a strong emphasis on regularly updating content, focus on community engagement) with direct answers to the obvious limitations of the platform on which it was built.

League of Legends, Riot's first title, was announced on October 7th 2008. Players can look forward to a game that was influenced largely by following the positives and negatives outlined in this article.

For more on Riot Games, read Gamasutra's previous coverage:

Online Game Studio Riot Games Gets $7m Investment
Q&A: Riot's Merrill On Targeting The 'Midcore' Gamer
DOTA Creator Goes Commercial With League of Legends

Tools Used

World Editor - This tool packaged with Warcraft III: The Frozen Throne was the primary tool used for map development. The World editor consisted of four different components, (Information from Wikipedia):

  • Terrain Editor - The Terrain Editor allows the map-maker to create its own environment and integrate default and custom objects from the Object Editor

  • Object Editor -The Object Editor allows the map-maker to control and modify almost every physical aspect of the game. It contains the raw data behind the units, buildings, and other facets of the game. In total, it allows the modification of existing, and creation of new Units, Items, Destructibles, Doodads, Abilities, Buffs, Effects, and Upgrades.

  • Trigger Editor -World Editor allows the map-maker to script events using triggers. A trigger is defined by a list of events, a list of conditions and a list of actions. Whenever an event occurs and the conditions are satisfied, it triggers the actions. This basic GUI-guided language is then converted to JASS, a proprietary language used by the game. It is also possible to convert a trigger to custom text allowing direct JASS usage

  • Import Manager -The World Editor allows the map-maker to import his own files into a map. Using this feature the user can easily import custom models, sounds, textures into a map to customize it even more.

wc3sear.ch - This website, a modding community for Warcraft III, which is now known as Hive Workshop, was the biggest source for character ability icons.

Appendix: The Team

Over the five years that DotA Allstars has been in development, thousands of people have worked on the game in one way or another. Due to the anonymous nature of this community project, many of the contributors are only known by their pseudonyms.

The following list includes contributions made only by Guinsoo’s team, which carried the map development from version 2.0 to 6.01, as information about the current and previous development teams is often unavailable to the public or inaccurate.

Steve "Guinsoo" Feak -- Primary map developer, versions 2.0 to 6.01

  • Created item combination system

  • Added Rune system

  • Added Roshan

  • Created alternate game modes

  • Created Creep Scaling System

  • Created 50+ items

  • Created Heroes

  • Darchrow, Enigma

  • Ezalor, Keeper of the Light

  • Ulfsaar, Ursa Warrior

  • Aggron Stonebreaker, Ogre Magi

  • Boush, Tinker

  • Furion, Prophet

  • Azwraith, Phantom Lancer

  • Tiny, Stone Giant

  • Squee and Spleen, Goblin Techies

  • Chen, Holy Knight

  • Luna Moonfang, Moon Rider

  • Kardel Sharpeye, Dwarven Sniper

  • Jah’rakal, Troll Warlord

  • Rhasta, Shadow Shaman

  • Mangix, Pandaren Brewmaster

  • Bradwarden, Centaur Warchief

  • Gondar, Bounty Hunter

  • Knight Davion, Dragon Knight

  • Magina, Anti-Mage

  • Traxex, Drow Ranger

  • Purist Thunderwrath, Omniknight

  • Terrorblade, Soul Keeper

  • Leshrac, Tormented Soul

  • Kel’Thuzad, Lich

  • Krobelus, Death Prophet

  • Lion, Demon Witch

  • Lesale Deathbringer, Venomancer

  • Magnus, Magnataur

  • Visage, Necro’lic

  • Nessaj, Chaos Knight

  • Banehallow, Lycanthrope

  • Black Arachnia, Broodmother

  • Mortred, Phantom Assassin

  • Medusa, Gordon

  • Balanar, Night Stalker

  • Leoric, Skeleton King

  • Lucifer, Doom Bringer

  • Anub’arak, Nerubian Assassin

  • Slardar, Slithereen Guard

  • Akaska, Queen of Pain

  • Bone Clinkz, Bone Fletcher

  • Darkterror, Faceless Void

  • Viper, Netherdrake

  • Razor, Lightning Revenant

  • Naix, Lifestealer

  • Pugna, Oblivion

  • Leviathan, Tidehunter

  • Atropos, Bane Elemental

  • Rotund’jere, Necrolyte

  • Pudge, Butcher

  • Anub’seran, Nerubian Weaver

  • Nevermore, Shadow Fiend

  • Crixalis, Sand King

  • Mogul Kahn, Axe

  • Strygwyr, Bloodseeker - Added Unreal Tournament sounds

Syl-la-ble: Worked with Guinsoo from v3.0 until v6.01

  • Helped with balance

  • Helped create Syllabear hero

  • Helped create map modes

  • Zetta: Helped with balance and bug fixing

  • Neichus: Worked on DotA after v5.0 -- mostly with conceptual design and complex code implementation

  • Mortred & About 11: Real-life friends of Guinsoo's. Helped with balance and bug fixing

Pendragon

  • Launched www.dota-allstars.com as the official DotA Allstars community near the end of 2004

Read more about:

Features

About the Author

Steve Mescon

Blogger

Steve "Pendragon" Mescon is the creator and operator of the DotA-Allstars.com, the primary hub of the DotA community that receives millions of visitors each month and where he manages over 130 volunteers who dedicate thousands of man hours each month to making DotA successful. Additionally, Steve has extensive experience managing customer relations with companies like Zappos and DirecTV, where he honed his passion for building deep relationships with the communities he’s involved with. Steve Mescon is currently the Director of Community Relations at Riot Games.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like