Adopt one today!My Dragon egg ... click here to get one of your own
May 15th, 2008 by adam

Robert Mitchell, Sony Online Entertainment

Summary

Interesting to see what they’re doing, we’ve been looking at a lot of similar stuff recently. If I were in their position I’d want to try hacking the IDE to make it integrate with their build system directly - the speaker said that highly integrated build systems are a must for this stuff, but that doing everything inside the IDE with no external clicks or actions (like a “check in to perforce” action) was also essential. You can’t do both 100% without modifying the IDE; I’ve done that before for stuff we did for PXC, and it works like a dream, ONCE you’ve got it working ;).

I’m not sure I really captured the details of what was said, I found it quite hard to follow at times exactly what points were being made. I think the lecture would have been more fun if he’d left out the whole idea of trying to write a game during it - I’d have trusted him that he could do it if he’d merely said so. It’s pretty obvious from the concrete parts of the lecture that they’ve got together enough of a framework - and, more importantly, enough of the required mental attitude to prototyping - that they could feasibly do this quite easily.

I suggest you pay particular attention to the point that a lot of stuff that in reality is hard becomes easy if you remember you’re going to throw away everything you make - e.g. leaderboards and anything data-based like achievements are really really easy to add if you don’t bother to think about scalability issues ;). Obvious point, but worth remembering.

My own commentary in [ square brackets ], any mistakes/misunderstandings my own fault :).

Empower designers

This is the Secret Sauce. Get your designers writing code early, during prototyping, so that by the time you hit full production they actually are competent.

Writing script is writing code; treat it exactly the same: use code control, do code reviews, everything. So, it’s too much for designers, get them to change only simple code, not to write stuff from scratch.

With Free Realms, we gave all the designers Flash, and nothing happened for the first few weeks. This was all new to them, takes time for them to learn.

They did lots of googling, as that’s what designers are used to. They ended up learning how to do basic re-creations of Tetris etc because that’s what was easy to find.

You need to give them a bit more direction, and although you leave them to it, you don’t just abandon them to work out everything.

Using Flash as the Framework worked well as a start, because of all the stuff that Flash provides out of the box.

Timers, Events, core Game-Loop - don’t get the designers to do this. Figure out what you’re going to need in the Framework - easiest way is to build 3 games in a row, first with no framework, then refactor some stuff into an FW before doing number 2, then more before number 3.

If you go to a Flash audience and say I want my logic on the server, then they look at you funny. But I think they’re starting to accept that this is the right way to go, and that it’s necessary. It was part of our absolute requirements.

We included “production capable” in our initial requirements, even though you should use your prototype only for prototyping.

For prototyping, we have one SWF that includes both client and server code.

For production, there’s a split between client and server - client has scaleform to do GUI easily, server has just the game logic running - would love to do it in actionscript, but expect to have to rewrite in C++ after prototyping compelte, or write a flash -> C++ compiler.

For testing (working with external outsourcers etc), we used Smart Fox. It’s great, but the version of Flash is version 1 Flash, doesn’t support most stuff - you need to use Java on the server if you want to use SF right now.

Framework contents now

[ADAM: obvious stuff like Event queues, keypresses, sound, etc]

We do mostly level based-games, so we have a part just for doing level management, may later add a “turn” part.

A bunch of Network-related pieces, including stuff to simulate network delay, packet drops, etc.

Making a game from scratch during this lecture

Now going to build a game in the remainder of this talk. First we’ll look at some basic levels premade.

1: find hidden object game, with basic popover dialogs, cliks, timers, reset score and status, sprite rendering.

The interesting test is can I actually run this via a server?

[ADAM: using perl for the server at this stage]

[ADAM: showed same game but with the code split between running in a “server” app and a “client” app - just run both of them side by side on same machine.]

2: Simon

[ADAM: standard Simon says, just adding a couple of sound playbacks now and simple sprite animation]

3: Wack-a-mole

[ADAM: added custom cursor, and graphics embedded in the dialogs with a basic layout engine by the looks of things]

[ADAM: added more standard game features, like powerups, and randomized traget enemies, with status per-enemy (ones that need multiple hits to kill). Also added achieements for simple things in the game]

4: the miner game in FR demo presentation

[ADAM: showed it and played it manually]

[ADAM: 1.7Mb SWF with 0.5Mb sound file too by the looks of things in window explorer]

[ADAM the same basic dialog from the other games - 5 second countdown timer is the whole game, with the same basic scores display on screen etc.

Rule of thumb: don’t put code in you FLA file, because it stops you doing revision control etc.

I’m down to 3 minutes, and I still want to fulfil my promise, so you’ll have to visit me after the talk, because I think 3 minutes is going to be a bit too optimistic even for me!

Q: we’re working on client/server flash model. Have you tried the opensource AS9 compiler from Adobe

Our requirements are CS2, not CS3.

The server side to us is the easy side, since we’re an MMO company. That’s where we as a company are likely to add most of our value, because that’s our big strength, that’s where the really hard problems are.

I’m not sure that even fi I could now, I’d run AS on our server. We run Lua and Java, so it’s not much of a stretch to run compiled AS.

C++ is the better choice for us for server code, we want to do distributed network backend for it, etc.

Mostly, I can write compilers to convert AS into java, C++, etc.

Q: have you tried XP by putting a designer with a programmer?

Most of our studios are using Scrum, so in practice yes, because of the mixed-ability teams used commonly in scrums.

Ideally, yes I would do that, the wasted programmer time will go down as the designer comes up to speed. But currently I’d put a junior programmer on fixing the code.

Q: You mentioned you had support for achievements?

Leaderboards and stuff is really easy stuff to do. Once you have the data it’s easy to do [adam NOW AY!]. Well, it’s a prototype, so with a prototype, it really is easy to do!

ADAM Q: did you think of sending designers on training courses?

Hard to find CS2 courses.

I’d rather have them focus on game design than on becoming competent junior programmers.

Q: [ADAM] why did you add framework libraries for simulating network problems like latency and packet dropping - why not do this with standard on the wire tools?

Because we’re running the client + server code on one machine, so there is no server, it’s much faster compile/test/debug to run it locally on that one machine just using a pair of SWFs.

(Q2: if you could easily have servers for each team, with 1-click deploy of the server SWFs (e.g. window networking, drag/drop each new saved SWF to the server), would you do that?)

No, because I want zero-clicks, not 1-click.

You want to keep the designers entirely in the IDE (Flash) at all times, rather than having to remember to go outside of it and do additional tasks. Remember, the aim here is to take all obstacles away from rapid iteration of finding out what is fun and not fun, not iteration of creating production code.

May 15th, 2008 by adam

I’ve been nagging game developers to writeup every game-conference session they go to, and blog it. I think this will serve a bunch of extremely valuable purposes, including:

  • make sure that good talks and speakers get their work indexed by google; google isn’t great at finding stuff inside Powerpoint slides, and conferences only have a 30%-60% hit rate on managing to get the slides online anyway!
  • provide rich, public, feedback on what’s both good and bad in talks, making it easier for ALL speakers to improve their technique and content choices in future.
  • get the honest feedback of industry insiders on what people are saying and doing at conferences, instead of only getting the opinions of journalists and players. Most of us in the industry have lots of extra non-public information about the context of what people are or should be doing. We can’t necessarily say that explicitly, but we can let it inform our judgements and intrepretations of what people say and present.

Darius agreed this was a Good Idea, and at this week’s conference he took it one further: he’s made a feed aggregation so that all of us who do this can have our posts AUTOMATICALLY pulled together into one single RSS stream. Cool!

FYI, this was done in Yahoo Pipes, and is a great example of what you can do with things like Y!Pipes - you have an idea of stuff you want to pull together that would have taken maybe 15 minutes of coding, and half an hour of putting scripts up on a server etc, etc, etc - so you’d never get around to implementing it because it’s just *slightly* too much effort for the perceived instantaneous value. But with Y!P, this would have taken Darius seconds (not even minutes) to set up - and you can even see the filter he made, as a graphical flowchart whose code you can one-click steal and re-use yourself (it’s on the LHS navbar at the link above!)

We will *definitely* be doing this for future conferences - and continuing to recruit more game industry people (and anyone else who attends the conferences - all writeups welcome!) to the conglomerate. For now, send your blog address and conference tag to Darius.

May 14th, 2008 by adam

John Smedley, Sony Online Entertainment

Summary

Free Realms is generically a combined Runescape / Club Penguin clone with strong elements of Black and White - but all done in the EQ 3D engine (at least the graphical quality appears straightforward EQ client level of quality - low poly.

The Agency is a spy game set in a very direct clone of Team Fortress 2, but a bit simplified and less polished. Which is not a bad thing - TF2 is exceptional, but themed as nothing more or less than a quick fast battle - bolting on a more traditional game (by adding the spy game parts) could make for a very nice game.

FR leaves me cold - it’s doing sensible things, but I have no confidence in my ability to predict what is or will happen in the RS area of the market. Base on my own experiences in the middle of some of it, everything that’s happened to date has been easy to predict in hindsight but damn hard to see coming in advance.

But TA looks like a lot of fun already.

My own commentary in [ square brackets ], any mistakes/misunderstandings my own fault :).

Free Realms

for instance - combat is a CHOICE, it’s not a REQUIREMENT.

free realms harnesses the power of web 2.0 to create an amazingly connected metagame - [BUZZWORD BINGO!]

[Snow. Lots of snow. And giant mushrooms. No badgers, though.]

[They’ve copied the OS X Dock to be the core menu in the GUI]

Teach your dog to pee on the fire hydrant - [black and white, mark 2]

Play a hunter class, go out and do standard MMO combat, and capture a monster instead fof kill it, then convert that monster into a CCG card equivalent

[station account signup in the “less than a minute to start playing” has about 8 too many fields on the signup form. Compare to the signup screen for Runescape. Or any major Web 2.0 property. Hint: modern web properties can fit their entire registration form into a couple of lines]

5 game accounts for $5.99 - the “family” account

[essentially, 90% of it is a direct clone of Club Penguin, only with a 3D world client instead]

Share the Wealth - anyone with a blog, e.g. an uneployed person looking for extra cash, will get a small percentage payent of cash for every single person that refer to us. We’re radically reinventing the business model for MMOs.

The Agency

next generation crafting - living loot. you acquire characters as loot. then are sometimes AI controlled NPC henchmen, other times mission givers and vendors.

I gotta say I spent many many many hours in this game (planetside)

supports headshots for instant kill.

what clothes you wear at a given moment entirely controls your character abilities. [again, major clone of TF2]

its a modern-day persistent shooter.

May 14th, 2008 by adam

Moderator: Jason Roberts, 38 Studios
Steve Danuser, 38 Studios
Darius Kazemi, Orbus Gameworks
Troy - ??? wasn’t in the program (was in program as Scott Hartsmann)
Osma Ahvenlampi, Sulake

Summary

This was a surprisingly good session - not only was it 9am in the morning, the night after the official conference party, but it was also a panel session (which, as several people were commenting to me yesterday, tend to be bland and sucky at games conferences. My own experience is that moderators of panels at games conferences often have silly / selfish reasons for the panel, and so they do a poor job. e.g. when they admit that they just want to meet / befriend / privately interrogate a particular person, so they create a panel session).

In particular, props to Jason Roberts for prepping this really well. I spoke to him briefly afterwards and asked how he’d decided to do it. Apart from the obvious thing of thinking up a bunch of good, reasonably specific questions (many moderators think up bland, crappy, vague questions, usually because they themselves know NOTHING about the topic (”I’d love to learn about that topic” being one of the common crap reasons that bad moderators have for deciding to do a panel!)), he also had a 30-minute pre-panel conversation with all the panellists together, so they could meet each other, find out what each other thought and did, and experiment with what they were going to say, etc.

So, a lesson there for any future panel organizers ;).

The session in general didn’t really reveal anything greatly suprising, but was information rich, a lot of good stuff there. A few gems, like Darius saying that he would routinely datamine the chat logs for the MMOs he worked on, searching for keywords (nothing new), and use the surnames of senior executives at the MMO dev company as keywords (as far as I know, that IS unusual - and a great idea ;)).

My own commentary in [ square brackets ], any mistakes/misunderstandings my own fault :).

Moderator Questions

[ADAM: I couldn’t keep up with the questions being asked by the moderator, couldn’t type them and the answers fast enough. Darius emailed me his notes from beforehand of the questions, but I couldn’t easily fit them to where they were answered :(. So, I’ve included them here - read them first, and then hopefully the flow of the speaker’s answers below will make more sense :)]

* One of the more difficult things in makng a change is identifying areas that need it first. What techiques or lessons have you learned about where to look, how to interpret what you find, and select the right choice among the possibilities?
* Changes in a game always threaten player confidence. There is always someone who likes things exactly how they are. What kind of recommendations can you make for helping to keep player confidence high throughout the implementation of needed changes?
* Exploits and cheats. The dreaded killer of fair play. What kinds of problems should we be on the watch for, how can they be most quickly detected, and what should be done with the players who take advantage of these holes? What might be the circumstances in which an exploit is actually helpful to the game?
* When a change is necessary for the short or long term health of the game and may be negatively viewed by the player base how can this process be most effectively managed?
* Do you have any stories of a change or changes made within a game that led to a result you didn’t predict? What do you believe should have been done differently and what would you predict the outcome would be with that difference?
* Is there such a thing as a “window of change” where you can make changes to a game but if that window of time is missed it is better to leave the game alone?
* Similar to the question above is there a time when it is better to make major changes to a game than others? What or when would these be?
* Invariably with even minor changes there will be a portion of the population who will take it upon themselves to crusade or protest the modifications to their beloved pastime. How do you predict and manage these players to minimize negative perception of your game?
* The players will often be a source of change themselves asking for features or modifications. How do you go about listening to the varied opinions and deciding which of these suggestions brought from the player base itself get incorporated into the game?
* Is it ever appropriate to make changes that are so large they fundamentally alter the game and the ways in which it can be played? How far is too far when making changes, where do you draw the line?

Introductions

[ADAM: I didn’t type the personal biographies and first question, because I had Technical Problems with my laptop. Apple’s got some usability problems with the UI for Keynote. Sigh]

darius

so much vitriol can come from changing inventory related stuff, so having finegrained info on what everyone has in inv, and how much, etc helps enormously with nerfing design changes.

There was a meeting for Dungeons and Dragons Online (DDO) where they were arguing over an axe that was ridiculously over-powered, a 1-hour meeting, and darius happened to walk past, and said “well, I can tell you how many people actually have one”. turned out to be 20 people in total, so they realised it was a non-issue and they could safely nerf it.

steve

things like Guardians running around naked tanking epic mobs etc, stupid stuff because the stats were way out from what they should be.

messaging this to community has to be handled very delicately.

the combat revamp arrived on the same day as a new expansion launched. So, combined the need for players to relearn the basic game stats and balance with accessing all the new content, which was a big headache - too much change at once for players.

darius

try to identify thresholds on the metrics we collect - “we want to see a report every day on all the quests that have been abandoned more than 5% of times” - etc, so that the actual volume of queries/reports is small enough for people to handle.

Identifying outliers is really important, but sometimes those are actually what’s really fun. Sometimes Emergent Gaming is an outlier.

osma

with every change we start with a business objective: improve conversion rate, increase number of buddies that players have on average, things like that.

make the measurement ahead of time to be able to do Before - After comparisons.

Things that affect the economy and inventories are the easiest to mess up

troy

nobody likes change.

even the smallest changes can create hysteria in your community

any change we introduce (mentioned the recent server-merge as particularly disruptive) - starting well before the change we make sure we communicate as much info as possible to the community.

forums are interesting places to be, full of interesting stuff to read, but not necessarily indicative of the truth of what’s going on. metrics balance that with accurate figures of “how many people are affected” etc.

don’t treat player community like children even if they’re acting like children.

gives them more confidence in your product and more loyalty.

steve

the ideal window for making game changes is beta. Doesn’t seem to work that way in practice, so I’d say that the first year is the best time to do it out of what you practically have to do.

your name is still out there, the product is still visible on store shelves, etc.

past the first year, and dealing only with existing subs, when you have little opportunity to acquire new users, it gets dangerous

[ADAM: I was disappointed by that answer - at the 12 month threshold is definitely NOT the right time to be reducing change magnitude IMHO - that’s a time to be *consistent* about how much you change things. Also … the idea that after a year you’re mostly servicing existing customers rather than trying to acquire new ones? That’s a pretty contentious thing to advocate]

darius

if you have some data that FORCES a change, would you (all of you) show that to the community to justify what you’re about to do?

steve

be careful about making sure you’re not giving the impression you’re letting the players take a vote on it - don’t want to set the precedent that you’ll do “whatever the community demand”

troy

depends on the sensitivity of the data - in general it’s essential to put it out to the playerbase, but definitely don’t let them think you’re letting them vote on it [i.e. what steve said]

osma

there’s no such thing as window of change - or if there is, it’s “the first 20 years”

players will get used to what you do - so just keep making changes until they get used to it!

forums are an interesting place, but make sure you don’t pay too much attention to them

most players wont actually tell you on forums until too late, until you’ve screwed up in a major way.

these guys are amateur designers at best, so make decisions confidently off your own back, and make sure you have the data to back up your opinions, that you’re not guessing.

troy

early in my career I sent whole threads of info in emails to the designers, quoting huge chunks of player-wording, and freaked out the designers with details of the player base.

now I find community managers are really good at just pulling out the kernel of what’s going on, providing just the key points very quickly

too much information, and it becomes potentially unhealthy for the community and the game

steve

yeah, community mgrs distil out the nuggets of gold. SOME designers will live on the forums and have thick enough skins to stay there and see it all, but most dont.

the com mgr needs to be one of the leads on the project, and their feedback needs to be really EXAMINED and LISTENED to.

when done well, the project leads investigate this stuff and get to the root cause of what’s really wrong - which may be different from what’s being complained about; the complaints are sometimes just symptomatic of the problem

darius

exploits and cheats usually show up as outliers - or else they have no real impact and aren’t a big problem anyway

I’d find the groups of people participating in these exploits. Usually it starts with a core group of 5-10 people on just one server. so, first you can identify the people who first exploited it. Then you can watch the idea expand to more people, but also hop from server to server.

now you know who found it, who seeded it and - more importantly - who COMMUNICATED it

[interesting way to find and choose early adopters ;)]

send that to CS, who snoop on those accounts and work out if its gold farmers - i which case just ban them - or genuine players - in which case you probably have a gameplay / design problem if they’re deciding to make use of this

steve

designers in UO/EQ would innocently make mistakes where they don’t realise the impact of their changes

more modern generations are a bit more closed, don’t have so much allowance / support for emergence, with the designers exerting much more direct authorial control.

but you have to bear in mind that stuff that many people think is “unfair” is to other people actually “what makes it especially fun” - especially discovery of emergent gameplay that gives big advantage

(all)

look at the impact of the advantage on the rest of the game to decide whether its exploit or emergent gameplay

steve

SW:G obviously has the most drastic re-design of any game [ADAM: the infamously badly-received New Game Enhancements], and I think people agree that was probably too far.

you have to look at the long-term health of the game to decide whether a major sweeping round of change is too much, there’s no single line of what’s too much

osma

I think you can actually make pretty HUGE changes in a game and its OK, so long as you do it in small discrete steps, and give the players the chance to accomodate to each change a little before adding the next small step.

darius

one of the things I was most happy about with LOTRO was that by the time we went live everyone was pretty much happy with the gameplay / design, because we did so much iterating over problems using the metrics and then redesigning to fix them.

I think to this day still they’ve not needed to change much at the basic gameplay level

Questions

Q: are there any tools to help with this, or do you just have to manually mine the forums etc?

troy - I’m working with people from washington University to automatically datamine some of that and try to identify thought-leaders, then we’ll target them specifically as conduits for new information

darius - i set up a bunch of keywords and checked them against in-game chat. Stuff like names of executives, the company name, or the names of particularly important/powerful items etc.

From a more community aspect, I like to have a full social graph of the game: complete map of “who’s friends with whom?”. Can easily run many different metrics against it to determine key players in different contexts, and then you go and talk to them directly etc.

[ADAM: wonder how easy it would be to create this tool in one day using just a list of names participating in chat logs?]

osma - there are a lot of trackers for this stuff in the web world - Meme-trackers etc. Works great - but only if you know where the conversations are happening, we have 30 or 40 particularly large fansite forums where subsets of our game hang out, so we have to careful to track and examine EACH and EVERY one of them

Q: [ADAM: I didn’t hear this question]

osma - we’re following a very tight launch schedule, with a global update every month - and that’s substantial changes each time, economic changes, etc.

its not really for community sake that we do the tight iteration and schedule its for us as developers becuse it makes us more productive

steve - we had planned changes weeks ahead, but then emergencies come up that you have to do immediately, or “today”. And sometimes a change you need to make is too tightly coupled with something else you were changing in the current PLANNED update, and then you can’t deliver both together because they conflict. Have hard decisions which to drop or bump to later in schedule.

Q: best practices for scheduling play time etc?

darius - from numbers side of things its important to have a large enough sample set of people in the beta. From a technical side, at some point in your beta you want to have a full shard. Double XP weekends etc to temporarily get extra people in for TEMPORARY stress/load testing during beta etc.

steve - beta doesn’t mean what it used to mean any more? nowadays its about “how long will I get to play this game for free?” rather than “this is a pre-release”.

It’s about using players who’ve played many other games already. Be careful when you open up, don’t invite too many people too early. Although it comes down to how good the game is, better management of influx of players helps a lot with damage limitation.

I can’t advocate saying “its fixed in the next build” and not actually following through with it .

Q: re: datamining chat, I’m going to start talking in code (or Swedish perhaps). But .. .the question is what phrase do you get from communities that really winds you up?

troy: “this is a slap in the face”

steve: “the red-headed step-child”; anything reactionary

darius: I just love all the stuff they say, I’ve never been a community mgr, so I’ve been safe; especially fun to see what people say *in chat* about high level execs

osma : I don’t have any, I just get really upset when people disappear without saying anything at all

Q: [ADAM: me!] how many people is enough for a beta, and how many is “too many”? [ADAM: i.e. there are big problems from having too many too soon - mostly marketing or sales problems - but metrics won’t work if you have too few; deciding how many to have is often contentious inside MMO companies]

darius - start small, and gradually invite more and more. Aim to acheive the bulk of your beta tesers arriving just 2 weeks before launch, so they don’t have much time to play it too much etc. Start with a low level-cap and gradually increase it during beta, so you have a small number of people who’ve had the chance to get through all the content. we had 10k people in beta in LoTRO

[ADAM: it can be a real problem to have all your beta players having learnt how to powerlevel in the game BEFORE launch day, so that they churn through the live content within days or weeks of launch]

jason - depends what critical mass you need for it, how much you need to show all your core gameplay. start with lowest number and gradually increase to when you hit that number

osma - for us, its the whole community [ADAM: the beauty of non-subscription games!]

Q: signups versus concurrency, what percentages do you see in beta?

darius - 3:1 signups to concurrency. As beta went along that went up a bit. It was pretty high but thats partialy because we were targetting who we allowed in to beta

May 14th, 2008 by adam

(Cross-posting to the GDC 2008 tag so it shows up in the RSS feed)

I’m at ION 2008 at the moment, the conference-formerly-known-as-Online-GDC. Just like with GDC, I’m doing full writeups for each session I’m attending. Watch this tag / RSS feed…

May 14th, 2008 by adam

No writeup from me (hey, I was giving the talk, I can’t do *everything*), but there’s already a good almost-transcript up over at massively.com which gets the gist of things pretty well.

To go along with that, here’s the full slides from the talk (6 Mb). The originals were Keynote (OS X only, much better software for actually giving presentations - has some special features that Powerpoint 2007 still doesn’t have), but I’ve exported them to PowerPoint so that everyone can easily read them - so some of the fancy anims have disappeared and some graphics might be slightly skewed.

Download: Web 2.0 - how i learned to stop worrying v1.1

May 11th, 2008 by adam

A few years ago I wrote a web-service that would automatically create JNLP files, making it much easier to deploy java applications. They’re just XML files, but they have some very odd syntactical quirks and can be a pain in the ass to get working correctly. This post has an early alpha version that works as a downloadable application you can run from your desktop.
(more…)

May 1st, 2008 by adam

(I’m quoting a very handy short extract from Clinton Keith’s December 2007 Gamasutra article, so that I can find it again easily later. Clinton is/was the CTO of High Moon Studios, and is probably the most well-known proponent of Scrum in the games industry. Rather than wade through the whole article when I want to pass on some of his advice, I wanted to be able to copy/paste the relevant sub-bits)
(more…)

May 1st, 2008 by adam

(I’m quoting a very handy short extract from Clinton Keith’s December 2007 Gamasutra article, so that I can find it again easily later. Clinton is/was the CTO of High Moon Studios, and is probably the most well-known proponent of Scrum in the games industry. Rather than wade through the whole article when I want to pass on some of his advice, I wanted to be able to copy/paste the relevant sub-bits)
(more…)

April 30th, 2008 by adam

We’ve won; get over it … says Dr. Bartle (although if you’re reading this blog because of any interest in MMO’s and don’t know who RB is already, then … you have some reading to do).
(more…)