[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