[MUD-Dev] [bus][des] Anarchy Online and the free MMORPG...

ceo ceo at grexengine.com
Mon Jan 17 14:02:00 CET 2005


Right. Surprised that no-one has commented on this so far (or have I
lost an MD thread somehow :) ?).

  http://www.anarchy-online.com/content/news/articles/8447L

Quick recap for any who missed it:

--<cut>--
  Funcom announces that the free Anarchy Online offer has been a
  tremendous success and will be fully extended throughout all of
  2005 and into 2006. Anarchy Online now has more users than ever
  before, and the player feedback about the experience Funcom is
  offering has been fantastic. The game is setting records on an
  ongoing basis, with more active players now than seen in the month
  of launch more than 3,5 years ago.

  It's currently the long-term goal for Funcom to make sure that the
  removal of subscription fees, client costs and the need to have a
  credit card when registering for Anarchy Online will become a
  permanent offering, making sure that anyone curious about the
  heralded qualities of the ultimate sci-fi MMORPG can play without
  any financial commitments.

  ...

  *Offer valid only on new accounts. No charges involved. Offer
  valid on all sign-ups until 15.01.2006. Other restrictions and
  conditions may apply. Offer may be terminated at Funcom's
  discretion in the case of unforeseen events. See registration
  information for details. The free version does not include access
  to any of the three expansion packs. Should you wish to upgrade to
  any of the expansion packs monthly subscription and client fees
  will be added.
--<cut>--

All accounts created between Dec 15th and Jan15th (just finished)
were credited with a one year free subscription.

There's a couple of interesting things here:

  1. It pretty strongly confirms the prediction made by myself and
  many others that the AO launch was the beginning not only of AO
  but also of it's own end. They never truly recovered.

  2. The Nintendo-fire-sale business model just got another devotee
  (c.f. Nintendo slashing GameCube prices to way below anything
  they'd have considered selling at because they had tonnes of stock
  to shift and retailers will simply return them by the tens of
  thousands if they suspect you're going out of the business; GC
  prices increased to a multiple of all the other consoles combined
  sales). I like to believe that Funcom planned this, with the GC
  situation firmly in their minds, although I suppose it's always
  possible that it was conceived in desperation instead.

  3. They seem to believe they had fixed their technology
  problems. It would be the last nail in the coffin to try this
  otherwise, no matter what the reasoning behind it!

  4. Runescape was a highly profitable business with > 30k players
  and zero subscription fee; in fact, their entire business is built
  upon that foundation. AO is now, effectively, free for all
  non-hardcore players and Funcom has made statements suggesting
  they've done their sums and the economics == profit. Is this the
  start of a major new trend? Perhaps the lure the mass market has
  been waiting for is for MMORPG's to commoditize down to the level
  of free Flash games?

  5. Seems a convenient time to re-appraise AO. So...

First thoughts:

  AO has excellent gameplay and some really fun stuff buried inside
  it. Everything from the art, to the concepts (a cyberspace grid
  you travel around in instead of just teleporting to locations), to
  the flow of gameplay (pacing, downtime, casual vs forced downtime,
  etc) are excellent.

  It's just a pity that - even 3.5 years after launch - the
  experience is frequently ruined by the incredibly sloppy coding /
  implementation. Sometimes you feel like entire sections of the
  game had no quality control at all. The thing is riddled with
  bugs, riddled with incompetent design decisions, and the
  architecture seems up the spout.

  If you can bear to push through the pain barrier (and, yes, a lot
  of the first week of play is so extremely frustrating or
  incomprehensible or simply unfair as to be almost physically
  painful) then it's great fun and easily worth paying for. But...if
  I were paying for this, I'd have cancelled my sub and demand a
  refund 3 times within the first 10 hours of gameplay.

  This is quite possibly a simple reflection of Damion's "AO
  Purgatory" theory: that the business side of AO's catastrophic
  launch and mediocre profitability led to them being unable to
  afford to implement any new fetures properly or to any standard
  beyond the most utterly minimal.

Bugs and Irritants: the big two

  There's two things that above all else drive you mad about this
  game: the GUI and the code-architecture. Even now, after a week or
  two of playing, both of them regularly drive me up the wall
  (although contrary to expectations I now take the GUI and it's
  awfulness largely in my stride, and it's just the arch that causes
  me to still bang the table in pure impotent rage).

How not to design a GUI:

  1. Never document any features except the bleeding obvious that
  everyone works out in 10 to 30 seconds if they've ever used MS
  Windows before.

  2. Especially don't document the fact that 20% of all keyboard
  keys if pressed when the chat window hasn't got focus (i.e. 90% of
  the time) will permanently remove elements of the GUI from the
  screen, and CAN ONLY be brought back by pressing the exact same
  key again.

  3. Have approx 100-150 settings hidden in a sub-menu of a sub-menu
  which include such things as "Fix the mouse bug yes/no?" (default:
  no (!)) and which are forgotten or remembered AT RANDOM from
  session to session

  4. Use a slotted/compartmentalised inventory with 48 slots that,
  when you die, is returned to you in randomized order. Make sure
  that for practical purposes it's only feasible to have a small
  portion of the inventory open at once, and definitely make sure
  that most items have 100% identical icons, so that it's impossible
  to distinguish between them without going into a separate UI, so
  that sorting becomes critical. The same sorting you regularly
  randomize.

  5. Every spell (of which there are approx 1,000) and every attack
  action (of which there are approx 10) and every combat action
  (approx 20) has a random setting of whether it activates on:

    - the monster you are attacking
    - the person you have selected as your current target

  Make sure that EVEN IF you have selected another target, your
  monster always appears directly in front of you and ALWAYS shows
  up as your current target (so, if you target something else whilst
  fighting, you have two targets simultaneously, both shown
  identically and indistinguishably without casting a spell and
  waiting to see which one it hits!).

  Doesn't sound too bad. Well. Wait till the player uses attack type
  D for the first time in his life in the middle of a combat (having
  used A, B, and C up until now) and watch him cry when it turns out
  that C will happily cause you to attack YOURSELF if you happened
  to be targetting yourself.

  Also make it so that practically all healing requires you to
  target yourself, and in a hard battle has to be triggered in sub
  one-second. Now laugh at the vast number of times people try to do
  a special attack whilst doing 3 or 4 heals in a row, and the
  special attack turns out to be a "happily commmit suicide because
  your avatar is incredibly stupid" kind of attack.

  6. Randomize client-animations so that 50% of actions are "play
  animation in parallel with sending message to server" and 50% are
  "wait for server before playing".

  Even better: randomize not only the animations, but also the
  client-side logic to enforce user-actions!

  So, one type of heal you see you heal yourself but also get a
  message "you cannot heal at this time" (paraphrase).

  Often, your health bar goes down for no reason, and then 5 seconds
  later an explosion hits you and the health stays put.

  I appreciate the concept of QoS for network packets, but how many
  bytes, exactly, would it cost to send the animation-UID in the hp
  packet? (a guess: at most 2).

  7. My favourite one of all: when the player zones, or the server
  gets ANYTHING complex to do, or the client renderer has a lot of
  work to do, freeze the entire GUI.

  When I say "freeze" I mean "take a screenshot, disable the mouse
  and keyboard, and paint that screenshot to the screen. Leave it
  there for up to 5 minutes [I counted a couple of times] whilst you
  faff around".

  This is especially good when combined with team play:

    A: heal C
    A: B!! You need to heal C too! we haven't got enough!
    A: B, heal C NOW!
    A: B!
    [C dies gradually]
    [team kicks B out]
    [B's screen unfreezes and B discovers he's been kicked out of
    team and then been slaughtered by a monster they left him to
    kill on his own]

  Which leads nicely into...

How not to design your architecture:

  If your game nearly went out of business because, at launch, you
  neither stress tested your game appropriately nor had a game that
  could handle even a small number of people in one place together,
  then don't you think it would be rather a good idea to fix this
  before making the game free?

  I haven't conclusively determined whether the following is a
  server problem or a client problem. Polling other people, and team
  members, suggests that sometimes it happens to everyone equally,
  and other times it does not. Sometimes, it clears up after 30-90
  seconds, other times it does not. That long a time frame suggests
  it's server-side rather than client - except see below.

  A typical AO zone is an area approximately the size of Trinsic
  :). I'll refrain from whinging about the number of games with
  massive painted walls in the middle of the grasslands who could
  have used a real server arch and had seamless zones. However,
  every time you walk across the boundary from one zone to the next,
  you suffer a "total GUI freeze" that lasts anywhere from 20
  seconds (if you're really lucky) up to several minutes (happens
  often).

  The freeze is proportional 80% to the number of people in the new
  zone and 20% to how recently you've visited it. The former
  strongly suggests bad server code. The latter COULD be poor
  DirectX/OGL batching (very bad texture streaming; unforgivable
  really not to stream-in-advance), or it could just be
  cache-coherency style issues on the server (perhaps the player
  data is retained on the old server which slightly reduces the
  zoning time).

  Then, insult to injury, if you zoned into somewhere with lots of
  people, your frame rate is approx 0.05 to 0.1 frames per second
  for anything from 20 seconds up to 2 minutes. In one extreme case,
  it was still only one frame every 2 seconds something like 5
  minutes after entering the zone.

  And - of course! - the GUI again freezes between frames. Even the
  mouse cursor is frozen. No team chat for you!

  The worst thing about this (leaving aside battles, where these
  pauses also happen, but very occasionally instead of every single
  time as with zoning) is that you have two major scenarios and AO
  is terrible at both.

    1. Teleporters.

    Teleporters dump you into a small subsection of a zone where
    there are, by definition, many many people, because there are
    only 20 or so teleporters in the whole planet.

    So, zoning in through these is painfully slow. This is where the
    second longest waits occur, but they occur nearly every time -
    unless you go online when lots of people are asleep.

    2. Walking along the road / woods / plains

    This is just the "giant wall with a painting of the other side
    glued to the front" scenario. Obviously, there are practically 0
    people the othere side. However...this really really really
    needs to be fast; you can tolerate a delay whilst being
    teleported somewhere (heck, they could even play an animation if
    they weren't so busy freezing the screen solid!), but walking
    along a path and then suddenly freezing like a stone is NOT
    conducive to player happiness.

    My longest recorded waits (5 minutes or more) were walking along
    the road like this. God forbid you should accidentally step
    backwards once the process is complete (yes, you do have to wait
    ANOTHER 5 minutes to go back to where you were :().

    Just in case you're sure this is all server-side problems, let
    me outline something I've seen a couple of times. I've watched
    the sky-box being DRAWN to the screen after alt-tabbing to
    windows (by accident!).

    This is a classic symptom in mainstream game dev of the graphics
    card dumping it's on-board textures + geom when the OS grabs the
    surface to do windows rendering etc. When the user swaps back to
    the game, the game has to download all the geom + textures
    again, which could be many megabytes. With AO, a simple beach
    scene with large cliffs and little detail takes almost a minute
    to draw the first frame, and you can watch each little chunk of
    geom being loaded and blitted onto the background.

    I have no idea why this is happening. I noticed it several times
    on GeForce2/4 cards, both of which are more than capable of
    rendering exactly that scene from cold in way under a
    second. So...it's just possible that the massive "lag" times are
    in fact really bad client-side 3D engine code.

....

Well, that was a quick tour of the biggest glaring problems. If
anyone's interested (and I get time) I'll follow this up with a
quick tour of some of what AO does really really well.

Even though some of that is tinged with a little bitterness too,
it's worth pointing out that the major fundamental non-battle
gameplay element of AO doesn't have any flaws at all that I've seen
(PS: it's not crafting! that's the second biggest non-battle
gameplay bit :)).

The tragedy here, IMHO, is that this - the best bit of AO - would
work 100% as well in a text-only interface. So much so that I'm
tempted to write a web-based game based around the same concept
(with an equivalent of the battle side, but without the massive
expense of writing 3D clients and masssive virtual worlds). This is
very sad, since it seems to be the rich clients that Funcom have
consistently been incapable of developing, and supporting
(i.e. making a server that can handle their traffic reqs), and
probably which have taken an awful lot of the development time.

Although...AO certainly wouldn't be anywhere near so tempting if it
were just it's core. But more of that next time...

PS: now that I've played for free long enough to get hooked, it's
going to be a major effort keeping from playing it every
day. Despite it's flaws, it's *that* good...I just wish someone at
Funcom had done a better job of deciding how to architect and
implement the thing :(.

Adam M
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list