Take Baby Steps

A pet peeve of mine is overblown engines created by teams who haven’t even made a single MMO engine before. The honest truth is that most MMO development teams collapse because they can’t make the technology work. (This is very rarely the reason they admit to, though.) The server is harder to make than they think. The content creation pipeline is vastly more difficult than they expect. So MMO teams fail, more often than not.

In this environment of rampant failure, you would expect to see pragmatic engineers and designers who have modest goals and hope to do just a few cool things with their first game. Make a game with a working engine first, then go crazy with your SECOND game, right? But no, nobody thinks that way. There are lots of reasons why not, but a HUGE part of it is that they don’t think it’s going to be that hard.

“Our engineers are really smart. They’ve read why everybody else failed, and they aren’t going to make those mistakes. We have a brilliant new architecture idea that solves everything.” The sad part is that I never get to say I-told-you-so, because after these guys’ games collapse, the last thing they need is me kicking them when they’re down.

Have you ever looked into the various third-party MMO engines for sale? They are really very primitive, if they work at all. These are companies whose sole reason for existence is to create an MMO engine. And they can’t make it happen in a timely manner. And here your team expects to do all of that, plus make the world’s craziest new features on top of that and add 5,000 hours of content too. In two years. With an estimated cost of just 15 million.

Same old story.

I made the same sort of mistake when I decided to make a casual game. “Sure, everybody says they can’t make real money with indie downloadable games, but they’re doing it wrong. I’m really, really smart. I’m going to knock this out of the park.” My game was basically a failure. It sure didn’t make me rich. But I learned a lot — things I hadn’t even conceived of when I started — and my second casual game could have a real chance of success.

MMO engineers do the same thing. They think they’re going to knock it out of the park on their very first try. But in reality, it’s their second or third try that has a real chance of being amazing. Of course, unlike casual games, an MMO game can often take three, or four, or five years of toiling to get that first game out the door. That’s a big chunk of your lifetime to lose if you’re going to fail in the end.

Engineers are inherently optimists, and the best engineers are incredibly self-confident. I don’t want to change that. Hell, if people honestly assessed the risk involved in creating an MMO, very few teams would try to make one. And that would be sad.

But do me a favor. Start small. Yes, sure, your team is really smart. Way smarter than the team at Perpetual who couldn’t make their server and pipeline work after 4 years of continuous development. Sure, okay. But instead of shooting for the moon right away, could you make a simple version first? Make it a zoned architecture, like an old EQ1 server. Make that work, and if you have time left over, make it zone-free.

Just… take it in steps, okay? Sure, maybe you’ll have time to add flying mounts and realtime terrain deformation. But first just make sure you have path planning and collision detection.

You say your game will be the first to support 50,000 simultaneous players in a non-instanced contiguous landscape? Nice! But before you do that part, can you make sure your server supports 3,000 simultaneous players? (And no, your prototype that can handle 200 connections is not a good enough test. A few hundred are easy. Thousands are surprisingly hard.)

It makes me so sad when people fail after years of blood and sweat. And these failures could often be salvaged into fun games if the team hadn’t shot for the moon right from the get-go. Yes, you’re smart. I sure hope you are, because otherwise you haven’t got a chance of making an MMO. But being smart is just a prerequisite. Those other people who failed… most of them were really smart too.

This entry was posted in Design, Programming. Bookmark the permalink.

7 Responses to Take Baby Steps

  1. Talyn says:

    I’ll keep the subject on MMO engines but not connections. Look at Turbine’s engine (does that thing have a name?) first seen (that I recall) in AC2 which you worked on. Now we’re how many years later with DDO and now LOTRO under their belt, and the engine still chugs massively when it has to load and render any new textures. DDO recently got an update that improved this tremendously and I was really hoping they’d put that tech into the LOTRO engine in Book 11 but nope. Surely the dev team has to see this on their machines too? I’ve read countless forum posts where *that technical issue alone* has caused people to unsubscribe. Constant hitching when new textures and models pop into rendering range should have been dealt with years ago, and now they have a AAA title on their hands with the same amateur problems.

  2. Yeebo says:

    Actually, whatever they did to the engine in book 11 actually borked it for a lot of users, especially those with Geoforce FX series cards. I personally had to move some of my settings from near max to minimum to get my frame rates back to what I consider acceptable. I’m too damn addicted to quit over it, but if I was any where near the fence on LoTRO it definitely would have pushed me over it. This is my first Turbine game, but the only MMO I’ve played that I thought had a worse engine was Auto Assault (and for the record, building the AA engine with physics cards that practically no-one owns in mind….utterly insane).

  3. Babs says:

    Yep, book 11 is a bust for me in LOTRO as well. Fully maxed everything down to absolute minimum, and I still can’t win the damned horse race in Bree. Ah, well.

    I’ll sign wherever on the proclamation, Sandra. Please, all you smart people…be realistic, too.

  4. Sandra says:

    Last I heard it was called the Turbine Engine, but that was some time ago. One thing to keep in mind is that ‘engine’ for most single-player games is very heavily client-oriented, but for MMO games ‘engine’ also includes (and is sometimes primarily) the server side of things.

    Babs: Thanks, but Eric wrote this one. :>

  5. Babs says:

    Ack..hi Eric!! /sign

  6. Talyn says:

    Just from what I experience it mostly seems to be an issue of the engine not bothering to pre-cache textures, etc. but waiting until said texture, model, whatever is actually within visible rendering range and *then* loading everything. The server needs to tell the client what is slightly (guess someone needs to define “slightly” for this purpose) outside the client’s visible range and get things pre-loaded before they just *POP* on-screen and our pc’s are brought to their knees with hard-drive chugging, texture and post-processing effects applied, and so forth all at once.

    DDO was horrible about it too until the last engine update, now everything flies.

  7. Tzing says:

    Good article. Totally corresponds to my vision of this subject. There’s no need to try to swallow an elephant. Maybe some mouse stake first.