computer games games design massively multiplayer security

MMO Economies Suck: But developers are blameless

…according to Ed Castranova’s snippet that Scott J posted from the MDY vs Blizzard trial notes.

Courtesy of Scott, here’s a hosted copy of the source documents.

Ed writes a nice little explanation of why / how bots damage an in-game economy. I liked that. Good stuff – go read it. So far, so good – a great primer for anyone wanting to understand the situation better.

Unfortunately, the implication throughout the document is that this is all directly damaging to Blizzard’s revenue, and should be prevented *by someone other than Blizzard*.

I think this is a really stupid way of looking at things. My impression from reading the submission was that it’s overall a somewhat twisted description of the situation, coloured by a desire to use the facts (economic analysis) to support a personal desire (stop people using bots rather than go to the effort of fixing the bugs in the game-design). Sure, capitalist companies will pursue the cheapest possible means to achieve their goals, including suing people if they think they’ll succeed, but I deeply object to this kind of good factual analysis being spun to imply it proves stuff that it does not prove, and which consists an attempt to dodge responsibility and use the legal system to make up for mistakes in a company’s product-development strategy. Make better games, don’t blame the players for not playing the way they were “meant” to. Even the ones who are cheating. Ban them for cheating, stop them however you can, but don’t claim it’s not your fault that they’ve managed to cheat in the first place: of course it’s your fault.

Picking the snippet Scott quoted, which is nicely indicative of the whole piece:

Glider bots destroy this design, distorting the economy for the average player in two specific ways. When a Glider bot “farms” an area, it picks up not only experience points for its owner, discussed above, but also the “loot” that is dropped by the mobs killed by the bot. Because Glider can run constantly, it kills far more mobs than anticipated by WoW’s designers, thus creating a large surplus of goods and currency, flooding the economy with gold pieces and loot like the Essence of Water. This surplus distorts the economy in a specific way.

When bots gather key resources, they gather them in abundance. Owners of bots usually sell these resources to other players for gold, which inevitably deflates their price. Blizzard’s design intent is for the resources to command a certain high value, so that average players, who might get one or two of the resources in an average amount of play time, may obtain a decent amount of gold from selling them. But because characters controlled by bots flood the market with those resources, the market value of these resources is far less than Blizzard intended, and the average player realizes only a fraction of the intended value from the resources s/he finds. The deflated value of key resources presents a critical problem for ordinary players trying to enjoy the game. Blizzard’s game systems assume that players will be earning a certain amount of gold per hour, and many systems, such as repairs and travel, force players to make fixed payments of gold into WoW’s systems. Buying a horse, for example, costs a certain amount of gold. That pnce IS set by the game designers based on the assumption that normal players will accumulate gold at a certain rate, and that some of their gold will come from the value of resources that they harvest and sell. When the value of those resources plummets because of Glider, the amount of time it takes to accumulate the gold required for in-game expenditures like the horse skyrockets. This skews the economy, frustrates players, and, as a result of a less-satisfied user base, damages Blizzard.

My interpretation of the above argument:

  1. Designer makes various tables of numbers showing relationship between prices, rarity, the difficulty of achieving items at a given level, etc. This is normal – people who do this are often called “balance” game-designers, because they’re balancing out the risk/reward, cost/effect of everything
  2. Developers hard code these values, on the assumption that the world is perfect, they are God, and nothing could ever go wrong (this is fine; normally you make that kind of mistake once, and then fix it when you realise the problems this is going to cause)
  3. System collapses because of “bad people”
  4. When caught in such situations, Developers get to blame everyone except themselves, even though it’s clearly their own shoddy game design / implementation

The analysis is economically accurate, but the conclusions about the impact on design, and whose responsibility it is to contain/prevent/undo this, is just making out game developers to be lazy, stupid, bullies. People should take responsibility for their mistakes, not blame everyone else. Especially not blame the users of a game. Even if they hack your game to pieces and cheat like crazy THAT’S STILL YOUR FAULT AS A GAME DEVELOPER. You may hate them, rightly so, but it’s your responsibility to make better games. At least, that’s how we used to make games. Maybe the industry doesn’t work that way any more. Maybe it’s just me that thinks that way, maybe to everyone else in the industry a “bad game” isn’t your fault as a developer, it’s the players’ fault for not being clever enough to appreciate the coolness of your game.

Look at Diablo – it fell to pieces and died because of in-memory live hacking of the game-data. Seriously hardcore stuff (in a way). But that didn’t mean everyone just shrugged and said “those nasty hackers, they ruined a perfect game, it’s not the developers faut”, instead we took it to mean they hadn’t built it well enough, that next time they would have to change their approach, or their priorities, to prevent this from happening again.

To pick one more quote that underlines how silly I think this piece is because of the spin being put on it:

Glider bots occupy resources that Blizzard could otherwise put to other, more constructive uses. Because those resources are required to fight Glider, they are spent in a way that does not improve the game

Well, duh. And the same is true of most of the work being done by the Customer Service depts that all of the MMO companies pay large amounts of money to in salary every day. And it’s also true of the hardware that we use to run the game. Etc, etc. Just because a development cost “does not improve the game” doesn’t mean you have grounds to go and sue someone else for causing you to have to do it.

Where does it stop, if you go down that route? Are we going to start suing players who ask questions of the CS team that are too stupid? Will we bill players with crappy graphics cards for our time that was wasted diagnosing problems with their hardware that were stopping them from playing our games?

Which is not to say that I support botting or bot applications. I don’t support either. And I believe there are many different ways you can fight them, and there are many good reasons for shutting down people and organizations that use them. But I don’t think the reasons given above are included. And I don’t want to sink to the level of making specious arguments just because it’s the path of least effort…

computer games databases entity systems games design massively multiplayer programming system architecture

Entity Systems are the Future of MMOs Part 4

Massively Multiplayer Entity Systems: Introduction

So, what’s the connection between ES and MMO, that I’ve so tantalisingly been dangling in the title of the last three posts? (start here if you haven’t read them yet).

The short answer is: it’s all about data. And data is a lot harder than most people think, whenever you have to deal with an entire system (like an MMO) instead of just one consumer of a system (like the game-client, which is the only part of an MMO that traditional games have).

Obviously, we need to look at it in a lot more detail than that. First, some background…

computer games conferences games design GDC 2008 massively multiplayer

GDC08: Free to Play! Pay for Item: The Virtual Goods Debate


Speakers: Daniel James, Three Rings; Matt Mihaly, Iron Realms Entertainment

Very brief notes…

computer games conferences games design GDC 2008 massively multiplayer web 2.0

GDC08: Virtual Greenspans: Running an MMOG Economy


Speaker: Eyjolfur Gudmundsson, CCP

I want a full-time economist working for MY company.

And: CCP staff should give more of the GDC talks, they’re good. And entertaining.

In the midst of a week of depressingly dumb comments (on the topic of economy: what possessed Matt Miller to argue against microtransactions because accountants like to see x million players times y dollar per month and find microtransactions unpredictable?), it was a joy to go to an intelligent, extremely well-informed, rational talk with valuable lessons for the future.

EDIT: photos now added inline; better quality images of almost the same graphs can be found in the official Eve Online newsletters (2007Q3 and 2007Q4)

computer games conferences databases GDC 2008 massively multiplayer Uncategorized

GDC08: SQL Considered Harmful


Speaker: Shannon Posniewski, Cryptic

I was expecting something shockingly naive and/or stupid from the title of the session. The first thing the speaker said was that the title was completely wrong, so I ran with that. With that out of the way, the talk was fine, although small things kept coming out during the talk that were hard to believe or worrying claims.

So it was going OK, until … right at the end, just before the Q&A, and partly during the Q&A, the speaker dropped some serious shockers:

alternate reality games computer games conferences games design GDC 2008 massively multiplayer web 2.0

GDC08: Thinking Outside the Virtual World


Speaker: Michael Smith, MindCandy

Another half-hour-long introductory topic talk from the Worlds In Motion summit. Short but sweet. A nice overview of lots of different things going on in the use (and sales) of real-world goods as part of online games / virtual worlds. Misses out plenty of things, but does a good job of giving a taster of the sheer variety that’s going on right now.

Like Adrian’s talk from yesterday, I would have loved a second follow-on talk – now that everyone’s been brought up to speed – that explored where we could be going with these, and looking at how these have been used in more depth / detail.

computer games conferences games design GDC 2008 massively multiplayer web 2.0

Liveblogging GDC 2008

In case it’s not obvious enough, I’m tagging all my session-writeups this week with “GDC 2008” (HTML | RSS).

Mostly I’m covering online-related and social-networking related topics, but jumping around between GDC Mobile, Serious Games, Worlds In Motion summit, Independent Games, and the Game Design, Production, and Business tracks.

alternate reality games computer games conferences games design GDC 2008 massively multiplayer

GDC08: Gaming’s Future via Online Worlds


Speaker: Jeffrey Steefel, Turbine

IMHO, Jeffrey hereby strengthens the weight of evidence that Turbine is genuinely turning the corner from making poorly-guided foolish games to doing cutting-edge stuff and doing it well. Lord of the Rings Online (LotRO) has gone some considerable way to burying the failings of Asheron’s Call 2 (AC2) and Dungeons and Dragons Online (DDO), but it’s still far from certain that it’s a sustainable direction for them. In that context, Jeffrey speaks very convincingly and with a lot of apparent understanding about what they’ve done well and where they’re going with it in the future. Frankly, all of the incumbent MMO companies need to be doing this, and pushing at least this far and fast ahead, so it’s great to see someone senior at Turbine pushing this so strongly.

computer games conferences games design GDC 2008 massively multiplayer

GDC08: Social Media, Virtual Worlds, Mobile, and Other Platforms


Speaker: Peter Marx, Analog Protocol/MTV

Good to hear about virtual worlds and MMOs from the perspective of a mega content / media company. Several interesting ideas and explanations that are well worth reading if you haven’t already been tracking the way that Viacom et al have been approaching the online socializing space.

Nothing fundamentally new, but the ideas presented were clear and consistent – and I’m kicking myself for not having tried VLES sooner, it sounds fun.

games industry massively multiplayer gets first update in 8 months

At long last, the new version of my charts and analysis is now online! I don’t have numbers for every game, but there are quite a few updates, most notably to World of Warcraft, RuneScape, Dofus, Tibia, and NCSoft’s various titles. Also included are preliminary numbers for Vanguard: Saga of Heroes, Lord of the Rings Online, and Tabula Rasa.

A new look and feel to the site as well, I noticed. I’m glad to see the site back and running, and just in time for GDC too :). I can’t vouch for the accuracy of the numbers, but it’s a hugely valuable service to all of us in and around MMO development to have a detailed comparison like this and to see historically how each of the games fares against its predecessors. Even if 95% of the opinions people form from this analysis seem to be wrong … (remember any of the “no game will go above a couple of million subscribers because the charts show them all stealing from each other and none growing the total market” arguments of yesteryear?).

computer games conferences massively multiplayer web 2.0

GDC08: Web 2.0 + Games meetup

After the success of the totally unofficial and informal meetup at AGDC, I thought I’d ask around if anyone wants to do another one of these at GDC…

a couple of us are going to get together and chat about the head-on-collision between games and Web 2.0. Come along
and see if you can outdo everyone else by picking an even larger number and sticking it on the end of a word (why stop at Games 3.0? Let’s go to a hundred!).

There will be no free drinks. No free food. And definitely no cabaret/live entertainment/superstar DJ’s. But hopefully there will be some interesting and friendly people with a shared interest here.

Have a look at the quick report I did for the AGDC07 meetup to get an idea for what this might be like.

At Austin GDC, I expected about 5-10 people, and we had about 30. I have no idea yet how many people would be interested at GDC.

EDIT: details…

Time: 20:00-22:00
Day: Wednesday 20th February

Courtesy of Mike Leahy ( The space is called “The Bubble” @ 73 Langton St. SF 94103 which is near 7th/Folsom.

If you’re coming and haven’t emailed me (amartin at please drop me a mail to say so – we should have plenty of spare room, so RSVP isn’t required, but on the off-chance we get lots of people, RSVP’d will get priority.

Nice and easy from the convention center: go south-west along Howard St for 3 blocks, then take a left on Langton St (circa 10 minute walk) :

Google maps directions

games design massively multiplayer networking system architecture

Entity Systems are the future of MMOG development – part 3

Also known as: Nobody expects the Spanish Inquisition!

(because I’m now deviating from the original schedule I outlined in Part 1; what the heck, it was only a rough agenda anyway…)

Questions, questions…

First of all, there’s a bunch of good questions that have been raised in response to the first two posts:

  • what data and methods are stored in the OOP implementation of an entity?
  • where does the data “live”?
  • how do you do object initialization?
  • what does the ES bring that cannot be accomplished with an AOP framework?
  • what’s the link between entity systems and SQL/Relational Databases? (OK, so that one’s my own question from last time)
  • what, exactly, is an entity?

Let’s start with that last one first.

entity systems games design massively multiplayer programming system architecture

Entity Systems are the future of MMOG development – Part 2

Part 2 – What is an Entity System?

(Part 1 is here)

Sadly, there’s some disagreement about what exactly an Entity System (ES) is. For some people, it’s the same as a Component System (CS) and even Component-Oriented Programming (COP). For others, it means something substantially different. To keep things clear, I’m only going to talk about Entity Systems, which IMHO are a particular subset of COP. Personally, I think Component System is probably a more accurate name given the term COP, but then COP is improperly named and is so confusing that I find if you call these things Component Systems they miss the point entirely. The best would be Aspect Systems, but then AOP has already taken ownership of the Aspect word.

An entity system is simply a part of your program that uses a particular way of breaking up the logic and variables of your program into source code.

For the most part, it does this using the Component Oriented Programming paradigm instead of the OOP paradigm – but there’s subtleties that we’ll go into later.

computer games massively multiplayer networking programming system architecture

Some Myths of Writing Networked Multiplayer Games

Networked games use the internet, and the difficulties of making these games evolve on Internet Time, which means that the articles people wrote as recently as a year ago on how to make a networked or multiplayer game are already out of date. Most of the literature is more than 5 years old, and some as much as 10 years old – hopelessly out of date in the modern world of internet and online gaming.

Anyway, to get you thinking (I’m not providing definite answers here, but just some stuff to make you think about more carefully about how you’re doing your networking), here are some common rules that perhaps no longer apply the way they used to:

games design massively multiplayer networking programming

8 things to avoid when building an MMOG server

A few years ago, I wrote an article for Develop magazine – “10 MMOs you don’t want to do”.

Here’s 8 things you really shouldn’t do but that might seem like a good idea if you’ve never made an MMOG before.

All these are examples of things that have been done on real MMO projects, usually MMORPGs.

  1. use off-the-shelf middleware from the enterprise industry. It’s designed for completely different usage-patterns and cannot cope with MMO style usage. Equally, initially distrust anything from traditional Big Iron companies.
  2. think that Grid Computing will somehow magically solve the problems. It won’t (c.f. previous point).
  3. aim to code the server in a scripting language. You *can* run some scripts embedded in the server, but not the server itself – but even that can screw you when you’re trying to run thousands of scripts at once
  4. assume that front-end load-balancing will solve any problems. It won’t, all it does is increase the efficiency of your cluster by a small amount. And it usually won’t provide you with failover, because most game designs will end up kicking you from your server if it dies, so the failover never gets used at that level.
  5. ignore performance testing until mid-way through the project. If performance tests at 10% of the way through production say it’s slow, that means you’re in deep trouble – it does NOT mean that “we’ll come back and optimize it later”. Optimizing netcode and server code is NOT like traditional single-threaded local-only optimization: many of the things you’re dealing with (like LANs, and TCP/IP stacks) run orders of magnitude too slowly, so your optimization comes from imaginative system-architecture, not from optimizing small chunks of code at a time.
  6. ignore billing concerns in your core game design. Non-free MMOG’s are entirely about billing, which means that you have to design it in, and build it in to the tech design from an early stage. Retrospectively adding billing hooks and billing information to existing server codebases is often about as easy and effective as retrospectively making your code secure. Just don’t go there.
  7. hire an academic who specializes in networking, especially a PhD student (this gets done quite often). All this means is that they’ve obsessed with a very narrow slice of the many many problems, and generally they won’t know WTF to do about the rest of the problems. That’s no better than just promoting a general programmer to become “the new Server specialist”
  8. innovate on both technology AND game design at the same time. Either do a traditional MMO so you can re-use all the existing common wisdom for design, and get to market (or at least a stable GDD) fast, and use the slack that buys you to focus on better tech, or use the most boring tech you can think of (instance lots; do lowest-hanging-fruit in your tech design) and innovate on the gameplay

I reserve the right to come back and edit this to make it ten once I’ve had more sleep and can remember two more :)…

computer games entity systems games design massively multiplayer networking system architecture

Entity Systems are the future of MMOG development – Part 1

A few years ago, entity systems (or component systems) were a hot topic. In particular, Scott Bilas gave a great GDC talk ( – updated link thanks to @junkdogAP) on using them in the development of Dungeon Siege. The main advantages to entity systems were:

  • No programmer required for designers to modify game logic
  • Circumvents the “impossible” problem of hard-coding all entity relationships at start of project
  • Allows for easy implementation of game-design ideas that cross-cut traditional OOP objects
  • Much faster compile/test/debug cycles
  • Much more agile way to develop code