dev-process iphone massively multiplayer mmo signup processes programming

iPhone: why’s my download stuck at 1.4 of 1.6 Gb?

Your possible answers include:

1. Because … Apple engineers have never heard of the concept of a “patch”, and require you to re-download the *entire IDE*, with all libraries, all documentation, all binary code – everything – when they release an update? So the current “SDK” for iPhone (hint for Apple: when most people say “SDK” they don’t mean “plus a copy of a bloody operating system”, they just mean “the few custom bits that are specific to that app”) is a whopping 1.6Gb?

[NB: actually in general I think that’s a good thing – avoids a lot of mis-configuration / version mismatch problems – but as an MMO developer the idea of *not* patching gigabyte-sized packages horrifies me, and avoiding those problems actually isn’t THAT hard (it’s been solved many times by now!) these days. Writing (or buying) a good patcher is one of the first steps you do in MMO dev projects…]

2. Because … Apple didn’t think to split The Behemoth into multiple files, perhaps make them something reasonable, like a few hundred meg each?

3. Because … Apple decided to put this monster behind an authentication check on their website, presumably for legal reasons, and there is no other “official” mirror (all the ones you find on google are technically-illegal torrents or else, ultimately, redirect you back to the link), and their authenticated sessions TIMEOUT after 1 hour of “not fetching any new pages from the site” (completely ignoring whether you have any transfers in progress!), and refuse to send you data once your authenticated session runs out?

4. All the above?

NB: I wasn’t brave enough to try resuming the downoad without first re-authenticating and loading at least one web page from the apple developer site to prove I was logged in. I suspect (*suspect*) that the web browser would receive an HTTP 300 redirect to the login page, at which point most browsers are going to delete the partial download. Ha. Haha. HAHAHAHAHAHAHAHAHAHAHAAARRRRRRGHHH!.

Expect to see some comments/tutorials/advice on iPhone game development here at some point in the near future. If I can ever get the download to complete…

NIO Server programming

Project moved: java NIO servers

Because WordPress is so poor at handling file uploads (AND because the new WP versions introduced incompatibilities somewhere that make some of the original blog pages 404 even though they are in the WordPress folder), I’ve created a SourceForge project for this (, and uploaded all the files there.

For those of you who wanted the source recently, there’s links to the downoad page from the SF page – the three files marked “version 1.0.0” are *precisely* the same ones I originally uploaded to the blog post.

If I get time, I’ll check the source in to the SF SVN too, so you can check it out directly (and upload any modifications you make).


SL: the digital equivalent of a wife-swapping party on an oil rig?

(“embarrassing, empty, yet still really dirty”)

Courtesy of The Register.

(and some real information here)

games industry jussi vc deals europe massively multiplayer

Predicting player figures for any online game or MMO

Now that I no longer work for a large MMO publisher, I no longer have access to all the juicy numerical goodness, research, and stats that they had on their games and everyone else’s. A chance email recently suggesting I take a look at Xfire’s gamestats led to some quick experiments that came out surprisingly well. It’s given me a new predictor for player numbers for any MMO that’s available in English which is sufficiently accurate that I’m going to use it going forwards. Take it or leave it :).

(this is rather the opposite end of interpretation to “Over 1 billion people play online games” – and make sure you read Raph Koster’s thoughts before trying to interpret these figures)

What are these used for

Even though there is NO audited, trustable source for these figures, we already know that the public “guesstimates” like are routinely used:

  • in audited (!) company annual reports as a reference point (especially in China and South Korea)
  • by publishers, when deciding which game projects to fund (used directly in projections of potential market-size – and hence how much cash funding to provide!)

These numbers are *seriously important* to the industry (like it or not!).

What’s out there – official figures

There are three types of official figures for player numbers for online games:

  1. Very precise figures included in the quarterly or annual audited company accounts, and legally-required to be accurate
  2. Detailed figures included in press-releases and/or conference presentations
  3. Vague figures cited in public interviews

Public companies whose primary business is online games are often expected (required, perhaps?) to publish precise figures (a side-effect of the rules on what they have to stick in their annual reports). Not all do (?), but noteworthy examples include:

  • NCsoft (one of the best-known publishers to do this, and the one with most “global” data, covering USA, Europe, and Asia)
  • CJ Internet (South-Korea + Asia only)
  • Giant Interactive (China only)
  • NetEase (China only)
  • Shanda (China only)

You … may well note a trend there. These figures are useful, and aid businesses operating in Asia, but by comparison life is somewhat harder for anyone wanting to sell into America or Europe. In all fairness, there are American and European companies that chose to (usually irregularly) make official statements via Press Releases, but this is an order of magnitude less detailed and usually less accurate than what would go in an annual report for a public company.

(NB: IMHO, the American and European economies and industries suffer for this lack of transparency – business models are more fragile, staff are less well-informed, decision-making is weaker, etc).

What’s out there – estimated figures

  1. Bruce Woodcock’s – guestimates extrapolated from superficially similar games with official figres
  2. – guestimates from a private methodology
  3. Vague figures cited in public interviews
  4. Independently measured figures

Bruce started out by taking as many of the official figures as he could find, modelling graph-based trends, and then re-applying those trends to missing data to try and extrapolate or interpolate the missing items. Where a game has never had ANY official figures, he took estimates based on a wide variety of inputs, everything from unsubstantiated rumours through to unofficial figures “leaked” by employees of the companies that were running the games.

Good points: (mostly) documented estimation process, started with accurate data, includes data for many games, includes detailed writeups explaining which figures are “accuate” and which are “guesses”, and ascribes an estimate of the amount of error in each individual estimate
Criticisms: assumes all games behave similarly in growth/shrinkage, updated very infrequently (every 4-12 months)

Phil‘s VOIG was started apparently in frustration with the slowness of updates to Bruce’s figures (originally he updated frequently, but over time updates got less and less frequent). Phil doesn’t divulge his methodology, and you cannot download their figures (although you could read the website visually and type down each individual number. Umm. No, thanks).

Good points: *still* more frequently updated than Bruce even though Bruce has tried to speed up again
Criticisms: unknown methodology, unknown error-margins, poor data format, no download of figures available

Lots of games industry staff believe in sharing their figures more openly than their managers are willing to. On top of that, it’s often difficult or very difficult to answer a journalist’s question in an interview – or to explain a decision made during a post-mortem or conference talk – whent the audience have no idea what the underlying figures are. So, we often see individuals from games companies making public statements as to player figures for various of their games.

Good points: effectively these are “official” figures
Criticisms: not just vague as to numbers (usually they are only quoted to 2 sig.figs) but also vague as to *meaning* (registered players? active? paying?), very irregular publication times, often non-specific about what *date* they apply to (and people often quote figures that are a year or more out of date!)

A few organizations try to independently measure figures. It has long (ten years) been a complaint in the industry that no organization of high reputation in the traditional Media sphere (e.g. ABC for printed publication circulations) has started auditing online games. Recently, there have been huge efforts by a handful of companies to measure website traffic specifically – e.g. Quantcast, Compete, comScore – and for some online games those figures are often extremely good (games where people have to use a website each time they play the game, for instance).

Good points: stringent accounting standards (they hope to become ABC equivalents), strong expertise with web properties generally (so accustomed to the many tricks that black-hat website owners use to try and inflate their figures), very frequently updated (in some cases as frequently as per-day, taking them almost into real-time status)
Criticisms: mostly useless for non-web games

…but this final type – independently-measured figures – is the one we need more of. Because we need something that:

  • updates frequently, giving us “up to date” figures whenever we consult the source
  • uses a common reporting standard across ALL games (doesn’t compare “registered” from one game against “active” from another)
  • requires little effort to maintain (likely to stick around long term and become a reliable resource)
  • uses an open algorithm that is easily verfiable by anyone (the maintainers cannot deliberately write-up or write-down individual games without detection)


Xfire is one of several companies trying to make “a social network for video game players” by creating a custom chat client that you keep open while playing the game. This allows them to track who is playing what games, when, for how long. For some time now they’ve been publishing (openly, for free), stats on how many hours each game is being played for per day in total. That figure gives some idea of the total “attention” that particular games are receiving, both individually and comparitively, but it’s useless for anything else.

I’d looked at the Xfire stats before, but only used them for very high-level comparitive judgements, since in most cases I work with games that have wildly varying “average number of hours of play per player per month”, and so the Xfire stats could not be used to judge games.

I had an email from one of the Xfire guys, suggesting I look at the stats again, and I noticed that they currently have a “number of Xfire users playing each game” stat too. Interesting…

A stupidly simple Methodology

Xfire has far too few users for those users-playing-today figures to be even close to the actual Concurrent Users figures, let alone number of players.

But I have a lot of high quality data on a wide variety of games (through official and unofficial channels), and I have most of the “official” figures, so I wondered what would happen if I tried using some well-known and accurate figures to look for a correlation with the daily users figures on Xfire. Pretty obvious. NCsoft sells directly into US and Europe and has established subs games in both western-developed MMORPG (City of Heroes/Villains (CoH/CoV) – known as “CoX”) and eastern-developed MMORPG imported into USA/Europe (Lineage 2 – known as L2).

I chose these two games because:

  • They’re from the same publisher, so counting algorithm OUGHT to be about as similar as we’ll ever get for different games
  • They’re both subscription based, so we get a relatively non-ambiguous figure
  • (most important of all) NCsoft releases precise figures for both these games *every single quarter*

The ratio of “Xfire activity” : “actual subs” is very different for those two games – but I wondered how well they predict the ratios for other games I had the figures for? I tried classifying each game simple as “eastern import” or “western”.

In each case, I looked for the following success / fail / anomaly criteria:

  • (any game), L2 and CoX are approximately equal multiples of known figures = fail
  • (any game, true figure unknown), L2 and CoX are both much bigger or much smaller than the estimated figure = anomaly
  • Eastern game, L2 is a smaller multiple of the known figure than CoX = success
  • Western game, CoX is a smaller multiple of the known figure than L2 = success

The “anomaly” result allowed me to run this against all the games where we only have “generally-accepted estimates”, and then decide in each case whether it was a breakdown in the methodology, or if it pointed to the “generally-accepted estimate” being wrong.

I had 4 types of number to compare against, FYI:

  • Official figures
  • Personal estimate (sometimes based on insider-knowledge, sometimes based on industry “common knowledge”, sometimes on odd bits of public data that indirectly confirms or predicts for a particular game)
  • Public estimates
  • Private official figures

Because Bruce gives you a downloadable spreadsheet of his data – and because you can read his own commentary on how (in)accurate each individual figure is – I used his data as the “public estimate” figures.

East vs West – Some example data

Name Official/trusted MMOGchart Best-Guess Xfire Xf-v-NC-CoX % NC-CoX Xf-v-NC-L2 % NC-L2
2Moons     n/a 448 74,567 n/a 314,633 n/a
9Dragons     n/a 211 35,120


148,187 n/a
Age of Conan 415000   415000 1032 171,771 41.39% 724,780


Anarchy Online   12000 12000 164 27,297 227.47%


Archlord     n/a 1330 221,372 n/a


Audition     n/a 473 78,728 n/a


City of Heroes / Villains 125000 136250 125000 751


100.00% 527,432 421.95%
Dance Online     n/a 107


n/a 75,147 n/a
Dark Age of Camelot   45000 45000


23,968 53.26% 101,132 224.74%
Dofus 10000000


10000000 1433 238,515 2.39% 1,006,405 10.06%

Dungeon Runners

    n/a 95 15,812 n/a 66,719 n/a

Dungeons & Dragons Online

  45000 45000 159 26,465 58.81% 111,667 248.15%
EVE Online 250000 236510 250000 3429 570,739 228.30%


EverQuest   175000 175000 109 18,142


76,551 43.74%
EverQuest II   200000 200000 440


36.62% 309,015 154.51%
Exteel     n/a 202


n/a 141,866 n/a
Final Fantasy XI   500000 500000


84,720 16.94% 357,474 71.49%
Granado Espada     n/a


36,951 n/a 155,912 n/a
Hellgate: London     n/a


90,213 n/a 380,650 n/a
Hero Online     n/a


44,774 n/a 188,920 n/a
Horizons   5000


58 9,654 193.08% 40,734 814.68%
Kal Online    


207 34,454 n/a 145,377 n/a
Kart Rider    


10 1,664 n/a 7,023 n/a
Legends of Mir    


0 0 n/a 0 n/a
Legends of Mir 2    


0 0 n/a 0 n/a
Legends of Mir 3    


0 0 n/a 0 n/a


1100000 2 333 0.03% 1,405 0.13%

Lineage II

1005000 1006556 1005000 1431 238,182 23.70% 1,005,000 100.00%
MapleStory 15000000   15000000 4042 672,770 4.49% 2,838,721


Mu Online     n/a 56 9,321 n/a 39,329


Neopets     n/a   0 n/a 0 n/a
Perfect World     n/a 1472 245,007 n/a 1,033,795 n/a
Pirates of the Burning Sea   65000 65000 64 10,652 16.39% 44,948


Pirates of the Caribbean Online   10000 10000 443 73,735 737.35%


Ragnarok Online     n/a 173 28,795 n/a


Regnum Online     n/a 236 39,281 n/a


RF Online     n/a 347 57,756 n/a


ROSE Online     n/a 83 13,815 n/a


RuneScape 6000000 1200000 6000000 2535


7.03% 1,780,346 29.67%
Seafight     n/a 151


n/a 106,048 n/a
Second Life   91531 91531


732,024 799.76% 3,088,742 3374.53%
Secret Online 10000000  


  0 0.00% 0 0.00%
Silkroad Online     n/a


828,895 n/a 3,497,484 n/a
Special Force     n/a  


n/a 0 n/a
Star Wars Galaxies   100000 100000


107,190 107.19% 452,285 452.29%
Tabula Rasa   75000


184 30,626 40.83% 129,224 172.30%
The Lord of the Rings Online  


150000 2282 379,827 253.22% 1,602,662 1068.44%

Toontown Online

  100000 100000 172 28,628 28.63% 120,797 120.80%
Twelve Sky     n/a 797 132,656 n/a 559,738 n/a
Ultima Online   75000 75000 192 31,957 42.61% 134,843 179.79%
Vanguard: Saga of Heroes   40000 40000 583 97,037 242.59% 409,444


Warhammer Online 800000   800000 5621 935,586 116.95%


Wonderland Online     n/a 202 33,622 n/a


World of Warcraft 12000000 10000000 12000000 112784


156.44% 79,208,889 660.07%
World War II Online   12000 12000


8,322 69.35% 35,115 292.63%
Yohoho! Puzzle Pirates 200000


200000   0 0.00% 0 0.00%

East vs West – Does this work?

It’s not as bad as I thought it would be – there’s at least *some* correlation here :). It’s good enough that if you assume an inherent error margin of +/- 20% you can feel confident you’re getting good numbers.

It also works quite well with the private figures I have which (because of their sources) I consider to be pretty good.

Ah, but … statistically, does it work?

Well, running some simple Pearson correlation tests over the public numbers, I get a small increase in correlation (about 0.6 instead of 0.53) for using this method instead of just using a single comparator. That’s actually pretty good although I’d hoped for better. It does get a little better if I add in some private figures and/or replace some of the public estimates with private info I have.

I’d like to get hold of more data, either more things tracked by Xfire or more “public, official” figures, to check the correlation better. At the moment, there are a *lot* of holes in the public “Best Guess” column :(.

East vs. West: Interesting correlations and anomalies

9Dragons, 2Moons, Dance Online – The L2 predictor would put these at 150k, 310k, and 75k respectively. Acclaim has announced that they have a total of 750k active players across their 9 games, of which these three have been running for Acclaim longest and are the most mainstream of their games. At a total of 535k between them via L2 predictor, that fits reasonably well with the published figure.

Age of Conan – methodology breaks here. CoX predicts a mere 40% of the figure that Funcom has “officially unofficially officially” released recently. Sorry.

Anarchy Online – my estimate is 27k players; Bruce’s estimate is probably only counting subscribers, whereas the game has been F2P for several years now.

Archlord – L2 predicts a whopping 1 million players. Unless this is a truly huge hit in Asia, this has got to be wrong: even though the game has gone F2P in the west, the number of players in the west are generally thought to be in the region of less than 25k.

Audition Online – L2 predicts 300k, I believe it’s more like 3 million. c.f. the Maple Story notes.

DAoC – I’m happy with the CoX estimate of 25k players

Dofus – RS prediction is 1/3 of the reported number by Ankama. However … Ankama’s number *appears* to be “registered accounts” (the number I’ve used for RS is an estimate of active monthlys – the RS registered accounts figure is twice as big).

Also, Dofus is very much a French-language product. Although they’ve internationalized, their French start is still clear in that 30% of the playerbase is French (according to Ankama).

Therefore, I suspect that this may ALSO be being negatively affected by Xfire’s bias against non-English-language users (non English speakers tend to avoid English products if they can get equivalent native products).

Proportion of French users for internationalized American MMOs normally runs to around 30% of the European players, who normally represent around 50%-100% of the American players, which would suggest that Dofus has between twice as many and four times as many French players as an English-language MMO. Given the relative lack of interest advertising it in America, I’ll go for the four times.

Therefore, Xfire would only be counting around 75% of the playerbase it ought to be counting, and we’d get (via the RS predictor) around 4.5m players. I’m happy with that (until I get a phone call from Ankama. Salut?)

Dungeons and Dragons Online – again, a big drop, not so big as EQ2, but then I’ve heard that D&DO has had some uptick thanks to cross-selling to Lord of the Rings Online players.

Who knows? I can certainly *believe* the 25k predicted by CoX, but I’d ask some Turbine people if I were you, see if you can ferret out some more precise info…

EVE Online – methodology breaks here. The 250k figure comes from CCP themselves (give or take up to 10k). Based on the unique game-design and marketing, maybe EVE is just special (yeah, I know – I’m just making excuses here :)).

Everquest 2 – it’s a big drop from Bruce’s last-reported figure, but I think the CoX predictor of around 80k players is probably closer than Bruce’s.

FF XI – A while back I’d have thought the L2 estimate of 350k players was about right – nowadays I’m not sure, it’s been a long time since I looked into FF XI numbers in detail?

Horizons – CoX predictor says twice Bruce’s last estimate. Believable, but unconvincing.

Lineage – Epic fail. I can only guess: Xfire isn’t tracking Lineage 1 players. Off the top of my head, it’s hardly played outside Asia – Lineage 2 gets all the marketing love etc in the west. c.f. notes on other Asia-only games.

Lord of the Rings Online – CoX predicts a HUGE increase vs. Bruce’s estimate here. Turbine have never officially released figures IIRC, so maybe Bruce’s estimate should be treated as a shot in the dark anyway. Given that there’s been no new servers added to LOTRO since they were making noises about hoping to reach circa 500k – but also no server-merges – I could accept the 380k estimate from CoX predictor. But it’s just a guess.

Maple Story – L2 predictor breaks, suggesting just 2.8m players, less than a fifth of the best estimate I could find. This leads to a suggestion for a more precise prediction routine, see below…

Perfect World – L2 predicts 1m. Looking at companies with similar revenues to Perfect World, “active players” come in at approximately 1m-3m. Thoughts?

Pirates of the Burning Sea – CoX is predicting a mere 10k players – one sixth of the Bruce estimate. I believe it, because 7 months ago they shut down 7 of their 11 servers, leaving only 4 servers with a maximum concurrent playerbase of around 8k between them. In practice, I would have estimated around 15k-20k players based simply on the number of servers they’re running, but I suspect they may have kept extra around to keep some variety in the server populations, and because running just 1 or 2 extra servers is not that expensive, but gives you good fast response for all players.

Pirates of the Caribbean Online – Again, CoX predicts a whopping 7 times as many players as Bruce’s estimates. But then this game is one of those that went F2P, so, again, I can believe the CoX predictor when it says 75k players.

Seafight – CoX predicts 25k players, but this is way short of my own estimates based on the publisher’s aggregate player numbers. c.f. the notes on Maple Story, and the new analysis below.

Silkroad Online – L2 predictor comes close to my personal rough estimate based on taking their quoted number of registered players and dividing by 4, but its still short by about 30%. Again, see notes on MapleStory.

SL – isn’t a game, I’ve included it simply because both sources were counting it. The fact that it bears no resemblance to ANY of the games is no surprise considering it really has very little in common with them.

Star Wars: Galaxies – CoX’s predictor is within 10% of Bruce’s number. Cool.

Tabula Rasa – CoX predicts 30k. Estimates by industry consultants like Jessica Mulligan (see the comments) put it at around 30k.

Toontown Online – methodology broken; I’m sure the CoX estimate is wrong, and that TTO’s audience (young children) doesn’t overlap with Xfire’s audience.

Vanguard – The CoX predictor is suggesting more than twice the number of players that Bruce estimates. I have no idea what the correct number is – I haven’t bothered tracking Vanguard since its inexcusably poor launch. I’d love some independent confirmation of one number or the other being closer?

Warhammer Online / WAR – CoX predicts 935k, EA recently stated 800k. Not bad…

World of Warcraft – CoX predictor gets it wrong by a factor of 1.5 … you could take that as an indicator of the amount of error in the predictor :).

WW2 Online – I’m happy with the CoX estimate of 8k players

Some notable MIA games

Habbo Hotel – definitely millions of active players, but not tracked by Xfire. c.f. notes on ToonTown Online w.r.t. Xfire’s poor demographic tracking.

Neopets – definitely millions of active players, but not tracked by Xfire. c.f. notes on ToonTown Online w.r.t. Xfire’s poor demographic tracking.

Puzzle Pirates – 200k active players from the last number they put out publically, IIRC, but not tracked by Xfire.

Secret Online – 10 million players (“active”, IIRC) in China, announced in US/EU 7 months ago, not tracked by Xfire.

Special Force – not tracked by Xfire.

East vs. West – Problems

So we see three major problems here:

  • Xfire doesn’t appear to track non-western players at all, tracks European-but-primarily-non-English players (Dofus, Seafight) noticeably poorly
  • Xfire doesn’t appear to track younger users at all (all the games for young children / parents come out “untracked”)
  • Basing all eastern game estimates off a subscription-only game (L2) works for a lot of things, but for the few really massive F2P (free to play) eastern games it fails

Can’t do anything about the first two problems, since those are flaws in Xfire itself, but I thought I’d have a quick look at the third problem and see if adding additional predictors (specifically for F2P games, both east and west) would help.

Analysis: Subscription vs F2P (Free to play)

The eastern F2P games fail dramatically when judged purely by the sucess of Lineage 2. Unfortunately, the mighty NCsoft “doesn’t do” F2P games, so we’re going to have to look at other sources of comparison.

Maple Story (eastern, localized), Runescape (Western) seem like good starting points, although in both cases there is only mediocre “official” data.

Subs vs. F2P: notable failures from East vs. West

Seafight – RS gets only 25% over my guesstimate based on the number of games Bigpoint publishes and the total number of active users they have. Serious guesswork – although Seafight is one of the slightly more popular of the BP games, so I would expect it to have more than that many users, closer to the RS predictor. But I suspect it could be MUCH higher, as much as 3-5 times higher, since we have no data on how much overlap there is between BP players of different games, and this assumes zero overlap.

Audition – Even using MS as a predictor, we get barely half of my last estimate for Audition’s playerbase. I’ve heard rumours it has been eroding a great deal in the past few years (it is an old game now – and with little or no design updates, it shows!), so I guess this is possible?

Subs vs. F2P – Does this work?

I’d have to say … no. And at that point, you start getting into using dozens of different predictors, split by genre + revenue model + country of origin + age of game, etc … and there aren’t enough MMOs in the world for that level of detail to be worth it (you’re into fantasy land by that point – and it’s too much effort :)).

Analysis: WoW

NB: this one I don’t take seriously, it’s just for fun; I think it’s meaningless until/unless I get hold of an Asian equivalent of Xfire, and come up with a WoW equivalent from Asia (probably Maple Story – huge locally, and large globally), and we can do the WoW-western-based-global vs. MapleStory-eastern-based-global comparison.

It would be interesting to see how well that worked as a predictor – does the “global success” dominate, or does the “subscription vs. F2P” dominate?

Follow-up ideas

1: Correlate “hours played”

Xfire’s preferred stat is “hours played per day” not “number of people playing per day”. This stat varies massively by Genre in fairly obvious ways. Doing a similar correlation to the above one for mapping “hours played + genre” to “number of people playing per day” would be relatively easy and possibly even more valuable.

2: Cross-correlate “hours played” with the above-inferred “number of players”

Especially useful would be to take the results of 1 above, and combine them with the work done in this article.

That would give you a basis for inferring “number of players” directly from Xfire’s primary free published-statistic.

3: Xfire to penetrate Asia

Well, we can wish…

4: Xfire to track younger children / older parents

My guess is that they too would love it if they could do this…


Kart Rider got closed down in USA, and although it’s still one of the most played games in the world, Xfire shows a mere “10 people playing” – so I guess those are the few who’ve braved non-localized versions?

Legend of Mir – Xfire is tracking it, but saying 0 for all games. IIRC they shut down the old LoM games as they open new ones – has a LoM 4 just come out?


WordPress is *still* corrupting raw HTML source – if you see big blocks of whitespace in this blog, it’s something odd in WP not liking inline style declarations. Sorry.

maintenance security

Dear weer001 @…

Please stop spamming the blog, not for me, but for yourself. There are multiple layers of spam filter (you may have noticed that none of your fake posts has got through so far), so I have the luxury of having the few “uncertain” hits emailed to me, because there’s so few. If that changes, I’ll just add another filter. I wouldn’t normally call one person out, but … your comments keep getting sent to me for moderation, and it appears you are actually *writing them by hand*.


10% of what we read … is not what we remember

Education is one of the most important drivers of mankind, after oxygen, food, and sex. You would think we took it seriously, as a society. Sadly, we continue to perpetuate insanely stupid myths when it comes to education. Here’s one of those that often annoys me which I was just reminded of:

Seen this graph? Believe it?


Well, you really shouldn’t (see this report on Multimodal Learning through Media, from Cisco)

As it turns out, doing is not always more efficient than seeing, and seeing
is not always more effective than reading. Informed educators understand that the optimum
design depends on the content, context, and the learner.

For example, the bogus percentages on
the cone would suggest that engaging students in collaborative learning in general would result in
higher levels of learning than would a lesson where a student listens to narration or reads text
about the topic. The reality is that, for the novice student engaged in basic skill building such as
learning chemical symbols, individual learning through reading or simple drill and practice might be
the optimal learning design. Yet, for a different learning objective – for instance, understanding
cause and effect of a specific chemical reaction – involving that same student in collaborative
problem-solving with fellow students through a simulation might be the most effective learning

The concept here – that that graph is completely wrong – was pointed out to me more than 10 years ago by my line manager at IBM, who’d done badly at school, and in later life heard how the cone needed to be mapped to different dimensions according to context (the learner themself, the subject at hand, etc), – and discovered that his primary mode of learning, according to basic testing, was to watch other people do stuff. He confirmed that that “50% Watching a demonstration” was for him often more like 95-100% retained – yet (thanks in part to this myth) was rarely offered as an option whenever teaching was happening. Sigh.

bitching server admin

Please, someone, destroy cron. Forever.

Just wanted to say: I detest “cron” more than mere words have the power to convey. I suspect there aren’t many other pieces of fundamental software implemented in so few lines of code that over so many years have caused so much harm and frustration to so many people and systems (surprisingly, cron has often been the point of error in weird failures of clusters of servers I’ve dealt with – e.g. when the backups mysteriously stop working, or an app crashes and won’t restart, etc)

games industry recruiting

Shaming the recruitment agencies – Aardvark Swift

Given how much money these agencies charge – and how that SPECIFICALLY reduces the chances of “good but not great” candidates of getting job offers (anyone who says otherwise is a liar or naive) – I’m fed up of their mediocrity and the lack of criticism it gets. So, I’ve decided I’m going to stop complaining in private to the agencies themselves (that seems to have had no effect for the past 5 years) and instead start naming and shaming them. Sorry, Aardvark Swift, but thanks to your current email campaign, you just volunteered to be first. It’s nothing personal, I promise.

(I will probably never ever get a job again via any of the agencies I go on to talk about :). Oh well.)

Aardvark Swift is one of the better-known UK specialist recruitment agencies for the games industry. They used to have a good reputation (although it’s been up and down over the years, depending upon who you talk to). They just spammed me to ask me to apply for the job of “Lead AI Programmer in Australia”.

Now, if you were to just take a brief look at my work history (, you’d probably notice that:

  1. I live on the opposite side of the planet, literally
  2. I have never in my life been an AI programmer
  3. It’s been many years since I did a programming job

That’s bad enough. Except … I already told them much the same over a year ago, the last time they were cold-contacting me. I have a vague memory that they even had a fairly recent copy of my CV/resume at that point (no more than a year old).

I know people in the industry make big, sudden career changes, but is this – blind spamming of inappropriate jobs – really an effective way to catch those? Because – as a candidate – it feels like lazy bottom-feeding tactics; how come they can’t even be bothered to check current information on public LinkedIn profiles? As an employer it makes me wonder: of the candidates this agency would send me, how many would the agency even know the first thing about the people they’re sending through?

Companies are desperate for good candidates these days, so it should be easier than ever to get a good job in the industry. But somewhere between the Hiring Manager and the Candidate the process often breaks down completely. Just to be clear, it’s not just Agencies that are to blame – far from it, often it’s the companies’ own insane internal bureaucracy, or misdirected HR depts, that screw things up – but as an industry we *really* need to put a stop to this.

Or at least stop whining and bitching about how “universities and schools aren’t providing enough programmers, artists, producers, and designers” (whether or not its true) – many companies wouldn’t spot a good candidate if they walked in the front door and handed in a printed copy of their CV/resume.

agile dev-process games industry

What are the core competencies that every producer must possess?

Lots of ideas and detailed explanation from games industry Producers and production staff on the IGDA Production mailing list here.

Unfortunately, I’m afraid that the people who run the Production SIG don’t believe in allowing you – the public – to read their conversations. So all I can do is tell you that there’s good stuff that would probably help with improving the quality of the process in the industry – and hence improve the quality of life of everyone involved – and give you a link to go and apply to be allowed access to this secret world.

Sorry. Good luck with justifying your existence enough to be allowed in; I hear they are pretty generous with it (hey – they let *me* in :)), so you should be fine, I think.

(“IGDA: hiding information that would help people break-into the games industry, or improve their own level of professionalism, since 2004

PS: because it’s password-protected, and uses random passwords, I can’t even get hold of the direct link to the emails in the archive – I have to wait for their mailman server to give me my password. That can take several hours (I know there’s nothing they can do to improve it: I run one of the other lists on the same server, and have the same problem :( ), so I’ll edit-in the direct link if/when my password arrives)

maintenance programming

Is there any good way to upload files to WordPress blogs?

As far as I can tell: no (?). I’m hoping it’s just that my Google-Fu is too weak, and there’s a solution out there that someone has already put together…

facebook games industry massively multiplayer web 2.0

Microsoft turns into a social network?

(from Nic Brisbourne’s blog)

NB: I can’t actually try it, of course – Microsoft is still subscribing to the classic anti-Web 2.0 ideal of making it “zero information from our walled-garden until you pass a detailed user-verification process; visitors will be shot; guests are not welcome here”.

The interesting piece for me is that they are inferring the social graph from Instant Messenger. It has long seemed sensible to me that building from existing social graphs (email, IM, phone records etc.) is a better way to go than building a new one from scratch as we have all been doing on Facebook, Myspace, LinkedIn etc., although there are many tricky issues around service design. Google and Microsoft think the same way according to this Techcrunch post of a year ago, although we have yet to see thought translated into action.

Yeah … we wanted to do the exact same thing with MMO publisher data when I was at NCsoft. Given how much you know about subscribers, you can infer some extremely valuable stuff (that is much harder for people like Google/Microsoft/etc to piece together). Turned out there were a lot of internal political problems in the way (something I’ll be talking about at GDC 2009: “How to sell social networking to your boss / publisher”) that really came down to a handful of extremely powerful people not getting it / not caring. It was an … interesting … journey learning what they didn’t get, and why, and how to dance around that.

(PS: all the above is assuming “without breaking privacy / data-protection laws”; if you’re reasonably well-moralled, you can provide a lot of value while being well inside the law; I have little sympathy for organizations that run roughshod all over the Data Protection stuff – IME you really don’t need to)

computer games entrepreneurship games industry jussi vc deals europe massively multiplayer

More than 1 billion people play online games in 2008

Someone asked me:

How many people play online games globally in 2008?

A simple answer

…and with a quick mental calculation I estimated 1 billion *unique registered accounts*. (I’ve been tracking and calculating this stuff a lot recently). That wasn’t good enough – they wanted something to put in a press release, so they wanted a methodology and verifiable data.

So, I went and did the calculations properly, and found:

There are approximately 1.5 billion unique registered accounts (virtual players) of online games around the world in 2008.

They still needed to see the methodology and the figures, of course … here goes!

Some … wrong … answers

Someone at Techcrunch claimed last year that “217 Million People Play Online Games”, by misusing the research that they were referring to. You only have to follow the link to the *press release* of the actual research to see how wrong that is.

The research merely claimed that 217 million people visit a selection of American and European websites that have content that talks about online games, and which *in some cases* actually have some web-games on their site.

The majority of online games were not included in the research. The figure isn’t particularly useful on its own.

A simple question?

The first thing to realise is that there’s no sensible way of answering the question literally. A couple of years ago, Raph Koster did an updated version of the explanation for this problem (it needs updating again by now to take account of how the industry has continued to evolve since he wrote that last version). If you haven’t read it, and want to understand the details of why people argue this stuff endlessly, go have a quick look at his post.

But there is a sensible way we can re-phrase the question to become one that we CAN answer:

How many unique virtual identities are there that are playing online games this month?

Virtual Identity … what? No, that’s not what I wanted to know about

Actually, maybe it *is* what you wanted to know about.

In the real world, we never actually count people for anything (except if we’re physically smuggling them past Border Control, I guess); instead, we count Identities: verifiably unique records that each correspond to no more than one person.

In the real world, one ID does not equal one physical person, even though it is “approximately” that way (bear in mind that even governments have so far proved incapable of legislating + enforcing that concept, despite having tried for the last few thousand years).

In the online world, the concept of Identity is abstracted. This is all the fault of “computers” and especially “programmers” and “database vendors”, who couldn’t cope with the amount of info required to fully represent a single Identity (and as time went on many realised that they did not want to). They cheated. And so, from the earliest days of the internet (and before – back in the days of BBS’s), everyone has had multiple ID’s.

On average, each of you reading this probably has something like 200-300 separate online identities. On average, each of you reading this probably BELIEVES you have something like 2-3 separate online identities. Factor of 100 difference (have fun counting them…).

Those virtual identities are the lifeblood of online services. They are countable, they are serviceable – and they are uniquely and individually chargeable (even when several of these identities may represent just one real-world human: if the identities are separate, then you can charge multiple times, and many people really do willingly pay several times over!)

Many of those identities are “inactive”, and unlike people, the corpses of Virtual Identities do not naturally rot and disappear, they live forever – and can be brought back to life at any moment by the owners. They’re all real – they are still verifiably there – so for now we’re going to count all of them.

(personally I prefer counting “active identities within the past month”, but more on that in a later post. Counting in billions is fun for now…)

How many virtual identities play online games?

Start with the big guns, going from their own official announcements.

Individual games: 400m

Kart Rider = 160 million
Habbo Hotel = 100 million
Neopets = 65 million
Maple Story = 57 million
Club Penguin = 20 million
Runescape = 10 million

+ others I didn’t bother looking up

Subtotal: 412m

Publishers who declare registered directly: 1200m (or 800m)

Then add in the big publishers, going from their official announcements

9You = 120m
Acclaim = 3m
Bigpoint = 30m
CDC Games = 140m
CJ Internet = 23m
Disney = 12m
Gameforge = 60m
Gamania = 10m
GigaMedia = 9m
Gpotato = 2m
HanbitSoft = 8m
K2 Network = 16m
Mattel = 11m
Moliyo = 7m
NCsoft = 2m
NeoWiz = 7.5m
Shanda = 700m (*)

(*) (note: using the active and paying ratios below, this would be approx 150m or 300m, which is such a huge difference (and stands out as massively anomalous compared to industry standard – even for other Chinese operators) that I’m going to treat it with extreme suspicion and go with 300m instead)

Subtotal: 1158m (or approx 800m if we downgrade Shanda by 400m)

Publishers who declare active or paying: 100m

Then add in the big publishers who declare “active” or “paying” accounts instead of “registered”:

As well as just general industry knowledge on this stuff, I have official figures from half a dozen publishers that let me calculate Registered:active or Registered:Paying ratios, so from averaging those I get conservative multipliers of approx:

Registered / Active = 4
Registered / Paying = 40

Gaia = 24m (6m active)
Giant Interactive = 68m (1.7m paying)
NetDragon = 14m (3.5m active)

Subtotal: 106m

Facebook + Web gaming = 200m

Then look at the big Facebook games-publishers, and the online gaming sites from the comScore study:

Yahoo Games = 53m
MSN Games = 40m
Miniclip = 30m
EA Online (inc. POGO ?) = 21m
SGN = 40m
Zynga = 55m

Others (from comScore report) = 78m

Subtotal: 173m

Final tally

There are approximately 1.5 billion registered identities in online games in 2008

How many “real people” is that? Well, as noted above, the percent of registered accounts that are active is around 25%, so I would guesstimate (really really rough figures now!):

There are approximately 375 million people in the world who play online games.

The theoretical current maximum playerbase for a subscription MMO would be somewhere in between those two figures (plenty of people pay for 2, 3 – or as many as 10 – accounts, as Raph noted).

The theoretical current maximum playerbase for an F2P game would be the bigger of the two figures, obviously.

WoW (World of Warcraft) still has a long way to go, people…

Exclusions – what did I miss?

There are plenty of operators that are not counted in the above which run games in countries not often associated with online gaming (e.g. Vietnam, Russia, etc) – and yet their figures are significant (I’ve been tracking them for a while and they’re growing very fast).

I didn’t bother including them because even in aggregate right now they probably wouldn’t be able to shift that 1.5b figure any higher.

There are also some who are using a combined service only part of which is games, e.g.

Tencent = 350m users of the IM client which integrates many online games

…which I haven’t included at all. Feel free to take my headline figure and add that on! (and add back in the 400m accounts from Shanda that I discounted / didn’t believe)

entrepreneurship games industry jussi vc deals europe

$1.7 billion invested into Online Games and Related Entertainment in years 2007-2008

NB: Jussi and I have pooled our data, but will be looking at different aspects of it going forwards. Should be interesting…


Roughly a month ago Jussi Laakkonen published a list of $350 million invested in year 2008 into virtual worlds, casual MMOs, and casual & social games. Based on US-centric sites, it missed out the majority of European deals. So, inspired by Jussi’s excellent idea, I then posted my own list of European deals I’d been tracking (which also included some extra things on the fringes of Jussi’s initial set). We decided that the right thing to do would be to put those lists together.

The extra things I’d been tracking were mainly in MMO investments, technology vendors, and support services (e.g. payment providers). I also wanted to add in mobile gaming (especially in light of what’s happening with the iPhone, the iPhone investment fund, and the Blackberry investment fund). These are the areas I’ll be looking into more in the future.

Analysis on T=Machine

I’ll be doing some followup posts over the next couple of days, Jussi’s zooming ahead with his – check out his blog to keep up with his comments too.

Followup posts will all be tagged under “jussi vc deals europe”

Jussi’s Analysis

Jussi’s posted a great summary of the core data.

The data

The data on VC investments has been collected from publicly available sources including but not limited to

* VentureBeat
* PaidContent
* Virtual World’s Management
* Avista Partners’ video game briefing
* TechCrunch
* CrunchBase

The data was gathered by Jussi Laakkonen and Adam Martin. The data is most accurate for year 2008. Year 2006 and earlier years have been only covered sporadically and typically only for companies that have received follow-up funding in years 2007-2008 (IIRC the European data is complete from the end of 2005 onwards, as it started from around the time of Mind Candy’s first announced funding). The data is provided AS IS and the authors make no warranties or guarantees about its accuracy.

Download the spreadsheet:

* Excel format
* CSV format
* HTML format

computer games dev-process mmo signup processes Web 0.1

Web 0.1: How NOT to run an open beta stress-test

1. Ask people to join the closed beta 6 months before the open beta happens

Dinowaurs Beta Testers Wanted

We’re now inviting Kongregate members to sign up to test the Dinowaurs Beta. If you don’t know what Dinowaurs is, go here for more info:
Simply pop in to this thread and say that you want in and I’ll put you on the list for the test. Please, no conversations, as it makes it more difficult to pull all the names out.
We’d like to thank everyone who helped us test the alpha! Anyone who signed up for the alpha in the previous thread will be first in line, so no need to sign up again if you already did in the alpha thread.
Thanks, everyone!

(posted may 1st 2008)

2. When you start an open beta, don’t tell players they’re accepted until 2 days before the beta happens


Thank you for volunteering to test Dinowaurs, an upcoming game on Kongregate. As of this email, everyone who volunteered to help test Dinowaurs will now get a chance to do so. We’re very grateful for all your help!

For those of you who have tested before, this is a different request than usual, and for all you new faces, welcome! What we need to do is load test the server – that is get as many feet stomping on it as possible and see if it crashes! Because of that, we’re going to try to stuff as many testers into the game at one time as possible. For this test, Dinowaurs will only be open on Monday, November 17 from 12 noon-2pm Pacific Time (All you non West-Coasters, take notice of the time!)

So we hope to see all 4000 of you Dinowaurs beta testers in here and playing the game on Monday! Don’t be late – our doors will close tight at 2pm.

Thanks again!

Kongregate and Intuition

3. Make it last 2 hours only

(Fair enough, normal practice for stress tests, although it’s usually a good idea to let people in a few days in advance to ensure that they have working clients etc (less of an issue for a web game like this, but still probably worth doing).)

4. Don’t tell anyone the secret link to the beta

Read that email again. Do you see the magic URL? No? That’s because THEY FORGOT TO INCLUDE IT.

Some googling turns up various people asking for it, and some friendly Kong players answering with the URL here:

EDIT: they just sent another email which remembered to include the link.


Today’s the day! At 12 noon Pacific Time (3pm Eastern), the doors to the Dinowaurs Beta on Kongregate will be flung open!

At that time you should make sure you’re signed in to Kongregate and go here to test:

Make sure you’re on time! We will be closing doors promptly at 2pm (PST). If during gameplay you encounter any bugs, please click on the little bug icon at the top right of chat and fill out a bug report. The more actual bugs you find, the better the game will be!

We really want to thank all you beta testers. We really appreciate all your help!

Kongregate and Intuition

Could be they intended this all along. Given that the beta starts less than an hour after that email was sent out, I doubt it :).

facebook network programming programming

Installing and using PHP Eclipse IDE on OS X

I wanted to knock something up for Facebook, and I thought I’d try out PHP development on my shiny macbook air laptop (I usually develop on a much more powerful windows/linux PC).

This is tortuous, painful, and mostly undocumented on the official site. Sigh. After some experimentation, here’s how to make it work (IMHO you shouldn’t need to do this – although the Eclipse project allows plugin developers to package their plugins in really stupid ways, and doesn’t make it easy for anyone (users, developers, etc) – it’s still the fault of the plugin developer if they ALSO do not make it easy for the users to install).

First problem: get Eclipse

IME, most programmers who would use Eclipse already have it. The PHP plugin website won’t really help you, mostly taking the attitude of “install an extra copy of eclipse, just for doing PHP development; if you already have eclipse … work it out yourself”. I kind of understand why, but still feel that the first duty of every developer is to make their stuff easy to install!

If you don’t have Eclipse, I highly recommend you do NOT follow the PHP instructions (by downloading their pre-made “PHP + Eclipse all in one”) because then you are doomed to having multiple parallel installs if you ever need to use any other programming language; learn how to do it properly instead.

Download eclipse here (you want the latest stable version, currently called “Ganymede” (no, I don’t know why they stopped using Version numbers either – yes, it does make life more difficult for all normal users who haven’t memorized the funny names. Sigh)). You can get “Eclipse with Java” or “Eclipse with C/C++” or whatever you want – they are all identical, some just have extra plugins pre-installed.

NB: the people that run the Eclipse website have some pretty icon-artists, but a cruel sense of humour (or just suck at website design, maybe? I shouldn’t complain – it used to be a LOT worse than this) and don’t provide bookmarkable links to the OS X version (that I could find, at least); you’ll just have to go to that page and scroll till you find it. Right now, the current “standard” Eclipse version is at the VERY BOTTOM OF THE SCREEN (c.f. my previous comment re: sense of humour), and at the right hand edge of that box is a tiny link saying “Mac OS X”)

If you’re new to Eclipse, you will probably find that downloading eclipse is one of the most confusing downloads you’ve ever done; if so, this is part of that same problem mentioned above where the Eclipse project makes plugin installs ridiculously difficult: all those many confusing different Eclipse versions that you cannot tell the difference between are actually the same, but differ only in which plugins are pre-installed.

Yes, this is stupid. Yes, it’s badly documented. Sorry. You’ll learn to live with it – they’ve been doing this for almost ten years now so don’t expect it to be fixed any time soon.

I suggest you run Eclipse once, now, before going on to the next step – if Eclipse doesn’t start at this point, don’t waste time confusing yourself with the PHP plugins until you can get Eclipse working on its own!

Second problem: get PHP IDE (now renamed to “PDT”)

You can try to do the automated-install; Eclipse is bad at handling automated installs, has very poor error-handling if anything goes wrong (it just crashes and doesn’t explain), and plugin developers usually screw-up the auto-install API in ways that can actully render your copy of Eclipse unusable (this happens *a lot*). I would advise never using it if you can avoid it.

This one’s pretty messed-up. According to the website and the list of requirements, if you want to use the latest version (vesion 2.0, not yet “packaged”), then you have to download approx 6 massive files.

I found that if you download the “Eclipse for Java” pacakge then it has some of those built-in already, and even if you don’t, several of those have EACH OTHER built-in (WTF?). I suggest you don’t take any risks, and that you do this the long way (download EVERYTHING).

First, go to this download page.

Decide which version you want; right now you want “2.0.0 Stable Builds”, but soon that will be what you get from “Latest Releases”, so check there too.

Then download ALL the zip files listed under “PDT” AND everything listed under “Build Dependencies”. Right now, there are 3 files for “PDT” (SDK, Runtime, and Tests), and 5 files under “Build Dependencies” (Eclipse gtk, EMF, DTP, GEF, and WTP).

Third problem: OS X can’t unzip the files

If, like most OS X users, you’re using Stuffit Expander to unzip the files, by default it won’t do it, because they all overwrite the same directory name (and StuffIt is designed to “protect” you from that, which is nice).

That’s only slightly annoying to get around, but you are still screwed, because OS X itself is (apparently – I couldn’t find a way around this using Finder) hard-coded to prevent you from copying the contents of the directories into the Eclipse directory. When you try to it says “delete the target directory first, or cancel?” (unlike windows, which says “only overwrite files which are the same, otherwise copy all the missing files … or cancel?” which is 99% of the time what you wanted. I have no idea why Apple uses a “destructive” copy – and gives you no alternative!)

Here’s how to get around both problems: The solution – Manual install via Terminal

Fortunately, if you switch to using the Terminal, and run “unzip” by typing it in manually, by default it’s setup as a unix variant that acts in the same way that Windows works by default.

First, make sure you are in the directory where you saved the ZIP files, e.g. by typing:

cd ~/Downloads

(assuming you saved them to your personal Downloads folder)

Then you just type:

unzip [name of zipfile1]
unzip [name of zipfile2]

unzip [name of zipfileN]

…which resolves the incompatibilities in the distro files, and then to install the plugin you type:

cp -Ri eclipse [location of your eclipse folder – usually: /Applications/eclipse]

Note that the “-R” is *required*, and that there is NO trailing slash after “eclipse”. The “i” after the “-R” is optional, it might be good to know if you have problems, but it allows you to get confirmation before overwriting any files. Thankfully, you can just hold down the enter key and it will do the defautl (do not overwrite) as it goes through each file; there are many hundreds of files to copy, and you may already have hundreds of them, so this is handy.

Installation complete

Now start Eclipse – this took 5 minutes for me, where normally it takes 30 seconds, don’t ask me why) – but eventually it worked.

Test it works – go “File -> New Project” and scroll down to the PHP folder, and select “PHP Project”. If there is no PHP folder in the list, then the install has failed. Start again. Good luck.

Otherwise, it should let you create a project, in which case: You now have PDT / PHP-IDE for Eclipse installed and working.

Writing a PHP file

I’m assuming you know how to do this, or can find a tutorial (any PDT tutorials should be fine – it works the same way as the mainstream language plugins for Eclipse, so *any* tutorial on creating a source file and building it ought to work).

Fourth problem: Running your PHP

Oh crap. If you go ahead and create a project, give it a name, and hit OK, you’ll find that the PHP IDE seems designed to not allow you to develop or test PHP on a server; it only supports developing and testing on a local (inside Eclipse) private PHP interpreter. If you’re new to programming, this is fine to get started and learn some basic PHP.

If you’re an experienced programmer, you’ll probably hat that: unless you enjoy tracking down unreproducable bugs and tearing your hair out, you need to develop on the same software + version that runs your production server (in most cases, this will be an Apache2 server running the PHP5 module). Since OS X comes with Apache2 *and* PHP5 built-in, you *already* have a server on your machine that is probably 98% the same as the live server you would use (so far Apache2 + PHP5 on OS X seems to act almost identically to the same versions on Linux, FreeBSD, etc – as you would expect).

(98% is annoyingly short of 100%, but it’s a lot closer than using the bulit-in interpreter)

I can’t find any options in the Run Dialogs to control how it invokes the running of the code from a remote server (or even a local one!) – if you go digging through all the config options, they’re just missing.

NB: there IS something that looks like it might do the trick, where it has a list of “Server” and lets you choose a “PHP Server” – but THIS IS A LIE (there is no cake), do not believe it, this is for something else entirely; it’s just that someone made a poor choice of name for those labels).

Instead, what you have to do is be a lot more careful when creating new projects. Do this:

  • File -> New… -> PHP Project
  • Fill in project name as per normal with Eclipse
  • UNcheck the “default” option for “Project Contents”
  • Click the Browse button under “Project Contents” and navigate to wherever you keep your source DIRECTORIES for all your projects (see more on this below – and you may end up crying when you see what has to be done)
  • Click Finish
  • …NB: BE CAREFUL: it asks you a sneaky extra question, and your answer depends on how you manage source control (see below)

Special Note: where do you keep your PHP?


  • you are just developing locally for now on OS X
  • AND you want to use the Sites directory to save your PHP files in
  • AND you want to use your Apache2/PHP server instead of the “fake” one that comes with eclipse


  • select your personal Sites folder as the Project Contents above
  • AND answer “Create project in /Users/[your name]/Sites/[project name]” when you press Finish above

This will:

  • automatically create a new sub-directory in Sites with the same name as your project
  • mean that the address of your project is “http://localhost/[projectname]/”
  • mean that if you delete the project in Eclipse, and select “delete from disk as well” when you do, Eclipse will delete ONLY the “[projectname]” subdirectory from your Sites folder, and leave everything else intact



  • you use proper source control which has a unique root directory for each source project


  • select the folder for that project as the Project Contents above
  • AND answer “Create project in [source root folder]. (Deleting the project will delete the entire [source root folder])


  • select the PARENT folder that contains the project-specific source folder as the Project Contents above
  • AND answer “Create project in [PARENT folder of source root folder]” when you press Finish above

I actually strongly recommend the first option, since this will ensure that Eclipse doesn’t mess with your source control’s PARENT folder (which in most source control systems will either screwup the system (happens with crappy source control like CVS) or just be ignored because you won’t have write-access (happens with the more high quality source control) – but this can upset Eclipse if you do some other things wrong in the future.


After all that, I finally had a working PHP IDE on OS X. Yes!

I haven’t tried debugging yet, but I found the following links that look pretty sound for setting it up. Bear in mind that the first one tells you to setup your Project Contents differently – just adapt what it tells you depending upon what you did above – the author doesn’t seem to fully understand Eclipse’s arcane approach to projects (given the name he uses for his Project!), which is fine, but IMHO not recommended.

How To Setup a Free PHP Debugger using Eclipse PDT + XDebug

community computer games databases design dev-process games design games industry massively multiplayer network programming programming recruiting

MMO Blogger Round-up

On this site I have a rather subtly-hidden Blog Roll. When I started blogging, the site had less on it, and the roll was easy to find – and short. Now it’s not. And it’s long. And each link on there has been carefully considered. There’s some gems in there (although a lot of them are updated so infrequently few people track them).

So it’s time to call-out some of the interesting things to be found in the blogging world of MMO people.

By the way … you can tell who’s working on uber-secret or personally exciting projects these days because they’ve suspiciously stopped blogging for months at a time. Lazy slackers, the lot of them. The more you do, the more you should blog! :P

There are some that should be on the blogroll but aren’t (yet), and some other bloggers I should mention (but I’m sticking to the blogroll only for this post – I’ll go through others next time). Feel free to add your own recommended reading in the comments.

Blogs to read:
Brinking (Nabeel Hyatt)
* Who? serial entrepreneur, raised funding and sold companies
* What? currently running a funk-tastic social / music / games company with a bunch of Harmonix guys
* Why? big commentator on the games/apps/making money/predictions parts of All Things Facebook

Broken Toys (Scott Jennings / LTM)
* Who? became infamous in the early days of MMOs as a player of Ultima Online who ranted publically, amusingly, and sometimes even insightfully
* What? ex-NCsoft, now doing intriguing web games at John Galt Games
* Why? In his heart Scott’s still a player, and more than anyone else I’ve seen he interprets the world of MMO design, development, and playing through the players’ eyes. Interesting point: he’s mostly concerned with life-after-launch. Funny that. Players kind of find that bit the most interesting. Also keeps a close eye on community-management screw-ups, and WoW generally

Bruce Everiss
* Who? ex-head of marketing for Codemasters
* What? um, I’m not sure what he’s doing these days, apart from becoming a “professional blogger”
* Why? he aims to comment on every single interesting piece of news in the mainstream games industry. That’s a lot of commentary. Always something to read! IMHO he is often completely wrong about anything online-games, and a lot of business and “future of industry” stuff – Bruce is from an older age of the industry. But … he says a lot of interesting things and sparks a lot of interesting debates in the process. Worth reading. Just remember he is extremely (deliberately, I’m sure) provocative, and don’t take it too seriously.

Coke and Code (Kevin Glass)
* Who? A programmer working in mainstream IT
* What? An insanely prolific author of casual games “in his free time, as a hobby”
* Why? Because he’s better at making games than many professionals I’ve met, and he is very very prolific, making new libraries, toolsets, editors, games, game engines – and commenting on it all as he goes, and throwing up new games for you to play all the time

Erik Bethke
* Who? ex-Producer for Interplay
* What? CEO of GoPets, an online casual virtual world that’s especially big in Asia (and based in South Korea)
* Why? A hardcore WoW player who analyses the game-design as he goes, and relates very honestly a stream of both emotional experiences and seminal events in the game that should give you lots of things to be thinking about, especially if you’re a designer, business person, or product manager.

Extenuating Circumstances (Dan Hon)
* Who? ex-MindCandy, current CEO of SixToStart
* What? one of the first Bloggers (on the whole of the internet!) in the UK, and an awe-inspiring assimilator of “everything happening on the internet, with technology, with media, with entertainment and the future of the world” for all of the ten years I’ve known him.
* Why? He’s still an excellent tracker of all those things, and finds memes very quickly. Nowadays he just auto-posts links (lots of them, every day) with a few words of commentary scattered here and there ( descriptions) – making his blog a ready-made news filter for you :)

Fishpool (Osma Ahvenlampi)
* Who? CTO of Sulake (makers of Habbo Hotel)
* What? a very technical commentator, often in great detail, on the issues of running a 100-million user virtual world, with observations about Habbo’s community, business, and culture thrown in
* Why? He posts very rarely, but when he does, they’re usually full of yummy detail

Futuristic Play (Andrew Chen)
* Who? ex-VC (Mohr-Davidow Ventures)
* What? entrepreneur with a web-background who’s come into the games industry and bringing lots of useful stuff with him
* Why? blogs a LOT on advertising (and how to make money out of it in games and web and casual), and on metrics, and how you can use them to run you games or web business better. Also has a long fascination with what are the best parts of the games industry, and the best of the web industry, and how we can each put those best bits together to be even better

Off the Record – Scott Hartsman
* Who? ex-Everquest, ex-Simutronics
* What? Senior Producer for MMOs – but previously an MMO lead developer, and once (apparently) a Game Designer.
* Why? he’s funny, he knows his stuff, and he’s worked on some of the most important MMO projects outside Asia, so he’s got an interesting perspective going there.

Orbus Gameworks (Darius Kazemi)
* Who? ex-Turbine, now CEO of Orbus (a games-metrics middleware company)
* What? Likes the colour orange *a lot*, infamous for networking his ass off at games conferences (*everyone* knows Darius), very friendly, generous – and mildly obssessed with the use of metrics and stats to improve the creativity and success of game design (in a good way)
* Why? If you liked the Halo heatmaps when they came out, you’ll love some of the stuff they post on the Orbus company blog. A year ago they were posting heatmaps-on-steroids. If you thought “metrics” equalled “spreadsheets of data” then prepare to have your view changed pretty thoroughly.

Prospect Magazine/First Drafts (Tom Chatfield)
* Who? section-editor of the highly respected socio-political print magaine Prospect
* What? a highly-accomplished English Literature post-grad (bear with me here) … who also happens to have been a lifelong hardcore game player, I think the only person I know who got a hardcore character to level 99 on Diablo2, and now plays WoW a lot.
* Why? although Prospect only very rarely (like, only a few times ever) covers games, it’s very interesting to see what the rest of the world – especially the highly educated and highly intelligent but non-technical, older generations – thinks of us. And a bit of culture in your blog reading is probably good for you, too.

Psychochild (Brian Green)
* Who? ex-3DO/M-59, now the owner and designer of the revamped, relaunched, more modern Meridian-59
* What? an MMO game designer who disingenuously describes himself as an indie MMO designer but like most of the others has probably spent too long doing this and knows too much (compared to many of the modern “mainstream” MMO designers) for that to be true any more
* Why? lots and lots of great design ideas and commentary here for anyone wanting to do MMO design

Scott Bilas
* Who? programmer on Duneon Siege
* What? …in particular, responsible for the Entity System (one of my main areas of interest)
* Why? Scott’s phased in and out of blogging, but when he does blog he tends to do good meaty programming posts that contain lots of source code and some useful lesson or algorithm.

Sulka’s Game (Sulka Haro)
* Who? lead designer for Sulake (Habbo Hotel)
* What? more of a Creative Director than game designer, more of a web background than games, but above all a community/product/creative person who knows his stuff. Also a big player of MMORPGs
* Why? are you cloning Club Penguin or Habbo Hotel and want some pointers about revenue models, community management, and how to be successful with virtual-item sales? You might want to read his posts ;)

The Creation Engine No.2 (Jim Purbrick)
* Who? ex-Codemasters, ex-Climax (both times working on MMO projects)
* What? originally a network / MMO academic researcher, then a network coder, and now the person who runs Linden Lab (Second Life) in the UK. Very big proponent of all things open-source, always doing interesting and innovative things with technology
* Why? Keep an eye on the more innovative technology things that are done with Second Life (stuff you don’t tend to read about in the news but – to a tech or games person – is a heck of a lot more interesting by a long long way), and get some insight into the life of serious open-source programmers who succeed in living and breathing this stuff inside commercial environments

The Forge (Matt Mihaly)
* Who? developer of one of the earliest commercially successful text MUDs, now CEO of Sparkplay Media
* What? spent many years running Achaea, a text-only MUD that made a healthy profit from pioneering the use of itemsales (virtual goods) – and the things weren’t even graphical – and has now finally (finally!) moved into graphical games with the MMO he’s developing
* Why? one of the few MMO professionals who talks a lot about his experiences playing on consoles (especially Xbox), which makes for a refreshing alternate view – especially from the perspective of an MMO person talking about social and community issues in those games. Just like Brian Green, claims to be an indie MMO designer, but probably knows far far too much for that to be even vaguely justifiable

Vex Appeal (Guy Parsons)
* Who? ex-MindCandy
* What? Guy is an extremely creative … guy … who had a small job title but a big part in inventing and rolling out a lot of the viral marketing stuff we did for Perplex City (online game / ARG from a couple of years ago)
* Why? Awesome place to go for ideas and info on the cutting edge of doing games stuff with social networks. Usually. Also … just makes for a fun blog to read

We Can Fix That with Data (Sara Jensen Schubert)
* Who? ex-Spacetime, currently SOE
* What? MMO designer, but like Lum / Scott Jennings, comes from a long background as player and commentator, and shorter background as actually in the industry. Like Darius Kazemi, spent a lot of time in doing metrics / data-mining for MMOs
* Why? Take Darius’s insight into metrics for MMOs, and Scott’s knowledge of what players like, don’t like, and ARE like, and you get a whole bunch of interesting posts wandering around the world of metrics-supported-game-design-and-community-management. Good stuff.

Zen of Design (Damion Schubert)
* Who? ex-EA (Ultima Online), currently at Bioware (MMO)
* What? MMO designer who’s been around for a long time (c.f. UO)
* Why? Damion writes long detailed posts about MMO design, what works, what doesn’t, practicalities of geting MMO development teams to work together, how the playerbase will react to things, etc. He also rather likes raiding in MMORPGs – which is fascinating to see (given his heavy background as a pro MMO *designer*)

[NC] Anson (Matthew Wiegel)
* Who? ex-NCsoft
* What? Dungeon Runners team
* Why? was doing lots of interesting and exciting things with data-mining/metrics in the free-to-play low-budget NCsoft casual MMO. Watch this space…

People with nothing to do with games, but you might want to watch just because they’re interesting:
Bard’s World (Joshua Slack)
* ex-NCsoft
* Josh is one of the key people behind Java’s free, hardware-accelearted, game engine (JME)
Janus Anderson
* Who? ex-NCsoft
* What? um, he’s been taking a lot of photos recently
* Why? watch this space
Mark Grant
* Who? non-Games industry
* What? an entrepreneur, web-developer, and Cambridge Engineer
* Why? very smart guy, and interesting posts on web development (no games tie-in)


What topics do you want to read … followups

Thanks for everyone who voted in the survey (What topics do you want to read more about?) – very helpful.

You can help by rating the posts from now on whenever you see one that you greatly prefer / greatly dislike (I’ve added a plugin that lets you rate each post from 1 star to 5 stars without reloading the page or having to login etc).

Your top votes:

  • MMO operations issues / running online games (80%)
  • MMO programming (75%)
  • MMO design issues / inventing online games (75%)

So, you all want to know more about how to make and then run an MMO, huh? :)

But … don’t want any more Casual MMO analysis (15%) nor anything to do with Social Networking (5%), even though MMOs are really the world’s most advanced Social Networks and depend upon it for their revenue. Interesting.

So, I guess this reflects an interest in more of the MMORPG / $50 million budget side of the MMO industry? a.k.a. “how do you even spend that much money in a sensible way”?

A few generic areas there I’ve long been meaning to write about:

  • Mistakes in MMO design
  • Mistakes in MMO programming
  • Classic (and not-so-classic) MMO server architectures
  • What “running an MMO” looks like (staff, job roles, hardware, software, processes)
  • Better ways of running an MMO (mostly: different approaches to process and to software)

Is that along the right lines? If not, let me know (comment on this post, or grab my email from the About page) – suggestions / requests welcome too, although do that for information only, don’t expect me to automatically fulfil them!

And, as mattb pointed out, there’s at least one person wanting more on Component / Entity Systems. That’s tricky. The ES posts so far took a very long time to write (contrary to what some people have said, an awful lot of research and cross-checking went into them, in an attempt to clarify what has historically been a very murky and poorly-described subject, and prone to confusion and misinformation). Until recently it also looked like I was going to have an opportunity to see another ES go into production for a major MMO, and I was hoping to wait and see how that went before coming back to the topic. That ain’t going to happen now, which leaves me with several directions I could go in. Feedback needed, guys – what needs saying that isn’t already said? I’ve got one interesting post left that explains the whole “Future of MMO” part (although I think it’s pretty obvious already what that will contain), but I’m sure there’s a lot more advice and thoughts I could throw out if there’s specific areas people are looking at (except not source code – I’ve tried blogging source before, this is the wrong medium for that).

community conferences entrepreneurship mmo signup processes Web 0.1

Web 0.1: How NOT to organize an event on

(a FAIL using web-based meeting tools)

1) Make it look fun and interesting and seemingly inclusive:

“MiniBar is a social evening in East London which offers people a chance to snaffle some free beer while discussing p2p, Creative Commons, web applications, social networking and general Web 2.0 (3.0) mayhem & fandango.”

2) …but require that signup has to be done in two separate places for two “halves” of the event:

“You can come at 5pm … You need to register separately here for this part.”

3) …and make the location a Secret, known only to the special few:

This location is shown only to members”

4) If someone attempts to signup for the (free) event, deny them, and demand 250 letters explanation (no more! don’t you dare go over 250 chars!) for why they are important enough / l33t enough to be allowed to come:

(the way works, I can’t access this page from cache to copy/paste the text, sorry – you’ll just have to take it from me that it’s pretty abrupt, demanding you justify yourself without offering anything in return, or any kind of explanation of WHAT you are supposed to write, or WHY)

5) Finish your event description with not one but TWO content-less/broken links, and describe them as “more info”. For bonus marks: forget to hyperlink one of them:

“More Info at: and”

(the first domain there is hotlinked to:

NB: == a empty webserver directory on a webserver allegedly running Apache version 1.3.39 (!) – not impressive for a web/internet event.

NB2: == a webpage with adverts for 50 odd totally unrelated items, e.g.

“angled bob hair style
black braided hair styles
jc penny free shipping
trendy hair style
victoria secret free shipping”

(yes, really – Victoria Secret and JC penny. For a supposed BarCamp about startups and internet companies. Um … OK.)

I guess that’s another Web 0.1 example, then…

maintenance web 2.0

What topics do you want to read more about?

Inspired by Andrew Chen (whose question I’ve copied exactly :)), here’s a poll to find out what YOU, thre readers of this blog, would like to see more of.

(tick all that apply; if you tick the “something else” option, please comment on this post and say what’s missing)

[poll id=”2″]

If you believe in metrics, user-interaction, and sampling your userbase, doing something like this is a no-brainer :).

computer games programming

Tilt-sensitive game using Macbook / Macbook Air

This is a tiny game we made more than 2 years ago as part of Perplex City. Many people are unaware that the tilt-sensors inside the iPhone are also available (or something very similar) inside every apple laptop (all Macbooks/most Powerbooks/some iBooks); we made a game that made use of this.

Unfortunately, this feature of the laptops is undocumented, and so Apple has changed the specs a few times, so the original files no longer work. With a small bit of mangling, I’ve fixed the very simple input script, and it all works fine on my Macbook Air.



  1. Download the file “” from the second link above, and unzip it
  2. Download the AMStracker dmg from the third link above, and open it, and put all the contents in the Maze subdirectory of wherever you just unzipped to; it will want to overwrite a file – say “yes”
  3. Make a new file in that directory using a text editor, call it e.g. “”, and copy/paste the lines below (bottom of this post)
  4. Run the file; you might be able to double click on it, you might have to go to the directory in Terminal and type “./” to make it run
  5. Wait for the java app to load, you should see a ball on a chequered background
  6. Pick up your laptop and start tilting it to make the ball roll around
  7. NB: the lack of graphics was deliberate! the idea was to close your laptop lid and play just using the sound (this requires you to disable OS X’s auto-suspend feature though)
  8. You will get cryptic messages as you complete levels; there are hundreds of levels, and no save feature (!). Read the website links above to find out why…

PS: if you read the source and think “ugh, what a brutal and inelegant way to make this work” then congratulations – this whole game was done start to finish in something like 2 weeks (part-time; if we’d all been working full-time on it it was probably more like 4 days). We had to cut a lot of corners…

Source of file – copy/paste everything below this line

#!/usr/bin/perl -w

use IO::Socket::INET;
use Getopt::Long;

$| = 1;

my $flipx = 0;my $flipy = 0;my $port = 5399;my $ams = “./amstracker”;my $maze = “./maze.jar”;my $scale = 5;

GetOptions(“flipx” => \$flipx, # –flipx flip x axis
“flipy” => \$flipy, # –flipy flip y axis
“port=i” => \$port, # –port 5399 port to talk to
“ams=s” => \$ams, # –ams ./amstracker location of amstracker
“maze=s” => \$maze, # –maze ./tiltmaze.jar location of tiltmaze.jar
“scale=f” => \$scale); # –scale 3.0 tilt scaling factor

# Needs AMStracker v0.34 or above, currently at:

print STDERR “Starting amstracker ($ams)…\n”;
open AMS, “$ams -s -u 0.1 |” or die “Can’t start amstracker: $!”;
my $line = ;
print “$line”;

if ($line =~ /software/) {print STDERR “No tilt sensor found.\n”;exit 1;}

print STDERR “Starting maze ($maze)…\n”;
system “open $maze”;

print STDERR “Connecting to game…”;
my $sock;my $count = 0;

while (1){
$sock = IO::Socket::INET->new(PeerAddr => ‘localhost’,PeerPort => $port,Proto => ‘tcp’);
last if defined $sock; # success!
if ($count > 20){die “Can’t connect to game: $!”; }
print “.”;sleep 2;}
print “\n”;

while () {
my ($x,$y,$z) = split;
next unless $x =~ /\d+/;
$x = -$x unless $flipx; $z = -$z if $flipy; $x = int($x * $scale); $z = int($z * $scale);
last unless $sock->print(“[$x,$z]”); }