Categories
games industry massively multiplayer web 2.0

Online Games as a Billion-Dollar Business

Autumn 2012: NCsoft just cancelled City of Heroes – a game that back in 2009 (when this post was written) was doing fine (although nothing stellar; it was a mid-tier MMO). If you’re interested in my thoughts on that, I’ve written a 2012 followup on the CoH situation in particular. NB: I no longer work in the MMO industry, although I still work in games dev

I spotted some good commentary on NCWest’s City of Heroes/Villains in 2009 today – modulo one or two quirks (umm … does Cryptic have anything to do with CoX any more? I thought this is now NCsoft’s game; as the publisher, they bought out Cryptic’s ownership last year, no?).

But one theme in particular came up that I want to hilight: why is NCsoft Korea so callous / vicious / greedy / demanding / single-minded / stupid when it comes to the profitability of their games? (NB: those aren’t my terms, as you’ll see by the end of this post – but that’s how I’ve heard people describe them, while trying and failing to understand what’s going on)

Categories
agile dev-process MMOG development programming startup advice web 2.0

How to FAIL, from the world of Open Source: Eclipse

The problem

It’s a great piece of openness to put your bug lists in the public domain. It makes it easier for your customers and partners to make decisions that save you time because they can see what’s coming and when (and save you money in reduced support requests). It saves you money in that you get free QA / testing from your users.

The downside is that it exposes to the world the places where you are especially incompetent, lazy, or just plain self-centred.

This is a recurring theme I’ve seen with corporates looking at both Open Source and also Web 2.0:

We say we’re the best, but secretly I believe we’re the worst; if we expose ourselves to the public, people will ridicule our mediocrity, and refuse to do business with us.

Also … I will probably get fired because my colleagues and my boss will finally realise what a clusterfuck I preside over on a daily basis

Eclipse, and a tale of two bugs

I was going to log two high-impact bugs that Eclipse has had for several years. Then I did a search on that area of Eclipse, and realised that the current Eclipse maintainers don’t give a **** about this whole section of the IDE – some of the core bugs we see every day were logged in 2001, and are still open:

https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=&content=syntax+coloring

What you find when you do some basic research

If you go looking through the bug history for some of the more “obvious” bugs there, you often find little gems of passive-aggressiveness from maintainers. That’s an exceptionally effective way of making sure people stop helping and supporting any Open-Source project…

You’ll also find endless re-logging of the same old bugs from 10 years ago, revolving around the basic problem that Eclipse lets you set everything you could possibly imagine … EXCEPT the colours that it prints text in.

(all IDEs let you set the colours; most dont give you enough control over the other parts; Eclipse fails on the basic challenge, and succeeds on the advanced challenge)

This wouldn’t be so bad, except that its default is very bright with low-contrast – i.e. very hard to read on laptops when outside, and bad to read for long periods of time. As of about 5 years ago, you are finally “allowed” to set the colours yourself – except that the app breaks if you do, because they “didn’t bother” to allow you to change the colours on 20% or so of things.

Final thoughts

The next time someone – especially at a corporate – resists openness and transparency … in any form … ask yourself this:

What have they got to hide?

Often, once you ask yourself that question of the right person at the right time, it very quickly becomes obvious what they’re hiding (if not why). A little more digging, and you can pry open the can of worms, and see what trouble they’ve been up to…

(Incidentally (and unsurprisingly), in the face of the point-blank refusal of Eclipse developers to make basic usability concessions across the board, I didn’t bother logging either of the two bugs I’d found)

Categories
entrepreneurship games design games industry iphone networking social networking web 2.0

Will iPhone save the (free) Internet?

Wifi and internet at all is a priviledge – but Free Wifi is something that in our modern society, and the society we’re set to become, needs to be treated as a right. When I started writing this, I was looking at the benefits we have yet to see (ubiquitous free wifi); in the week I’ve been offline with jetlag, the preceding benefits we already have that would make them possible – flat rate internet – are being ripped away from us, and . Both are understandable, but … yikes.

Casual, assumed, free internet access is now ubiquitous (even if the access itself isn’t as operationally ubiquitous as services assume). I can’t even access half my music collection any more unless I’ve got a wireless high-bandwidth connection available (Spotify). The other half lives on my MP3 player (iPhone) – but is static, unmeasured, unconnected, and unshareable.

This is a problem. Right now, sitting in San Francisco, the city of a thousand broken, crashing, low-bandwidth, pay-per-minute (min charge 24 hours) wifi connections, next door to Silicon Valley, a world center of innovation that only exists because the right infrastructure here and the wrong mistakes elsewhere allowed it to form, it’s particularly on my mind. SF is a great example of what will push the next Silicon Valley to happen elsewhere. A lot of people ought to be worried by that – and doing a little more about it.

In Brighton, my current (temporary) home city, the first repeated free wifi hotspots were set up – as I understand it – effectively as an act of charitable benevolence by “a couple of guys” (looseconnection.com/Josh Russell). They weren’t even rich, or old – just some kids doing something cool, and useful. Anyone could do this. Too few actually do. I’ve heard it suggested again and again (where are the mesh networks that were supposed to be ubiquitous 4 years ago?) by people in the UK – especially in and around Cambridge, in tech the UK’s closest replica of Silicon Valley – but always with excuses about why they aren’t doing it yet, aren’t able to until someone else does something else to make it easier for them. That’s crap. Just do it. Do it this weekend; what better are you doing right now?

Will Apple single-handedly save Wifi? Maybe. It could be the biggest gift of iPhone: that it finally turns the rest of the world on to building bigger, better, and above all FREE, wifi networks. Everywhere. Ironic, considering that’s exactly what will kill the fundamental device that drives the iPhone: the “cell” phone. Does anybody else remember that before we had cell phones we had hotspot phones, back when cells weren’t good enough, and were so expensive to use? So we go full circle, but this time with an ecosystem and a tech interconnection system (API’s, protocols, layers) big enough to support the worldwide rollout of such hotspots (well, and that’s what mesh was supposed to be about, right?)

But why would this happen? It doesn’t make sense … does it?

Skype is a great example. Sadly, it’s also overloaded with additional meaning that clouds the issue – because Skype is an internet app (good) that is mostly about phone calls (bad / confusing the issue).

Skype is now available on iPhone, and it’s a great, highly polished, iPhone App. It *works* (as well as anything can on iPhone – with the current version of iPhone Apple does not allow *anyone* to have their app listen for incoming connections and auto-start, so you can only “receive” Skype calls on your iPhone if you are not using any other app and instead are currently inside the Skype App.

But … the voice part only works over Wifi. This is the concession it took for Skype to be “allowed” on iPhone (NB: Apple allegedly forced the network operators to give away free / flat rate data in return for being “allowed” to sell network-locked iPhones; if Apple had also allowed Skype-on-3G/EDGE/cell network, then they would have caused people to stop paying call charges en masse. Although this is the natural future of cell phones, and everyone knows this, the network operators would probably assassinate Steve Jobs if he tried that today).

So, Skype is – effectively – a “wifi-only” application.

20 million devices cannot be ignored

But wait … there’s more. The iPhone platform has an installed userbase of almost 40 million handsets as of first quarter 2009 (yes, that’s only 20% less than the entire global sales PS3 and 360 combined; the iphone is already one of the top games consoles in the world; Sony (Computer Entertainment) is doomed, and Nintendo’s cash days are numbered, even though they’ll make loads of cash for the next 3 years – the DSi was defunct due to iPhone *before it launched*, so after those few years, the cashflow will drop off / vanish).

But … around half of those are not iPhones, but iPod Touch’s. This is very important to understand: the two devices are compile time identical, and *almost* feature identical. They are more similar than almost any pair of cell phones in the world, even ones from the same manufacturer. And by default all iPhone developers are writing code that runs seamlessly on the iPod Touch – it doesn’t (usually) “break” on iPod Touch if it uses an unsupported iPhone-only feature … rather, that part of the app silently is ignored.

So … nearly all those iPhone developers are actually also iPod Touch developers. Many of them deliberately steer clear of using iPhone-only features. Some of them (myself included) write their apps to cleverly detect whether they’re on an iPod Touch, and work around the limitations (it’s not hard – e.g. if I can’t upload scores to the game server because I’m on a Touch that isnt in wifi range, I save it and upload it next time the phone is online. As a bonus, this makes my games work “better” on iPhone when the iPhone has to go offline, e.g. when it goes on an airplane).

NOT “iphone App”, but “Wifi App”

Back to the point… There aren’t many Wifi-only Apps out there on iPhone … yet.

But there will be. More and more of them. And this summer, when Apple brings out the 3.0 update for iPhone, making ad-hoc discovery much easier (i.e. my phone will be able to auto-detect / find your iphone when they’re in the same room), wifi-local Apps will blossom.

A simple example: real-time fast-action games.

e.g. a Racing Game, that works like this:

  1. I persuade you to download the free version
  2. We each click on the icon on our own phones
  3. The phones magically discover each other, without either of us doing anything, within a couple of seconds
  4. We start playing a high-speed racing game – e.g. Need for Speed, or Midnight Club – over the local wifi network
  5. The net code works beautifully, there’s no lag, everything updates very fast and smoothly
  6. When we finish, the free version you downloaded pops up to say “you played with your friend because he/she had the paid version. If you want to play with different friends, one of you will need to buy the paid version. Click here to buy (one click, instant download)”.

All that is possible, and relatively easy, come summer 2009. You *can* attempt to do it over a 3G network, but it’s hard. But as a wifi-only app it becomes easy. Guess what’s going to happen?

The future of local free wifi

I predicted around 30-40 million iPhone* devices sold by now, and Apple’s 37 million official figure made me look clever (although admittedly it was only a 6 months extrapolation and a 33% error margin I quoted there ;)). I predicted around 75-100 million sold by the same time 2010, and I’ve noticed a lot of other people have come up with the 100 million estimate for 2009 since the official 37 million figure came out.

So, although I think it’s optimistic to expect 100m by the end of the year, I’m confident it’s going to be close. 100m wifi enabled game consoles sitting in cafes, restaurants, bookshops, trains, buses, hotel lobbies, city squares, pubs, etc.

Oh, and don’t forget – that iPod Touch, with no “network contract” to pay for, is a perfect gift for kids. Plenty of people have lined up to tell me that kids can’t afford them; the market research that consistently shows under 18’s as the second largest demographic for iphone* ownership suggest that’s an ill-informed opinion. So there’ll be a lot of those devices sitting in the hands of bored children / used to keep them occupied while parents are doing other things. And we all know how strong a child’s “pestering power” can be.

Monetize local wifi? Screw that; who can be bothered to monetize it when it becomes as essential a driver of custom to your store as having coke/pepsi/coffee on the menu (even though you’re actually, e.g. a bookstore…). Re-think how that affects the “monetization potential” of local wifi (hint: look to the already vast field of *indirectly monetized* Freemium / F2P for inspiration)

So, I’m optimistic. And rather than focus on how “iPhone is going to destroy the cell phone / network operator hegemony, and bring around fair pricing for consumers”, I’m focussing on how it’s going to usher in the long-envisaged era of high-bandwidth, low-latency, high quality console games and apps that focus on the local area. I’m happy with that: I’ve spent almost a decade learning how to make online games for millions of players where the core experience takes place in the local group, so I feel extremely qualified to do well out of this. What about you? What will you be doing with it?

Categories
GDC 2009 social networking web 2.0

GDC09: How to sell Social Networking to your Publisher

Adam Martin, (me!)

Summary

I was giving this talk, so … no live writeup this time :).

The slides are up on slideshare here:

http://www.slideshare.net/guest38ac74/how-to-sell-social-networking-to-your-boss-and-publisher-1215019

NB: I lost my voice the morning of the talk, and panicked, and rewrote the slides to include everything in words in case I couldn’t get my voice back (or if it cut out part way through). Hence the unusually dour presentation style. Sorry!

Categories
agile community conferences entrepreneurship games industry startup advice web 2.0

Free iPhone developer meetups

I just received an “invite” to a pay-for event in London about “smartphone development”: an evening in a bar with a couple of speakers and some networking.

So … you can go and listen to an iPhone developer, an ex EA person, and an ex Motorola person, and pay for the priviledge, organized by non-developers. The cost is 50% more than you pay to go to world-famous VC/angel/investor networking events such as First Tuesday.

Or … you could go to one of the many near-identical networking + speaker events that are free, and run by real developers. Here are four examples which show that Upcoming, meetup.com – even Facebook and LinkedIn – are your friends here, with loads of stuff going on.

The issue of “how” you organize these things and “what” you provide has been on my mind a lot recently, as we’ve just started a fortnightly one in Brighton (for anyone and everyone interested in commissioning, designing, developing, and launching iPhone apps). I’ve been trying out all the above sites for arranging this (I can write up some notes about the pros/cons of the different sites if anyone is interested). If you can’t find something in your local area … why not start one of your own, all it takes is making a page on Upcoming.com, and emailing the local game / mobile / iphone / OS X developer communities … takes about 30 minutes, max?

Personally, I find the grassroots events organized by people actually making this stuff on a daily basis the far more compelling option. I also find that “special name speaker” events tend to focus on the audience being expected to shut up and listen, rather than share and learn collectively – which isn’t much use to me these days. Unconferences for the win!

Of course, sooner or later, if your event gets popular, you’ll have to start charging because the only venues big enough require large payments, and the organization effort becomes too much to do in your free time. But for the small events? My advice: if it ain’t free, don’t go.

Categories
computer games design games design marketing web 2.0

Web 2.0: Games, Creativity, UGC, and Socialising in Spore

Maxis (part of EA) has a great competition up right now – use the public APIs for the Spore creature / user account databases to make “an interesting widget or app”.

I had a quick look at the API’s – they’ve got the right idea technically (use REST, provide PHP versions, etc), although the set of queryable data is pretty mneh (they could easily have done a *lot* more interesting stuff too). I’m impressed that they’ve got that right, and they appear to have done a great job of presenting it nice and clearly. Most importantly, because the selection of data is lame, the challenge is there – in your face – to be very creative with how you’re going to use it. Go for it.

I had a look at some of the demo apps that had already been done, and they show great variety. If you’re trying to break into the games industry as an online designer, you should try your hand at using their content (and this is *legal*) to design something cool. You (probably; I haven’t checked the legals) won’t own exploitation rights – but it could make a great portfolio piece.

So I was rather saddened that it’s taken until now, and a random glance at a newsfeed item, for me to be aware of this. Which isn’t so bad, except … I was one of the first wave of purchasers of Spore, and I played it heavily, and checked out the Sporepedia for the few months after launch.

But they launched with most of the Sporepedia either “broken completely” or “not implemented yet”. Having paid $50+ for a full price game, to discover that even after several months the Sporepedia was “mostly not implemented yet, watch this space”, my reaction was : “I have better things to do with my life than wait for you to pull your finger out and do your job properly and give me what *I’ve already paid for*”.

And because of the mind-numbingly stupid DRM decisions by EA, I’ve point blank refused to install their viruses – without which, the system isn’t going to let me upload any of my own creatures / UGC. Which takes away a lot of the other cause of interest that would have rapidly lured me in.

Finally if it had been a “real” online game (why wasn’t it? No-one really seems to know. My theory is “fear and shame over The Sims Online catastrophe”) of course … my friends relationships in-game would have meant I’d have been pulled-in to this new cool stuff as soon as it went live.

So … it would seem that when it comes to boundary-pushing game design Maxis is managing to go 2 steps forwards and 3 steps back. That’s a real pity, because I suspect a lot of people who would love what Sporepedia was *described* as being (rather than the massive short-sell it actually was) have already given up, gone home, and don’t care any more. Only the people who don’t know about the good games out there (the non-gamers who happened to pick up a copy – of whic there are many many of course, thanks to the Sims juggernaut) are still around to enjoy it.

Am I being too pessimistic here? Certainly, not a single professional I know has shown any remaining awareness or interest in what Spore’s doing for the last 6 months. That’s pretty damning, in my eyes, for a game with such big sales and the Sims driving marketing and sales for it.

(PS: in case it’s not clear – as far as I’m aware, there’s still literally zero socialising in Spore. That’s the irony of the title here. The only socialising is 1995-era “the players are doing it anyway despite the developer+publisher going out of their way to stop them”)

Categories
bitching programming Web 0.1 web 2.0

phpMyFAQ: don’t use it, part 2

Disappointing

No spam filter (there is one, allegedly, but it’s invisible, non-configurable (!), and missing obvious spam words)

(there are comments on the official forums from 3 years ago saying “we need some basic anti-spam tools” and the author replying with “we’re working on it”)

Annoying

No spam controls for reactive processing (banning users, marking comments as spam, etc).

Unforgivable

Each comment can ONLY be deleted one, by one, by one, requiring 6 mouse clicks per deletion!

The concept of a list of comments, and a checkbox next to each, and a “delete selected comments” is now well over 10 years old – and it only takes a few minutes to implement with PHP + SQL. If you ever find yourself making a web app for general usage, please don’t forget this core feature :).

(I’ve been too busy for the past month making actual iPhone apps to finish my free PHP FAQ platform, but watch this space, shouldn’t be too long now…)

Categories
agile community entrepreneurship web 2.0

The Rules: Open Source Startup Funding

Mark Cuban’s blog is an odd one; I really can’t remember why I started reading it (presumably linked by a VC blogger would be my guess), and yet even though I read very few blogs I’ve stuck with his. It’s not like the standard SiValley other investor/commentator blogs. It’s a lot more based in the real world, and a lot closer to my experiences of running the business side of a business as opposed to the “building to flip” side of running a startup without ever being profitable just to sell it to someone else.

Anyway, advert over. He’s posted an interesting challenge: want money for a startup? Right. You have to publish the entire business plan, and let everyone else copy it. If – as many people are fond of saying – it’s implementation that matters, not the idea, then this shouldn’t be a problem for you. But it may bring wider-world benefits to everyone else, intangible virtuous-circle stuff.

I will invest money in businesses presented here on this blog. No minimum, no maximum, but a very specific set of rules. Here they are:

1. It can be an existing business or a start up.
2. It can not be a business that generates any revenue from advertising. Why ? Because I want this to be a business where you sell something and get paid for it. Thats the only way to get and stay profitable in such a short period of time.
3. It MUST BE CASH FLOW BREAK EVEN within 60 days
4. It must be profitable within 90 days.
5. Funding will be on a monthly basis. If you dont make your numbers, the funding stops
6. You must demonstrate as part of your plan that you sell your product or service for more than what it costs you to produce, fully encumbered
7. Everyone must work. The organization is completely flat. There are no employees reporting to managers. There is the founder/owners and everyone else
8. You must post your business plan here, or you can post it on slideshare.com , scribd.com or google docs, all completely public for anyone to see and/or download
9. I make no promises that if your business is profitable, that I will invest more money. Once you get the initial funding you are on your own
10. I will make no promises that I will be available to offer help. If I want to , I will. If not, I wont.
11. If you do get money, it goes into a bank that I specify, and I have the ability to watch the funds flow and the opportunity to require that I cosign any outflows.
12. In your business plan , make sure to specify how much equity I will receive or how I will get a return on my money.
13. No mult-level marketing programs (added 2/10/09 1pm)

PS: I love Mark’s attitude that comes across in his blog. E.g. in one of the first comments to this blog post:

Would you be open to reviewing pitches on your blog and then details privately?

From MC> No. This is an open source opportunity. Not a pitch Mark opportunity

Categories
bitching iphone Web 0.1 web 2.0

Web 0.1: Apple: please hire some web developers

I can no longer develop iPhone Apps. I am on my eighth attempt to download the 1.75Gb 2.2.1 SDK – without which, XCode refuses to even talk to my iPhone any more, because I allowed the iPhone to upgrade.

EDIT: I have it! I HAVE IT! YES! NO MORE PRAYING TO THE GODS OF ****ING APPLE’S CRAPPY WEB SERVER! (it’s probably a corrupted download)

The problem?

Sheer mind-numbing incompetence by Apple’s web team, it would seem (NB: I may be wrong; I haven’t tried packet-sniffing the HTTP traffic to prove this beyond all doubt, but my experiments with different browsers and different ISP’s strongly indicate it is the case). They’ve (mis)configured the webserver over at developer.apple.com to kill partial downloads of this monstrous file.

If you cannot download the whole thing before Apple automatically logs you out of their website (which they do every half an hour or so if you don’t actively surf the site), then your download is cancelled, server-side. You cannot resume from where you left off (their web server refuses to honour the HTTP command that tells it to resume a partial download).

What did they do wrong?

It’s a session-management problem – you CAN pause and resume a minute or two later. Just not half an hour later.

The other major bugs in the Apple websites (including that force logout!) suggest that some novice web programmer made a half-assed Session-management system that, well, sucks. (am I sounding angry? Hell yes; Apple’s website is behaving like some naive bricks-and-mortar company from 1999, not 2009). Or maybe they picked up a 3rd party one … that sucked. Whatever. It seems the session-manager is overriding Apache’s built-in support for this core element of HTTP, and saying “no”. For no reason other than bad web coding.

In passing, I noticed that they are *still* (allegedly – it’s easy to fake) running the same version of the Apache webserver that they’ve been shipping by default with OS X Server for some years now – a version that is more than 4 years old, 8 versions behind the current “maintenance” release, and 1 major version behind the “mainstream” release. Personally, I wouldn’t run Apache 1.x if you paid me, not with 2.x out there and running a “proper” webserver arch (apache 1.x is not a real webserver, it’s a hack using forks that makes it unnecessarily slow under heavy load).

</rant>

Categories
agile dev-process programming web 2.0

PHP: Looking for some Best Practices

PHP is weak, crappy, and encourages people to write terrible code. But … if you know what you’re doing, all of those might actually be really really good things.

(by the way, if you haven’t already, you should read Eric Ries thoughts on PHP…)

“Best Practices” are one of the best guides you can get for sailing between the Scylla and Charybdis of “crap code” and “over-engineering”.

So I’d like some, please.

Perfection

Anyone with zero computer science education can write crap code; that’s easy. At the other end of the spectrum we have the people who write Perfect code.

Anyone who writes perfect code is either:

  1. a liar
  2. too rich to work for money
  3. works in an industry that is immune to marketing

…because marketing is always a cheaper and more effective way of making more money, compared to writing “perfect” code.

(disclaimer: in the past, I’ve been the first, and lusted after the third, but never quite managed the second)

The skill that marks out the difference between a competent programmer and a good (or great) one is knowing which of the language’s strengths to play up, and which to play down. Sometimes, the fact that a language allows extremely sloppy code is a very good thing. e.g. most scripting languages – especially any that run on an “intelligent” runtime like the truly Awesome JavaVM – where being grossly inefficient is not only “OK” but in fact “doesn’t happen”, because once it notices what stupid thing you did, the runtime silently recompiles everything into decent C code while you’re not looking.

So … how the heck do you win?

You look for Best Practices, language-specific (and domain-specific, but that’s obviously of more niche value).

I recently did two moderate sized PHP projects. I figured: OK, so PHP is very easy to hack code together knowing very little about the platform (and I’d been using my Perl experience most of the time when writing PHP) – but Perl showed us that Best Practices are damn useful and not too hard to stick to. There must be lots that the PHP community has worked out by now!

(as Quake3 would say, in a bass rumbling voice:) Denied!

Um, no. Apparently not. Google – with *considerable massaging* – threw out a few dozen attempts from different people.

There was some interesting stuff in there. I found some obscure bits of standard and near-standard extensions I hadn’t noticed previously when reading the manuals.

But, to be honest, nearly all of it was a waste of time – it simply wasn’t PHP specific. Telling people that they should “document function headers” is meaningless as a “PHP Best Practice”. It’s not a PHP Best Practice, it’s a general programming practice. You can find it in *any* textbook (and if you don’t know stuff like that, I suggest you go read a few key books like Code Complete, for starters).

There’s also – and this quite upset me – a lot of BAD practice out there being passed on from PHP programmer to PHP programmer and hailed as if it were “a good thing”, when often it’s about as wise and valuable as staring down the barrel of a loaded gun so you can see better while you clean the inside.

What is PHP good for? Why?

I have recently realised that the majority of PHP programmers cannot answer these questions, and that many of the rest aren’t great at answering them either. If you can’t answer them, you can probably never be a great PHP programmer, and it’s debatable exactly how “good” you are. (/me ducks and runs for cover)

I’ve not done enough PHP to know what it does from the inside.

But I’ve done tonnes of code in “languages that are not PHP”, and I have a really really good idea what it does from the outside. And most of the Best Practices I saw for PHP were stolen from other languages (especially C derivatives) and are totally inappropriate for PHP. Because PHP is not C, and PHP programmers will never be decent C programmers, no matter how big their inferiority complex, and no matter how hard they slave to try and write “high quality code”.

Some things PHP is good at: (in no particular order!)

  1. It’s a Scripting Language (like JavaScript, and ActionScript, and Perl. But not like C, and not like C++, and not like Java)
    • It’s intended to be trivial to read and write code; the core language is “easy for a non-programmer to grasp”
    • There’s no feature in the language that requires thinking to understand what’s going on, by design (unfortunately, some of the libraries broke this. c.f. the great Register Globals disaster too)
    • idiots can code effectively…
    • …which means that highly intelligent individuals who were never trained as programmers can ALSO code effectively, with minimal pain and suffering
    • …and that changing (modifying, fixing, extending) other people’s PHP code is trivially easy
    • There’s no compiler. No cached builds. What you see is what you executed, literally.
  2. It’s very easy to grasp two of the three most important structures of a web application (the third one is “data flow” – PHP sucks at that one). The two it does great are “program logic” and “program inputs + outputs”; together these sum to “execution structure”
    • One page == one source file : you read an output (FORM or A link) to an HREF? Or a page is crashing in the browser? You know exactly which file to find it in
    • One source file == one page : all the logic (PHP tags) and the input/output parts of the user-interface (HTML tags) are in one file. So you can’t make assumptions and the resulting mistakes
  3. It’s a context-free language. This is a by-product of being so tightly integrated with HTTP/HTML. It is one of the things that “real” programmers sneer at PHP for – how can you have a context-free language that isn’t Functional and expect it to be any good? That’s some kind of mutant offspring of Fn and Imp that ought to be strangled at birth. Or … maybe … just maybe … it’s one of PHP’s greatest strengths (although admittedly it is a mutant offspring too)
    • When a single source file is executing *there cannot be any other context* (except for the Session, sadly – but this is a strange piece of context-that-is-not-context because of all the rules about what can and cannot be in a session)
    • Oh, OK: there cannot be any context from other threads, other users, other simultaneously executing code. This is one of the hardest, nastiest parts of all systems languages, the multi-threading stuff. And PHP completely wipes it out as a problem. Nice.
    • All source files – hence all user-interaction points – are (semi-)atomic by definition: either they execute, or they don’t (by default, if they start, they dont stop, not even if a crash-level event happens; more on that later)
  4. Code is mingled with presentation, but is “together but apart” because it’s guarded (in the computer science meaning of that word, sort-of) by enclosing magic PHP tags
    • You can copy/paste move around code without the risk of it becoming part of the presentation code (this problem happens A LOT (and causes some awful security holes and application crashes) in some languages, especially in templating languages, even though it seems like such a simple thing. I kid you not.)
    • Any decent IDE (/wave at Eclipse (download PDT to add PHP to it)) can do a lot better at second-guessing what the programmer wants to type next, thanks to the explicit context of being either “in code” or “in presentation”. Saves a lot of time, in very small pieces many times a day.
  5. It’s a mainstream scripting language: very very fast to write code, code is very very fast to read + understand (it CANNOT DO complex things like STL or Operator Overloading), and you can “make it up as you go along” when writing a program – it doesn’t expect you to plan ANYTHING in advance
    • No declarations : you don’t have to plan your variables in advance
    • No declarations = faster “flow of mental programming” : you can aribtrarily change your mind “mid sentence” when writing code, and not have to move backwards in the source file to fix a declaration as a result
    • No memory management : you don’t have to plan the LIFECYCLES of your variables in advance
  6. Writing basic imperative code. Fast. (Imperative == “not Functional”; if you don’t know what that means, look it up – Fn programming is awesome)
  7. Templates for pages.
    • If you’re going to use a template method (or, god forbid, “library”) in PHP, make sure that its source code looks *exactly like PHP*. Because PHP is an excellent templating language.
    • This begs the question of “why aren’t you just using PHP in the first place, fool?”. The answer to which is usually “I didn’t read Adam’s Best Practices on this website and wrote long waffling PHP source that no-one could understand”, or “I have some truly stupid accomplices who will overwrite the PHP tags whenever they see them, just for fun” (anyone using DreamWeaver has almost certainly done this at some point, without even realising it; in that case, it’s not the human’s fault, it’s the fault of their editing software – DW – but the PHP programmer can’t really tell the difference, it’s the same net effect)

Some things PHP is bad at: (in no particular order!)

  1. NOTE: just because PHP is “bad” at something does not imply that this is a bad thing about PHP!
  2. OOP. PHP is poor at OOP. It’s not as bad as Objective C (which is terrible) nor Perl (which is horrifically awful at OOP), but it’s not part of the core language, and it shows.
    • Actually, I don’t even know what to say here. Go on a long rant about how it should look like C++? Hmm. Not really helpful. I’ll just leave it at that. If you *really* need to ask why PHP’s OOP is bad, it’s going to take more than a couple of bullet points to explain it to you.
  3. It’s an “old fashioned” scripting language; it lacks some so-called modern features (many of them are older than the microchip but took a few decades to make it into mainstream programming)
    • Closures? Where are my closures? : without this, it’s much harder to write self-adapting code, and much harder to write code “for other programmers to extend and alter without needing to change my source code”
    • No OOP scripting : without this, OOP is a pain in the ass, taking a lot more typing, and standing out like a sore thumb inside any PHP file
    • No modern Array derefence syntax : (you have to do: “${arr[‘var’]}” instead of: “$arr.var”) this makes getting data out of arrays so hard that people go out of their way not to use arrays in PHP.
  4. Data flow (the third prong of three mentioned in the Good bits section)
    • SQL in PHP is not fun : it’s all manual SQL statements, with practically zero language-level support (check out Perl::DBI for an example of how funktastic language support for SQL can get; I didn’t say “good”, I said “funktastic”. There’s a difference)
  5. Distribution
    • There isn’t any. PEAR doesn’t count – and if it did, well … PEAR has one of the most appalling distribution systems I’ve seen in about 10 years. The fact that I had to hack PEAR’s installer – in 2008 – just to “not crash” let alone to get it to “start installing” says it all, really.
    • No package management. No bundling. No metadata. No repository (PEAR or CPAN? take your pick. I find both fine as manual systems, and frequent failures as automated systems).
    • (if you still don’t believe me, find yourself a Debian sysadmin and ask them to show you Aptitude, a worn-out decade-old text-based front-end to apt. And marvel at how fantastic it is despite all that!)
  6. Register Globals fiasco : the maintainers killed some core features of the language in an attempt to fix a security hole, instead of just fixing the security hole
    • Sadly, the core libraries now force you to use Arrays for evertying, because the language maintainers panicked over Register Globals and destroyed the whole input-sampling system.
    • …which is bad because of the lack of Array-de-ref syntax in the language (see above)

A quick retrospective

If you’re a PHP programmer, I hope you’ve already noticed the implications of some of the good/bad points I hilighted.

There are things that a lot of the PHP community loves with a lack of reasoning that sometimes borders on obsession/fetishism, but which – from the above analysis – are inappropriate for PHP. I’ve tried some of these, and confirmed: whoever thought this was a good idea was either smoking crack or didn’t understand how to build web applications.

Some quick examples:

  • Page Caching. You gotta be kidding me. There’s are plenty of reasons that all other languages push this OUT of the language, and OUT of the application, and most of them apply equally to PHP. Use Memcached instead, and learn to use it properly – that is, externally, not internally.
  • Separating Code from Data. As a gross generalization, if you do this, you should stop writing PHP, because you just threw away most of the benefits of PHP, and you’d be better off writing J2EE from this point on – you’d get the benefits of J2EE and of the Java language AND of the Java standard libs (which kick the living daylights out of PHP’s weak set of “Extensions”) – and you’d hardly lose anything in the transfer.
  • M/V/C architectures. If you do it the way we do it in other languages, then it’s equally stupid as the above point. It *can* be done, conceptually, in ways that fit with PHP – but the majority of PHP systems I’ve poked inside didn’t get that clever, they just tried to do it the traditional ways.

By The Way: I’m probably wrong on some of this. I haven’t spent much time thinking about it. Unfortunately, I’m not sure at this point which points are where I’m Totally Right, Dude, and which ones are where I’m Smoking Something Funky.

Sorry.

Too many words! Argh

I keep being told off (nicely) for writing blog posts that are too long.

In petty revenge, after making you read through the rant-tastic introductory bits (I have my Asbestos suit at the ready…), I’m splitting the rest into a separate post. I almost feel bad about doing this. Almost.

So, on to … PART 2: Best Practice for PHP Programming!

Categories
community games design massively multiplayer mmo signup processes web 2.0

Customer Relationships and Support for Online Games and MMOs

Here’s a question about increasing the profitability and decreasing the development cost of any MMO, although probably no-one except the web-people will recognise it as such (and even some of them won’t get it):

How do you improve the customer support for an existing MMO?
[where do you start, and what do you target?]

Categories
community facebook iphone web 2.0

iPhone App Store: Social Network and Game Portal

The App Store is just another casual games distribution platform + social network. You can pretend it isn’t (sometimes I think Apple is still pretending that it’s just an extension of iTunes, and ignoring the social side completely – Doh!), but that doesn’t make it true :).

Apple’s had the iPhone version of the App Store running for more than half a year now, and made tens of millions of dollars from it, so what’s it like? Where’s the social stuff good and bad? Where’s the game distribution stuff good and bad?

Categories
facebook games industry massively multiplayer web 2.0

Microsoft turns Live.com 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)

Categories
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 :).

Categories
computer games games industry security web 2.0

EA DRM redux

(in case you hadn’t been following, this year EA has been putting some particularly nasty DRM on their most-hyped games such as Spore and the Crysis expansion; but unlike previous years, there’s been public outrage)

A couple of things of note here:

EA thinks it can get away with what many consider lieing and cheating – and then having the CEO publically insult the customers

  • Lies: they claim it’s all about piracy (the evidence suggests strongly that it’s about preventing 2nd hand sales while shoring up the artificially high prices that EA’s products retail for)
  • Cheating: EA’s PR people claim you can always get around their dodgy restrictive-use business practice by calling a phone line, that they own and operate (there’s no reason they need to keep that phone line open, and there’s no guarantees that they will honour the customer request)
  • Insulting: the new CEO, who came in on grandiose claims of reforming the company after the scandal of EA-spouse which revealed some very nasty internal practices of the company (apparently institutionalized abuse of its own staff), spoke to one of the largest trade-press websites and told them the people complaining were probably just pirates or stupid (*) (again, this is clearly not the case)

(*) “half of them were pirates, and the other half were people caught up in something that they didn’t understand” – see halfway down the article.

Apparently, little or no lessons were learnt with the public outcry over Spore

…in that the damage seems to be happening all over again with Crysis: Warhead, the same identical problems (c.f. the massive negative Amazon.com and Amazon.co.uk ratings). I would have thought that a publisher the size and power of EA would have managed to prevent “another Spore” – if they had wanted to.

Maybe the fallout isn’t so bad this time? There aren’t quite so many negative reviews this time around, but then Crysis:Warhead wasn’t so big a game as Spore, either in marketing or in predicted sales figures.

Amazon changes it’s mind about its policy on user-reviews more often than a Politician trying to appease the electorate

They’re there! Amazon is full of negative User-Reviews!

They’re gone! They’ve all been deleted!

They’re back again! They’ve been reinstated!

(this happened with Spore. Fair enough. They weren’t sure what to do).

But … reading the comments and off-site commentary apparently it just happened all over again with Crysis: Warhead. Huh? Why? What’s going on over at Amazon HQ?

(I’m getting visions of engineers in a central control room fighting over the keyboard of a machine running an SQL database client, alternately deleting and reinstating the comments, while a prematurely-aged sysadmin huddles in the corner weeping to himself)

The customers are refusing to be tricked into damning themselves; what appear to be EA’s shills are being spotted and beaten at their own game

Witness this fascinating comment on Amazon.co.uk review page for Crysis: Warhead:

C. Chapman says:
[Customers don’t think this post adds to the discussion. Show post anyway.]
I’m so glad to see Amazon has taken steps to filter out all of the useless nonsense being said by the DRM protestors.

Brian W. says:
Hey dude, Amazon just reposted all of the bad reviews and this game is down to the 1.5 stars it had a few days ago.

J. Schwarz says:
Don’t even bother responding to this troll Chapman, he is obviously a company man who is afraid that EA may go out of business. In fact he truly has something to worry about b/c the only other job he could get was shoveling the bs and for that he had to pass an IQ test which he failed.

WolfPup says:
I’m not sure which is more sad. Is Chapman an actual person, who honestly holds such crazy beliefs? Or is Chapman a corporate troll, who thinks that insulting non-crazy people will somehow make their activation DRM acceptable?

Either possibility is frightening.

Paul Tinsley says:
I think Chapman is employed to post. He does use a classic strategy that involves discrediting the thread by making the discussion descend to a personal level. He also attempts to alienate the protest away from the topic by declaring them to either be criminals or a small sector of the community that isn’t even a targeted customer. It’s textbook “digital” insurgency or deep strike, just choose your analogy and most will fit.

WolfPup says:
Interesting. I guess I just thought someone working for a corporation would be more professional about it or something, but…yeah…I probably didn’t think that through very well. They’re not above using any types of tactics.

I guess he’s still a corporate shill even if he’s not paid, but I’m leaning heavily towards him being paid after reading your post.

Paul Tinsley says:
Think of Chapman as a sort of “troubleshooter”. He’s not the sort to polish the company front line, he’s the clandestine stealth agent, sent forth to discredit the argument, to make people think they we can’t hold a solid debate without being personal and also to convince casual readers that our complaint is irrelevant. If Chapman was just another gamer like you or I, he wouldn’t waste so much time trying to make us all “look like idiots” as he might put it.

WolfPup says:
Yeah, you’re probably right. Unfortunately I have a pretty low opinion of how stupid and/or evil people can be, at this point in my life so I don’t really doubt there could be someone out there that clueless about these (or any other host of) issues :-(

Paul Tinsley says:
Well, I will be called delusional and paranoid for stating my opinion. Neither are true, as anybody who thinks that limited activations is better than no activations isn’t thinking like a consumer, they are working to a different agenda.

It doesn’t so much matter whether the OP was a shill or not, it’s the reaction that interests me.

I remember a time (“in the olden days, when I were a lad”) when the audience who A) cared and B) understood the issues were generally teenagers and a very narrow band (niche within a niche) of hardcore gamers with little experience of expressing themselves or dealing with sly cunning bastards. Those people would easily get sucked into tit-for-tat rants and regularly derailed (and sidelined) in such conversations. It was almost too easy. I was once one of them :).

Nowadays, I believe there are three differences.

Firstly, the audience who cares is much more mass-market (mostly IMHO thanks to the arrival of Playstation in 1995, and Sony’s successful marketing of it to young-professionals instead of just children), skews somewhat older (although still noticeably heavily biased towards young and male for many of the PC games, action PC games in particular), and is generally more experienced with the gamut of humanity and the tactics they employ.

Secondly, and this one surprised me, the subset who grok the issues seems to have massively expanded over the past 10 years. If you read through the negative comments, the arguments against DRM are often cogent, direct, and well-informed. Views that were once only understood and appreciated by readers of TheRegister seem to be (finally!) making their way into the mindsets of the public at large. I am beginning to think that we may yet manage to rescue ourselves and our futures (and those of our children) from the idiots who seek to make Copyright last 100 years, put a 10-year minimum jailterm on anyone who copies a *digital file*, and want to force everyone to carry compulsory, biometric, ID cards.

Finally, the audience of hardcore gamers themselves seems to be a lot more skilful at manipulation, especially the “people hacking”/social engineering skills. They are much harder to deceive, and much harder to defeat, compared to the days of Usenet (and here I’m very happy to accept I may just be deceiving myself with my own sentimental memories). If that’s the case, I believe it’s a direct result of the increased prevalence of online communities, especially out-of-game communities, and to a lesser extent in-game communities: these things have made people better at dealing with other people, in ways both good and bad.

Categories
dev-process facebook games design games industry web 2.0

Cultural differences: game developers vs web developers

Andrew Chen has just written a post comparing the cultural differences between Web industry people and Games industry people. They’re all very interesting, and on the whole I’d say they’re on the money – definitely worth reading (and see if you can spot yourself in some of the either/or’s ;)). At the start of the post, I stopped reading and paused to list my own observed differences, so that I could then compare them to what Andrew had written. There was no overlap, so I thought I’d write them up here.

Cultural differences: game people vs web people

  • concrete revenues vs “future monetizable” growth
  • team-as-blob vs sliding scale of headcount
  • obsessive search for fun vs time-wasting activities
  • surprise and delight audience with something we liked and think they want vs randomly guess and test on live audience; iterate until done
  • very high minimum quality bar vs dont worry, be crappy
  • high, strict specialization vs almost no specialization
  • money happens elsewhere, far down the chain vs show ME the money

concrete revenues vs “future monetizable” growth

Largely driven by the “money happens elsewhere” part, game people are obsessive about “what’s the actual revenue this will make (what’s my percentage of the revenue this will make)?”.

In particular, if you cannot *prove* the expected revenue (and in many cases not even that: instead you have to prove the *profit*), they won’t even carry on the conversation. This happens everywhere from small startups to massive publishers. I’ve seen meetings on “social networking” get shutdown by a senior executive simply saying “how much profit will this make at minimum, even if it’s not successful? Remember that these resources would instead bring in an extra $5million if we deployed them on [one of our existing MMOs]”, and refusing to carry on the meeting unless someone could prove that the opportunity cost to SN didn’t exceed its income.

surprise and delight audience with something we liked and think they want vs randomly guess and test on live audience; iterate until done

A team of game people sets out to make something fun. They like to get some input from experts on analysing and predicting the market (market researchers, marketing departments, retail executives, industry analysts, etc) – and then use that merely as “inspiration” and “guidelines” to making something awesome and new. They assume that “the customer doesn’t know what they want, but will recognize it when they see it, and fall in love” (which is largely true!), and so they go off and build something beautiful largely in isolation.

This beautiful thing then surprises and delights the consumer when it finally comes to market.

Web people do the first thing that comes to mind, care not whether it’s objectively good or bad, and test it in the market. Then they try again. And again. And again. And look for patterns in what is popular or not.

As a result, game people tend to think of web people as “skill-less” (partly true) and “puppets of the market” (largely true). Meanwhile, web people tend to think of game people as “perfectionist” (largely true) and “monolithic / unagile” (largely true) and “non market-lead” (partly true).

obsessive search for fun vs time-wasting activities

Game people don’t make stuff unless it’s fun. If it’s not fun, it’s a failure, and only a stereotypically bad EA Producer (or a second-rate clone) would OK the ongoing funding and/or production of a project that wasn’t fun any more.

Web people generally couldn’t care less. They generally think they want stuff to be fun, in a “well, it’s better if it’s fun, isn’t it?” kind of way – but they usually only really care that there is some activity going on, and that the users come back to do more of it. They are less judgemental about the type and motivation of activity going on. They will slave away to try to understand this activity, to extrapolate better ways of motivation people to do more of it, and to monetize people for doing it, but the activity could be selling used cars or real estate and they would not be greatly affected.

This one even shows up subtly in Andrew’s own writeup – he casually uses the word fun. To game developers, the word is Fun, and they would never write:

Now, I think that the productivity-inclined have their claim to the world, as does the fun/entertainment games people. But the intersection of this, in web media, is where the fun happens.

…because you don’t use the word “fun” casually like that where someone might hear it as “Fun”. You are sensitized to all uses of the F word :). Fun would never come from an intersection like that; that intersection could give rise to a number of side-effects and new content areas, and those content areas – with appropriate rulesets imposed – could merge, and react with some of the side-effects, to give rise, finally, to something “Fun”. Fun is not a simple concept.

very high minimum quality bar vs dont worry, be crappy

Game companies have QA departments that are larger in headcount than the entire development team, often by a substantial margin. They don’t ship stuff that is half-arsed, partially complete, partially working, etc. Hence, when they do, there is huge press and consumer attention around it. This is one of the thigns that the games industry has been doing more and more web like over the past 10 years – ever since they realised they could drop some launch-quality and end up with the same level of quality as standard by shipping a “patch” 1-3 months after launch (and probably getting an uptick in sales as a result, re-box the patched version as an “improved” version).

But, on the whole, games companies still consider quality the one unassailable pillar of the development triangle (“quality, short development time, cheap development cost – you can only have two at most”).

In fact, most game people turn “Quality” into 3 separate sub-pillars: core fun, longevity, and polish. And consider all three inalienable, but occasionally flirt with sacrificing one of those three instead of sacrificing either of the two other full pillars.

If it strikes you that the games industry is thereby trying to cheat and get “2 and 2/3 pillars out of 3” then … you’d be right. Understanding this can help explain a lot both about individual games and the industry in general over the past 15 years.

high, strict specialization vs almost no specialization

A game team is (typically) made up of distinct people doing:

  • Art
  • Code
  • Design
  • Production (project management)

You need at least one person devoted to each. For teams of size less than 5, it’s acceptable to have some people do two of those roles rather than just one, but it’s often considered “hard”
(by default – although in practice many teams flourish with people moonlighting/two-hatting these roles).

It is an onrunning joke that various non-design people in games companies have the unofficial job title of “Frustrated Designer” (most usually Producers and Programmers get labelled with this). i.e. someone who secretly wants to be a designer, but lacks the skill and experience – despite potentially many many years working in their person discipline, developing and launching games. Nowadays you also see people labelled as Frustrated Artist, and occasionally even Frustrated Programmer (although anyone brave enough to do that in the face of the programmers, who tend to be quite bullish about welcoming such people to try their hand at fixing a code bug (snigger, snigger, watch-him-fail) generally is quickly disabused of their frustration).

There’s good reason for this, too – the expected level of skill from anyone non-junior in a game team is sufficiently high that it can be very difficult for people to cross skills. It’s easy if they’re willing to drop to “junior” status (the level of incoming recent-graduate – very low-paid, and with very little creative or project input/control), but few are willing to take the massive drop in status and (usually) pay to do that.

money happens elsewhere, far down the chain vs show ME the money

Interestingly, perversely, this means that game people obssess about the money, despite never seeing it themselves, and worry about how their actions will affect the ability of later people in the value chain to make money, and how much the total pot will be.

Whereas the web people generally are much more blase about the money side, because they know it’s going to come almost directly to them, and they have a much more direct relationship with it (understand the ups and downs).

Game people’s approach to money is generally characterized by Fear, Uncertainty, and Doubt – plagued by rumour. Web people all know for themselves how much money can be made, and how, and don’t peddle in rumours.

Comments on Andrew’s observations

Andrew’s observations were all good, except for one thing which I think he misunderstood: “By withholding levels, powerups, weapons, trophies, etc., it creates motivation from the user to keep on playing. They say, “just… one… more… game…!!””.

…and then he makes a conclusion that makes sense given what he and wikipedia have said, but which is almost the precise opposite of the truth.

As a result of this treadmill, there is a constant pressure for players to stay engaged and retained as customers. But the flipside of this is that it’s not enough to build one product – instead you build 70 product variations, and call each one a level!

The truth is that content-gating was introduced and/or stuck around as a technique because the cost of creating content is exponentially higher than the cost of consuming it without gating. If you have decided to operate a content-centric game, you are doomed to be unable to run a service product based on it – no matter how many years you spend developing content before launch, your playerbase will soon catch up to your level designers etc and overtake them. Content-gating, levelling especially, forceably slow players down in their content consumption rates, even forcing them to re-play set pieces of content many many times (if you can get them to replay it enough, you can lower their rate of consumption to the point that a sufficiently large team of content-creators can keep ahead of them. Just).

Various other experiments have been tried over the years – most notably, User-Generated Content, but none have achieved the same level of efficiency (or yet been as well understood) as level-based content-gating.

Categories
conferences games industry web 2.0

Virtual Goods Summit 2008 – post-mortem

I’ve written up my notes for the first three sessions of the VGS last Friday, and they’re in the queue over at FreeToPlay.biz waiting to be approved by Adrian; hopefully they should go live soon.

It was a good conference, some good stuff said, lots of basic sharing of info about things to do / things to avoid in the business and design of virtual-goods-driven businesses. The info was good, and although it often came close to being too basic for anyone who’s bothered to look at the history of online games, it usually managed to give interesting information to both the newcomers and those who’ve been around a bit.

There were lots of VC’s in attendance (surprisingly many), and lots of new vendor companies that were mostly payment-providers specializing in “taking payments from Social Network users” (I was surprised how many of them I didn’t know already; clearly, there’s been a boom in this area while I wasn’t looking).

A few highlights of my summaries (you’ll have to read the full writeups at F2P.biz for the rest):

The vendors on one panel – Twofish, Live Gamer, and Playspan – seem to be sitting in areas of potentially huge value-add, but … they also seem to be targetting their offerings at solving the problems that their customers don’t necessarily need solving, and would be better off solving themselves.

It seems the big players / winners in the Virtual Goods area so far are still taking a very “experimental, unplanned” approach to the fundamental worrying parts that keep newcomers awake at night: what goods should I be selling? what pricing should I offer them at? etc

Shervin (CEO, Social Gaming Network) and slightly less so Andrew (EVP Business Development, Zynga) continued to be as cagey at this conference as they have been at all the other conferences (e.g. GDC) over the past year or so. In the light of their secrecy – even when appearing on a public panel (hey, guys – if you’re asked to appear on a panel at a conference, what do you expect? Of *course* people are going to want to ask you interesting and probing questions! If you don’t intend to answer them, howabout you just decline to speak on the panel?) – we can only guess at their motivations.

…if you were there, what do you think? What were your impressions of the conference?

EDIT: interesting post from Eric Ries of IMVU starting with his thoughts on the conference, and inspiring three categorising questions about virtual goods and virtual worlds.

Categories
games design games industry massively multiplayer mmo signup processes security web 2.0

Online Services Problems: Credit Cards

This week, I was at the Virtual Goods Summit in San Francisco (my session writeups should appear on http://freetoplay.biz over the coming days). A couple of things struck me during the conference, including the large number of “payment providers” (companies that specialized in extracting cash out of your users via credit card, paypal, pre-pay cards, etc and crediting direct to you) and the large number of white-label “virtual goods system providers” (companies that were providing a turnkey (or near-turnkey) solution to “adding virtual goods to your existing facebook app” etc).

Which brings be to a recurring problem I’ve seen for a long time with the online games and MMO industry, which I suspect is going to cause a lot of damage to a lot of social games and virtual worlds companies in the coming years: online service providers are – in general – shockingly bad (lazy or plain stupid, usually) at handling their customers’ money.

And the result? Ultimately, it could drive increasing numbers of consumers back to preferring to purchase their games and other online content via retail, where the companies and transactions are more trustworthy. OH, THE IRONY!

Categories
computer games games design games industry massively multiplayer web 2.0

Kongregate’s secret features: Microtransactions and Leagues

(this is part 2 of “Flashback to 2006: How Kongregate Started”, and looks at the features Kong was supposed to have but hasn’t brought to market yet, and makes some wild guesses at why not)

Microtransactions

What were these going to be? Are they still coming?

In his explanation above, Jim said:

“We’re also opening up the microtransaction API so developers can charge for premium content in their own games (extra levels, gameplay modes, etc) — we’ll take a much smaller cut of that revenue.”

The API has long been rumoured to be a bit flakey, which is no surprise for a startup (and the people in the community saying this mostly weren’t professional developers, so their expectations need to be taken with a pinch of salt). I’ve not tried it myself (I joined during closed beta, fully intending to get back into Flash and make some stuff for it, but never quite got around to it. Having to re-purchase all my now-out-of-date Flash dev tools for stupid amounts of money from Macromedia/Adobe just proved one barrier too many), but a couple of friends have, and they’ve all said good things about it’s simplicity and how it “just works”.

(for another view on this, a while back I spotted this great article by someone who decided to take a flash game made in a single weekend and see how easily + well they could make money from it by putting it on various portals including Kongregate. It’s an interesting read, and goes into detail on the time it took to get the API stuff working, and what it was like to work with from cold)

But on the whole, the API has been up and running and working fine for over a year now (from my experience as a player on the site). So, I’d expect that adding new features to the API is well within Kong’s abilities as a company / dev team.

In the list of features, it reads as though Kong intended to make this thing work themselves, but Jim’s expansion suggests instead that they wanted it to be driven by developers. I think they expected game makers to be frustrated at the low per-game monetization possible from ad revenue, and to push Kong to support micropayments for more content. It hasn’t quite happened that way, I think – Flash + Kong makes it so easy to knock up a game and publish it that I think few developers on the site really think about putting in the kind of time and effort needed to chop and slice their content. Combine that with the large revenues that Desktop Tower Defence was widely quoted as making from Kong alone, and you can see that many are probably happy with just releasing “extra games” rather than “extra content for a single game”.

This is despite the fact that with Kong’s current revenue-sharing model *that* is a sub-optimal setup for developers. The way Kong’s rev-sharing works, you get ad-rev-share, but also the top-rated games each week/month get cash lump-sums from Kong. But there’s a big drop-off in amount between “1st”, “2nd”, etc – so if you, as a developer, have three awesome games, you’re much better off having them win 1st place three months in sequence, rather than launch them all at once and only get 1st + 2nd + 3rd. So, yes, you really would be better off making one game stay top of the pile every month (and I’m sure this was very deliberately done this way to try and encourage game quality and discourage game quantity; I just don’t think it’s working all that well yet).

Here’s a wild guess as to why: even the more advanced and experienced of developers on Kong are still in the mindsets that the crappy portals over the years have forced upon them, e.g. “for better revenue, embed an advert from a portal and get a better rate; for REALLY good revenue, embed an extra-long advert and the portal will give you a single cash lump-sum”. This is unsurprising when you consider that making a living out of independent, single-person casual games development still requires you to put your product out on as many portals as possible.

Until that changes, most developers will probably continue to use whichever lowest-common-denominator approaches they can deploy across ALL the portals. In that sense, Kong has a hard struggle ahead of it if it wants to change attitudes. But that’s part of why Kong is great for developers – if it DOES change those attitudes, it makes the world a better place for developers, and for players. Unless, of course, Kong gives up and fades into being “just like all the other portals”. I sincerely hope that doesn’t happen.

Leagues

I used to like them, I used to sing their praises, but I can’t continue to deceive myself (or anyone else) any longer:

Kong’s features for communication between players suck horrendously.

They promised so much, and then delivered so little. They started off doing some really awesome stuff, inspired things like the AJAX-powered mini-forums for each game, that allowed you to post to the forum WHILE PLAYING without your web browser navigating away from the page (which, because of the nature of Flash, would lose all your progress in most games).

But those mini-forums, which worked “OK” for when the site was smaller, say a year ago, and had only 5-10 pages per forum, or 40 for a popular game, quickly became chaotic (mildly popular games now regularly have 50+ pages of comments, and top games have many HUNDREDS of pages … all with NO NAVIGATIONAL STRUCTURE AT ALL. Ugh).

And what about chat? Right from the early beta launches (probably from alpha too, although I never saw that, so I don’t know), people talked about Kong as “game + chat”, glued together “without the game developer doing anything” (Kong provides the chat system and it automatically attaches itself to the side of the game on the page). So … where’s the contextual chat? How come, when you’re in chat, there’s NOTHING that relates the chat you’re in, or the people you’re talking to, to the game you’re in?

(this is a particularly interesting question given IIRC Pogo.com – Jim Greer’s previous job before he founded Kongregate – made a big thing of showing profile information about other people in the chat window. IIRC you could choose a handful of your Pogo badges that would be displayed with your avatar whenever you chatted (in fact, IIRC it was Jim who originally explained all this to me years ago when I cheekily applied for a job with the Pogo team and he gave me a phone interview*)).

How does this have anything to do with Leagues?

Well, leagues for casual games are a classic example of how three things in gaming crossover and make something much bigger than the sum of their parts. It is a bit of a poster-child for “Game 2.0” (a stupid concept IMHO, but nevermind), and it IS a good idea, but most people miss the point:

  • Competitiveness (…in front of an audience)
  • Community (…around a shared experience)
  • Communication (…of shared struggle)

The beautiful thing about leagues as opposed to other Web 2.0 + Game / Social Games features is that they are technologically VERY easy to implement. That’s also the ugly thing: it means most people who implement them don’t actually know why they’re doing it, and screw them up.

I could believe that the only reason leagues haven’t been implemented yet is that Jim and the Kong team *do* understand them, and know that they “could” throw them up almost at a moment’s notice – but that getting a complete process and system that fulfils all three of the core elements is a much much bigger design challenge, and needs them to fix a whole bunch of things at once.

i.e. you’ll see Leagues appear on Kongregate ONLY at the same time as they “fix” the chat and the mini-forums, and start providing proper Profile pages instead of the quickly-hacked-together ones they’ve got now that look like a beautified output of an SQL command:

SELECT * FROM PROFILES WHERE USERNAME="playerX"

…because without doing those other things too (which we know they’re working on, according to previous commenters on this blog) the Leagues would fall far short of their potential.

(*) – about that interview (although I’m sure Jim’s forgotten completely), it’s an interesting illustration of how my attitudes to software development have undergone a sea-change, so I’m going to bore you with a description here ;)…

A recruiter put me forwards for it, but I had very little expectation of getting the job, or of taking it if it was offered. But I *did* want to know more about what EA’s “casual gaming” group looked like internally, and how they worked. I dismally (no, really: dismally) failed the programming test, I think – they wanted me to write a java game, as an applet, from scratch in under an hour. At the time, I’d just come from writing big server-side systems – also in java – and was still wedded to using rigorous software engineering approaches. They needed someone who would just churn out crap, see what was good, throw away the rest, and iterate on it. Which was right of them. But with a timed test and no run-up practices I couldn’t overcome the habits I’d been using as recently as the week before.

(I say this now as someone who is firmly in that camp too, who strongly advocates Guy Kawasaki’s “don’t worry; be crappy!” mantra – but back then, I understood the concepts, but was in the wrong frame of mind to put them into practice. Certainly I wasn’t mentally prepared at the drop of a hat to unlearn everything I knew and re-educate myself, AND write a game, in under an hour).

Categories
community computer games massively multiplayer web 2.0

Flashback to 2006: How Kongregate Started

A little over 2 years ago, a new startup went into private alpha. Here’s one (of many) announcements about it:

On 9/18/06, Jim Greer wrote:
>
> Hi all –
>
> I want to announce my soon-to-launch Flash game startup to this list – I’m
> looking for game developers and players. The site takes games uploaded by
> indie developers and puts them into a rich community framework with
> persistent rewards, metagames, collectible items, chat, etc. Game
> developers
> make up to 50% of the revenue we get from rich media ads and
> microtransactions.
>
> Basically we’re building a community around web games. When I say
> “community”, I don’t just mean chat and profiles. It’s more like turning
> individual web games into something that have some of the addictive
> qualities of an MMO. For those of you who play World of Warcraft – what
> keeps you playing after you get a little bored with the quest that you’re
> working on? I think it’s things like this:
>
> – you are about to level up
> – you are about to earn some rare item
> – your friend is coming online in a minute and you said you’d quest with
> them
>
> Basically it boils down to: you’ve got goals that go beyond a single play
> session, and you’re online so everyone you play with can see/admire your
> progress. We have analogues for all of those rewards.
>
> So what we’re creating is a game portal with:
>
> – chat
> – profiles
> – challenges and collectible items
> – microtransactions for premium features
> – leagues
> – loyalty points for rating games, suggesting features, etc
> – rich media ads
>
> As I said, we’re making money off rich media ads and splitting that. We’re
> also opening up the microtransaction API so developers can charge for
> premium content in their own games (extra levels, gameplay modes, etc) —
> we’ll take a much smaller cut of that revenue.
>
> We’re launching a private alpha version in a couple of weeks – if you’re
> interested in participating you can email me. Preference will be given to
> those who have games to upload! Initially, our usage will be low so the
> revenue share won’t be significant – to make up for that we’ll be having
> cash prizes for Game of the Week and Game of the Month.
>
> Also, we’re hiring developers to help us make our own games, as well as
> extend the API feature set. The first game we’re making is a collectible
> card game, played online – you win the cards by completing challenges in
> user-uploaded games.
>
>
> Jim Greer
> jim
> Company: http://kongregate.com
> Blog: http://jimonwebgames.com

Kong has delivered on all of this … except “microtransactions” and “leagues”. Although … that blog didn’t quite work out: it’s now a blank WordPress blog, installed March 2008 by the looks of things.

Missing features

Kong at the moment is monetized purely through advertising, which is interesting both because they have relatively low user figures to be an ad-driven site, and because most people seem more interested in the other (non-advertising) forms of F2P revenue: item-sales, fremium/premium subscriptions, etc.

On the userbase front, I’ve been wondering about it for a while: their PCU/ ACU (peak concurrent online / average concurrent online) figures are, I would have thought, “fatally” low for an advertising-driven site. The highest I’ve ever seen was around 20,000 users online at once, and a thread on the forums asking people the highest they’d ever seen topped out – so far – at 22,827.

Balancing that out, clearly there’s a very high percentage of return visitors, and high frequency per visitor. I know that other games, such as Runescape, managed to be hugely profitable on similar numbers of users, but that was a long time ago. With the increased competition for advertising these days among web companies, I’d have thought that was much harder. Even if advertising is easier and richer these days (financial crises aside), we’re only talking about $1million a year revenues. Kong has taken on almost $10 million of angel / VC funding to date, which is a *lot* of money when you look at the kinds of return on investment those people expect to receive.

Going back to the choice of revenue stream, let’s revist the original features Jim mentioned, and see how they stack up:

> – chat
> – rich media ads

These are derivative and trivial to add to any Flash-games portal. Who cares.

> – profiles
> – challenges and collectible items
> – microtransactions for premium features
> – leagues
> – loyalty points for rating games, suggesting features, etc

… whereas these are all high-engagement items. None of them work without getting the individual users to create an account on the site, and to keep logging in each time they come back. Most game portals are specifically targetted at being ultra-low engagement: no barrier to entry, no signup, no “hoops”; just play. For other portals to add these services would be tricky from the marketing / conceptual product viewpoint.

Several of them – particularly “challenges”, “microtransactions”, and “profiles” – are also technically challenging, requiring a lot of infrastructure (either server back-ends, or user-interface front-ends).

So, although Kong hasn’t yet added two of those high-engagement items, it’s got most of them. That strongly suggests it would be a great candidate for adding a more active form of monetization, as opposed to the current, purely passive, one (advertising).

And that would be a good potential justification for how they got so much external invesment (although personally I believe it also has a lot to do with a clever disruptive play to put the big games portals like Miniclip completely out of business within 3-5 years).