Game design, game programming and more

StarCraft: Orcs in space go down in flames

In my previous article about StarCraft I talked about why we rebooted the project and changed it from a follow-on to Warcraft — derisively called “Orcs in space” in 1996 — into the award-winning game that we were finally able to deliver after two more years of hardship. But one noteworthy source of inspiration didn’t make it into my previous article, and that’s what I’m going to write about today.

Blizzard first brought StarCraft to the attention of the gaming public at the Electronic Entertainment Expo (E3) in June of 1996. At that point the game had only been in development for a few months so it was no surprise to the development team and other staff members that it wasn’t markedly different from its immediate antecedent, Warcraft II.

With the success of previous Warcraft titles and of Command and Conquer from Westwood Studios, the RTS genre attracted competitors. The race to build the next great RTS was on, and consequently Blizzard was about to be publicly embarrassed by its choice to show so early in the development lifecycle. Just a short walk away from the Blizzard booth was that of another game which appeared to be better than StarCraft in every respect: Dominion: Storm over Gift 3, from Ion Storm.

“Maybe you haven’t been keeping up on current events, but we just got our asses kicked” — Private Hudson from Aliens

It’s 1996 and you want to buy an RTS game. Would you pay money for this?

Dominion Storm game screenshot

Dominion Storm

Or this?

StarCraft "Orcs in space" screenshot prior to the project reboot

StarCraft at E3 in 1996

Trade show espionage

During the early years of Blizzard — back before the company was even called that — the entire development team would attend trade shows like the Consumer Electronics Show (CES) and E3. We’d spread out over the show floor and “research” (that is, play) products at our competitors’ booths, getting an early look at what other game studios would be launching over the next year. It was an opportunity to analyze gaming trends, learn about technological advances, evaluate new user interface techniques, and review gameplay. Even better, our competitors would facilitate this learning by demoing the games and answering our questions, and of course we’d do the same for them back at our booth. This is one reason game publishers have a love/hate relationship with trade shows, along with high costs (tens of thousands of dollars for a few feet of floor space) and excessive distractions for the dev teams, is that other studios are like hungry wolves looking for prey to devour.

In the early years, when our games were programmed for 16-bit game consoles, our programming staff would review soon-to-be-launched Super Nintendo (SNES) titles, and would crowd around games trying to puzzle out how their developers had accomplished some feat of technical magic and derring-do. The SNES was an odd combination of a glacially slow 2.58 megahertz (not gigahertz) processor with a tiny 64 kilobytes (not megabytes or gigabytes) of memory coupled with exotic microchips designed to rapidly blast bits onto the screen — if you could figure out the right incantations to make it all work.

We’d stand staring at a game talking in phrases that only a few thousand folks in the whole world — most of them working for Nintendo — knew anything about. Someone would toss off an idea like “perhaps they’re using the hblank interrupt to set the scroll register to adjust the view distance in mode 7”, and we’d all do our best to wrap our heads around that idea, learning a great deal in the process. Our artists and designers would be similarly wowed by their own show-floor discoveries.

It was an exciting experience to see so many new ideas in just a few days, and we’d come back from the shows both energized by our findings and exhausted by the brilliance and audacity of our competitors.

Better yet, these trade shows were held in exotic venues like Las Vegas where we’d get to stay out late drinking and gambling before dragging our hung-over selves back to the trade-show floor. Staffing the booth during the early mornings was always challenging, and required a careful evaluation of who would be the best advocates for the game after nights of excess — would it be the hardy-partiers, with their higher alcohol tolerance, or the more abstemious members of the team — the lightweights? While it might seem that the lightweights (myself included) were a better bet, just a few drinks more than usual might cause us to miss a morning event due to a catastrophic hangover.

For the privilege of getting access to the insights to be found on the show floor our dev team staff would be stacked like cordwood in cheap motel rooms far from the convention centers to save the company money. We stayed in a hotel so far into the rotting core of Chicago that several on the team felt the necessity to carry steak-knives as protection against the perceived threat of muggers. And who could forget when one of the two elevators caught fire and was put out of service, necessitating fourteen-floor hikes morning and evening.

Back on the show floor after these escapades, Blizzard staff members would discover great games on the show floor and would — like honeybees returning to the nest — communicate their findings so other devs could seek them out to harvest insights.

As the Ion Storm booth was next but one over from our booth it was no surprise that we quickly discovered in Dominion Storm a stunningly better entrant into the real-time strategy (RTS) genre than our company’s paltry efforts, which was all the more humiliating given that StarCraft represented our third foray into the genre.

Like the Battle of Hoth, only interactive

While we didn’t have the opportunity to play Dominion Storm because it was a hands-off affair, it didn’t seem necessary. The Ion Storm staff members who demonstrated the game had a remarkable event that showed great-looking game units, including a signature unit that moved like the AT-AT walkers first seen in “The Empire Strikes Back” during the Battle of Hoth. With other impressive units of all sizes and forms, electric fences that could be chained together to create impenetrable barriers, and isometric-perspective artwork that showed the game units from a more compelling angle than did our nearly top-down perspective, Ion Storm’s game was kicking our ass in every regard.

It was a glum crew that made the drive back to Orange County to lick our wounds and plan for the future. The fundamental problem was that StarCraft wasn’t envisioned as a triple-A game; it was intended to fill a hole in Blizzard’s development schedule so that the company would ship a game in 1996 and thereby continue to generate revenues.

In retrospect that decision was a mistake of the first order, and it behooves me try to explain why we, and by that I mean Blizzard’s leadership team, could have allowed that to happen. But first some caveats: these events occurred in 1996 so reasoning about that events is clouded by time. I haven’t talked about these issues with Blizzard folks since before 2000, when I split off with a couple of buddies to start ArenaNet. Moreover, I doubt that the Blizzard folks would talk to me about these issues if I did ask. In the intervening years we became competitors, and in any event they’re notoriously close-mouthed about their business for good reason — they’d prefer to avoid talking about any missteps and put their efforts towards more positive news. But I have no such compunctions, so you’re getting my assuredly biased views, which I’m sharing as a form of therapy, I guess. Perhaps some of the other folks who participated in these events will step forward to share their thoughts about these long-ago happenings.

Wherefore Orcs in Space?

Blizzard’s business strategy was driven by Allen Adham, the company’s president. Allen was a student of both gaming and business, and under the tutelage of Bob Davidson (CEO of Davidson & Associates, the educational software company that first acquired Blizzard), they planned the company’s development pipeline with a keen eye towards maximizing the revenue and profit of our studio, as would any corporate leader. Whereas the development team was driven by a desire to make awesome games, Allen endeavored to build a pipeline with predictable game releases, and that included projects that didn’t engender excitement on the part of the devs.

Some projects were pushed onto unwilling dev team members, including projects like Games People Play (a crossword puzzle game that died because the team lead was so unmotivated), Warcraft Adventures (a Sierra-style point-n-click adventure that — no matter how good an adventure it might be — would never be a capital-B Blizzard game), Diablo Hellfire (an expansion to Diablo developed by an external team selected for their availability rather than expertise), and Crixa (an updated clone of Virgin Games’ SubSpace that would have been too shallow and arcade-like to meet with the approval of most of Blizzard’s fans). When there was greater consensus against an idea by the dev team, Allen’s strategies would be ruthlessly shot down, as when the team revolted against creating a mini-golf game franchise.

In the period immediately after the launch of Warcraft II, Allen’s goal was to ensure another product launch in 1996. Since the Shattered Nations project (a turn-based game in the style of XCOM) had failed, there was a gap in the schedule, and putting together a project to fill that void was a top priority. Seen in that light, Allen’s choice to make a moderately scoped game might be considered reasonable in foresight, though it was rapidly overtaken by events.

During that period, the game industry was undergoing a massive sea-change. With the advent of CDROM-based distribution in place of floppy disks and game cartridges, studios competed to build massive games to fill the available space and team-sizes shot upwards meet the demands; consequently development budgets skyrocketed.

State of the art projects conceived in an earlier time would drag on for years as the projects lagged behind ever more advanced competitors’ products, necessitating scope creep, redesigns, reboots and ever larger expenditures to play catch-up. StarCraft was to be Blizzard’s poster-child for this type of development process.

For many on the team, myself included, the efforts of building two RTS games back to back in just two years was exhausting. The crunch-time we endured to ship these titles was physically wearing and, immediately following the game launches, many would become fall sick due to the fatigue.

I later learned that sleep deprivation leads to other ill effects like memory loss because sleep is required for “memory consolidation”. And extensive sleep loss can also lead to depression, which is less about being “sad”, as I first thought as a naive youth, and more about changes in brain-chemistry that lead to an inability to function.

While I don’t believe that anyone on the dev team was clinically depressed, during the post-launch period for our games we were notably lacking in energy for weeks or months depending upon the duration of the crunch effort. Work output suffered, but more relevant to this article is the changes in attitude the fatigue caused. Disagreements in direction and strategy that might have occasioned fierce arguments in earlier times would get more apathetic treatment after a product launch.

For my own part, I very much remember being disagreeable to the idea of rushing StarCraft out the door with a one year development effort. I had been similarly disagreeable at the beginning of the Warcraft II project, which was another one-year project right on the heels of the initial launch. In retrospect, getting Warcraft II done in one year, even at great personal cost for myself and many of the team members, was what kept Blizzard at the head of the pack, so perhaps it was worth the effort.

But when disagreeing about the short schedule for StarCraft, I wasn’t as vocal. I was moving on to other duties, and — in my profound exhaustion — absolved myself of the responsibility for the project because I wasn’t going to have to work on its development. In reality, I didn’t accomplish much for several months after the end of Warcraft II; I was just too burned out. My failure to push for a different course turned out to be a poor personal choice because it was eventually necessary for me to take over a StarCraft rescue effort, but only after taking on a similar effort to rescue Diablo.

Another issue which arose that we didn’t fully take into account was the pain of developing more than one game at a time. Blizzard was attempting to grow from being a one-game studio to a multi-game studio. We’d started an effort to build more than one game internally, and the immediate problem that cropped up was the necessity to split a strong team to create two middling-strong teams. A team which was able to develop a great game, even when augmented with experienced new staff members, is going to have to take chances on promoting many staff members into positions they’ve not done before, and that’s a risky proposition.

Given the complexity of bringing one game to market, it’s not surprising that the team failed to perform adequately when trying to bring multiple games to market without increasing time, training and budget — options we weren’t given. So obvious in retrospect, but at the time the pressure to ship games was ever-present. Ultimately the event that changed the equation was less that the studio changed directly than that our later games sold so many copies that we could afford to spend more time on each new game.

When my new partners and I headed off to start ArenaNet, you can bet that many of these lessons echoed in our heads, and we endeavored to do a better job building a company having experienced these travails.

What became of Dominion Storm

Blizzard — after an arduous development process and fourteen months of crunch time (more details here) — eventually released StarCraft in May, 1998. Dominion Storm released shortly afterwards in June, according to Wikipedia.

But why did Dominion Storm, a game that showed so well that it necessitated a reboot of the StarCraft development effort, take longer to develop? And why did the game do so poorly when it eventually released? If you haven’t read the Dallas Observer’s story about the internal chaos of Ion Storm you will be amazed; it is the most appalling story about game development I’ve ever read, and its author deserves kudos. If you read it I expect you’ll have a pretty clear idea why the development team struggled. To give you a taste of the article here is my favorite quote: “You better be fucking glad we wrote off your car and house, you fucking rat-faced bitch”.

Behold

As bad as Ion Storm was internally, there was a dark secret that eventually unraveled. It wasn’t until years later, well after the 1996 E3 demo of Dominion Storm, and after StarCraft launched, that we discovered that the Dominion Storm demo was a fake.

As Ion Storm started to disintegrate due to financial and political problems, members of its development teams left to pursue other opportunities. From this crew Blizzard managed to hire Mark Skelton and Patrick Thomas for the burgeoning cinematics team, where they worked to produce some of Blizzard’s epic cut-scenes. I spent a lot of time with the cinematics team members (who sat not far from me) and hung out with Mark and Patrick, including during numerous surfing outings to Laguna Beach and Huntington Beach.

At some point I talked with Mark and Patrick about how Dominion Storm knocked us on our heels, and they let us in on Ion Storm’s dirty little secret: the entire demo was a pre-rendered movie, and the people who showed the “demo” were just pretending to play the game! It would be an understatement to say that we were gobsmacked; we had been duped into a rebooting StarCraft, which ultimately led it to be considered “the defining game of its genre. It is the standard by which all real-time strategy games are judged” (GameSpot).

It’s hard not to look back at those events now without being thankful for the kick in the ass that Dominion Storm gave us. While I and many others worked on what was the longest and most arduous development efforts of our careers, the end result was nothing short of miraculous.

But wait, there’s more! (every TV infomercial ever)

I could probably end the story here, but can’t resist mentioning another faked demo story that I learned recently. It occurred after I left Blizzard so I can only relate it second-hand.

As every game developer knows, release dates are slippery, but the dates of trade shows are set in stone. If a game studio has spent hundreds of thousands of dollars to prepare booth space, purchase long-lead print advertising and arrange press appointments, the development team is going to have to demo something or heads will roll.

And so it came to pass that Warcraft III needed a bit of extra help one year at a trade show. The Warcraft III game engine, written from the ground up with no code shared from previous “craft” titles, was complicated and unintuitive enough that it was disparagingly called “brainfuck” by many on the team, and so the programmers were forced to struggle against these issues to get terrain collision and path-finding working in the run-up to E3.

Given the timing they didn’t manage to get those features stabilized prior to the show, so fans and press weren’t allowed to get their hands on a playable demo. Instead the demonstration was carefully orchestrated by the game’s producers to hide their lack, which necessitated carefully steering game units around terrain features while pitching the product. To its credit Blizzard didn’t release the game until the problems were addressed and Warcraft III was an excellent game.

Making games, and especially making games while creating enough visibility so that there is a ready audience, is enormously complicated. I wish every one of you who aspires to make games the best of luck in your endeavors, and hope that you’ll never find yourself on the heels of a similar dilemma about what to show.

About Patrick Wyatt

As a game developer with more than 22 years in the industry I have helped build small companies into big ones (VP of Blizzard, Founder of ArenaNet, COO of En Masse Entertainment); lead the design and development efforts for best-selling game series (Warcraft, Diablo, Starcraft, Guild Wars); written code for virtually every aspect of game development (networking, graphics, AI, pathing, sound, tools, installers, servers, databases, ecommerce, analytics, crypto, dev-ops, etc.); designed many aspects of the games I've shipped; run platform services teams (datacenter operations, customer support, billing/accounts, security, analytics); and developed state-of-the-art technologies required to compete in the AAA+ game publishing business.

Comments

  1. The faked Dominion Storm demo story is one of the reasons I keep reading these articles. It’s great insight into what lie behind the doors of game development.

    I’m also not surprised by the Ion Storm debacle, especially after reading Masters of Doom.

  2. Judah Mehler says

    Very nice article Pat. Thoroughly enjoyed reading about the beginning struggles of the production team and how that affected the success of the games to come.

  3. ..my face right now… O.O

  4. Another great article, I love reading your stuff! As an aside, SubSpace was freakin’ fun even though I royally sucked at steering those dang ships.

  5. Marcin Jaczewski says

    Its great to read about humble beginning of great company like Blizzard :)
    Especially from perspective game creator.

  6. This is the one of the best blogs I’ve read in a LONG time. I’ve been gaming since the 80s, and I’ve always wondered what went on behind the scenes at the gaming companies I’ve followed over the years.

  7. Dominion Storm may have been faked but the fact is that your version of StarCraft was too ugly. Looking at the screenshot above it looks much worse than WarCraft II.

    BTW I am quite curious at what point you came up with game mechanics like unit types and damage types, higher ground, etc. Was it before or after the reboot. Also when did you decide that races should be totally unique? Another interesting point is that there are screenshots from an alpha version where the dropship seems to land and the goliaths shoot lasers. This version looks better (at least on screenshots) than the version you shipped. What made you change this engine?

    • You’re right — StarCraft was awful at that point; it had only seen a few months of development effort with a small team. Even without Dominion’s presence at E3 the game probably (hopefully!) would have been rebooted. I’ll see if I can answer your other questions in a future blog post.

  8. Learned a lot about the behind the scenes history of my favorite RTS today. Thank you for this article. :)

  9. The talk about Ion Storm made me think back to Yahtzee’s review of the original Deus Ex, which included the following quote: “With Half-Life, Thief, and System Shock 2, first person games had been steadily raising the bar. [Note: Thief actually came out much later, in 2004 to Deus Ex’s 2000. It is also an Ion Storm Austin title.] And then a company called Ion Storm released Daikatana, and made the bar tunnel right into the ground. But then Ion Storm also brought out Deus Ex, which was popularly considered the greatest PC game of all time. That may seem like incongruous behavior for a game developer, but the thing is that during Ion Storm’s creation myth a bolt of magical lightning struck John Romero’s hair, and the fledgling Ion Storm was split into it’s good half and it’s evil half. The evil half was Ion Storm Dallas, which produced Daikatana [and Dominion: Storm] and devoured children who refused to eat their vegetables, and the evil half was Ion Storm Austin, which made Deus Ex and leaves chocolate buttons in the shoes of the good little boys and girls.”

    • Sorry, “and the evil half was Ion Storm Austin” should say “good” half. But that’s probably obvious. :-)

    • “[Note: Thief actually came out much later, in 2004 to Deus Ex’s 2000. It is also an Ion Storm Austin title.]”

      The first Thief game came out in 1998, and was developed by Looking Glass Studios.

      The game developed by Ion Storm was actually the third in the series.

    • A note on your note: the original Thief came out in November 1998.

  10. On an unrelated note, sir I thank you for Guild Wars 2. I am glad you left blizzard.

  11. I’m curious to know what Blizzard thought of Total Annihilation, a game which launched in 1997 and (like Starcraft) still holds its own against some of today’s RTSes. It was a critical success, but I wonder if it was even a blip on the Starcraft team’s radar.

    • Many folks at Blizzard did play Total Annihilation, and so it surely was an influence. They went down different paths than we chose (3d units vs. 2d, many different unit types vs. few, sci-fi vs. fantasy), which helped them carve out their own space in the RTS genre. But I don’t remember it being as big an influence on our development as other games like, obviously, Dominion.

    • I lost soooo many hours of my youth to Total Annihilation … I loved that game.

  12. This is blog is quickly becoming my favorite!

    We want more!

  13. ungarsfragile says

    The 1996 E3 Dominion Storm demo is viewable here: http://youtu.be/YJ_g36fcuH8?t=6m

  14. Awesome post Patrick. Love the behind the scenes stories about the company, the team and the road to a great product.

  15. Thanks! I love SC!

  16. Patrick, I just wanted to leave a note of thanks for these articles. The game development stories of the 90s are utterly fascinating and you have done an amazing job bringing the story of Starcraft’s (still to this day, my favourite game ever) development to life.

    Thank you.

  17. Jeremy Clark says

    I actually remember following Dominion back in the day: for once, the drama-fest that was Ion Storm doesn’t actually deserve the blame here.

    Dominion was originally started by 7th Level as a sequel to their mech game G-Nome. Obviously the development started to slip. As 7th Level started to go under in ’97, Todd Porter left for Ion Storm and took Dominion with him. They managed to get it finished and out the door a few months later. It actually wasn’t a bad game and probably would have done much better were it released on time. Unfortunately, Dark Reign, Total Annihilation, and StarCraft already had the RTS in Space market locked up by the time it got out.

  18. I’m curious about your thoughts on the game design of starcraft II, where it improves upon the original and where it fails. I’m not a game designer, but as an industrial designer, I’m able to look at Dustin Browder’s team’s decisions and wonder why they went backwards in so many different game dynamics.

  19. I like your post very much, and translate them in Chinese showing them to more people. What would you like to do with the Chinese translations?(I wanna make it opensource on GitHub under GPL or something like it.) ——Fan of Warcraft

  20. Haha another awesome article. Never knew about Dominion Storm, that story is awesome :D Thanks for the great read!

  21. Great article. This is the second example of spectacular fake demo I’ve come across — the first one was Bungie’s own admission in the documentary that followed the halo 2 premium release, that the early “interactive” demo was a fake. I believe it is the same incident referenced here:http://www.eurogamer.net/articles/bungie-halo-2-e3-demo-was-a-fake

  22. Amazing story.

    I am a big fan of Starcraft and Warcraft 3 (which inspired tower defense and DOTA).

    Would you be sharing the initial development process of Warcraft 3 up until you left? Or you have more detail after that?

    I love these stories. They are so good and a must read for anyone serious about building any development studio!

    • In fact it was StarCraft that inspired both tower defense and DotA. Tower Defense in particular was wildly popular custom game in StarCraft from the beginning and the original inspiration of DotA was a StarCraft map. However a game as complex as DotA needed much more powerful editor than StarCraft’s before it became mainstream.

  23. My jaw literally dropped when I learned that the demo was actually fake. I’d be quite interested to learn about the reaction of the development team about the formation of a professional starcraft scene in Korea and how various glitches in the game contributed to balance it. Would you mind sharing your thoughts on that?

  24. Guilherme Simões says

    I added your blog to my RSS feed because of your first Starcraft post and you have not disappointed since. Great read, great insight into gaming industry and the making of games!

  25. Hi Patrick, thanks for those great articles.
    I’m part of the numerous developers who spent countless hours reverse engineering the StarCraft engine, mostly the replay format as far as I am concerned and I always wondered why Blizzard never had and still doesnt have a more open attitude about publishing some technical content for 3rd party developers. I mean, whatever they dont tell us is going to be figured out anyway. It’s just a waste of our time. Also, it prevents us from adding more “stuff” to the game at no cost for them.
    My own little tool was called BWChart. It would display APM and lots of other stats read directly inside replays. People loved all those stats. Everyone was expecting to have something like that in Starcraft 2. Instead we had and still have two ridiculous charts and one APM average value. It’s again a 3rd party tool (SC2Gears) that is providing the full statistics. And again, it had to be written after the replay format had finally been figured out, which means many useless hours spent hacking replay files and lots of code updating every time they change the format.
    Why not provide a simple SDK for those replays or even better an interface for us to plug inside SC2 and display our stuff right there? I dont see any good technical reason. Even security is not a good reason. So why? Do you have any idea?
    Thanks again for the great articles.

    • I can’t really answer that question for Blizzard; you would have to ask them. I imagine that it’s a combination of technical constraints (dev effort to create and support an SDK), business motivations (finance folks asking how plugins add to the bottom line, and what the costs for supporting it would be), security concerns (will there be lots of malware & trojans associated with those plugins), and etc. Someone internally would have to make the case for developing and supporting such an SDK, and there may not be someone with that desire at Blizzard today.

      On the plus side, I think it creates an opportunity for other developers to create products that Blizzard would never consider doing. Just like Blizzard stole Westwood’s thunder by being first to market with a multiplayer RTS, there is a market opportunity to create moddable games — MineCraft being a great example.

    • thank you for writing BWChart, it was an incredibly useful little tool

  26. Appreciate the insight you provide on technical and business aspects of game design, especially one as venerable as Blizzard. Politics became a huge problem at Ion Storm. Did the combination of Starcraft’s large workloads and “crunchtime depression” bury small political bickering at Blizzard?

  27. The most underrated RTS of all time = Strifeshadow. :P

  28. This was fascinating Patrick, thank you for sharing!

  29. Hi Patrick,
    Thanks you for an interesting story. I became your big fan after read your previous post. After reading this, I have a question I want to ask regarding to WC III delay. At the time before WC III was launched, I heard a rumour that one of the reason that made the game delayed because you guys tried to make your text rendering engine work with some Asian text but it didn’t turn out well. Is that true?
    I’m Thai and I was very excited when I heard that your game might support my language. I also understands the difficulties of making text rendering that support Thai scripts, so, I didn’t surprise when the final product shipped without my language.

  30. MarigoldRan says

    Came to your site from team liquid. Loved it.

  31. ehh you left me hanging on the other blog post so I’ll continue on this one :)
    There’s a channel called “Backstage” which Battle.net does not allow you to join, what was it used for?

  32. I somehow managed to miss this when it came out, and to think I’m been looking forward to it: great article! I’ve also implemented intrusive lists in a LinkedElement class: I find myself using it everywhere because it’s so simple to set up! These little C++ programming gems always come in handy…

  33. Hello Pat,

    I have found your blog recently and I thought about asking about battle.net; how did you approach the service in its infancy, since the same service is reliable enough to be around today, being a lone wolf in such a project must have been tough.

    Did you tackle problem by problem or you already had a set list of goals to meet when you got the project on your hands?

    – Lucky

    • When I took over battle.net in early 1999 it had been languishing for a year or more since the project lead left to work on Warcraft III. While there were two programmers who had worked on the project at various times, neither had made progress on fixing bugs or preparing for Diablo II launch.

      There was no monitoring system (to determine whether the service was functioning) nor any aggregated metrics (to see how many users were playing).

      The battle.net service included a custom-written database similar to MongoDB, but with the addition of database replication between servers in remote datacenters. Unfortunately there were data corruption problems related to stale data caused by the replication engine.

      An even more pressing problem was that battle.net was bursting at the seams. StarCraft continued to increase in popularity but the service crashed daily under high load, and users in some locations had problems using the service due to network connectivity issues.

      And finally, there were myriad security issues, game feature issues, and cosmetic issues that needed to be addressed.

      So my goals were straightforward: get the service functioning properly and ensure that Diablo II worked with battle.net before launch, that’s all!

      Working on battle.net was challenging because it was a large code-base with which I was unfamiliar, and moreover it used an asynchronous, callback-based programming paradigm based on Windows IO completion ports (IOCP), which I had not yet used. Using IOCP leads to programming code that has “inversion of control” issues which make it difficult to understand.

      However, the battle.net code was exceptionally well written — some of the best code I’ve ever worked with — and my year on the project was a great experience. The learnings I gained in that year gave me enough background in server architecture to write the server backend for Guild Wars.

      • I can understand the feeling of working with good code. However, I’m very impressed that you took the whole service in the status it was and made it possible for it to stand on its feet and added all the features that played a key role for Blizzard.

        Now, I might be stretching this a little, but when World of Warcraft was young did any discussion of integrating that project with Battle.net like Diablo 2 or Starcraft take place at the time?

      • I imagine that we did have discussions about integrating battle.net and World of Warcraft (then “Warcraft Online World”) but don’t remember their import.

        Most of the early development effort on WoW was spent building what was essentially an EverQuest clone and getting the base game-play right before differentiating and adding features.

      • Yes, I remember that EverQuest was big at the time it’s funny how times change like this, isn’t it?

        Anyhow, since you mentioned Guild Wars earlier, how it was taking the experience you have acquired through Battle.net into a wholly new project at the time start-up ArenaNet, if you could go back would you change anything you did at the time or are you satisfied on how Guild Wars server backend turned out?

      • Guild Wars backend: that is another full article, and one that’s already on my list. The GW1 server architecture did amazing stuff, but it’s certainly possible to do better.

        Right before I left ArenaNet I built a new server architecture to make it easier to write service applications, and it was used quite extensively for GW2.

        I plan to explain the whats and whys so that others can learn from the missteps and positive results we made at ArenaNet. Must write faster!

  34. Hey, Great blog! My adventure with blizzard started with WC2 and Diablo, and it’s great to read about the development history of those game and games that came after.

  35. I love this kind of blog post, about making games! Good work. An idea for a future work: how Blizzard team design and balance Warcraft 1&2 plus Starcraft

  36. Please tell me you’re in the process of writing a book about your 22 years of experience in the game development industry. Your writing is hilarious, awe-inspiring and very motivating to a wannnabe gamedeveloper. Can’t wait to read more :)

  37. Gene Areeze says

    Very inspiring blog. Looking forward for more. (y)

Speak Your Mind

*