In less than an hour I'd made my first game. Admittedly, it was a game in which you drive an unmanned unicycle around an abandoned piece of scrubland while attempting to shoot down a host of flying sharks with some multi-coloured lasers to a custom soundtrack of Sinatra's "Fly Me to the Moon". But crikey, if it wasn't just about the best unicycle-based, sea-predator-themed, crooner-soundtracked shoot-'em-up you've never played.
Videogame creator toolkits are far from a novelty. From the Commodore 64's Pinball Construction Set to the N64's Dezaemon 3D shoot-'em-up creation package (not to mention the multitude of level editors bundled in with just about every PC first-person shooter) game-building tools for consumers have been a niche but consistent feature of the gaming landscape. And, of course, the success of LittleBigPlanet's recent efforts to democratise game design, pressing the game's full creation toolset into players' hands, has popularised living room game-making like never before.
But Kodu Game Lab's ambitions outstrip those of its distant rivals, not to mention its paltry price point of 400 MSP. Here your creations are not bound to a single genre or set of game rules, or even a single visual style. Rather, this ostensibly-for-kids game-creation set has broadened its boundaries to encompass everything from third-person shooters to racing games to RPGs. While you're never going to be able to turn out the next Gears of War-alike with its modest XNA-based engine, you've a good chance of being able to approximate any ideas you may have, and the limits of what's possible are wide enough to allow your imagination a long leash.
That gently hyperbolic introduction out of the way, it's probably best to set some realistic expectations. Kodu Game Lab, while designed by Microsoft's employees, has enjoyed no special treatment in finding its way onto Xbox Live's indie game portal. Created in XNA and delivered to XNA, it has been subjected to all of the same restrictions as any enthusiast developer working for the platform.
If you are already a games programmer of even modest ability, you'll no doubt find this package restrictive, simplistic and a bit pointless. That's fine. Kodu Game Lab isn't for you. It's for us, the giant throng of gamers who feel like they might have the germ of a good idea for a game but don't have the time to learn C++ or LUA script in order to scale the massive learning curve that sits between our idea and our game. At the very least, it's for those of us who would like to understand just a little bit more about how videogames are put together, and on that basis, it's a triumph.
From first touch, Kodu Game Lab is teaching these principles. Sensibly, the game opens with a tutorial, rather than a blank sheet of 3D space. You're shown a pastoral scene containing a character standing on a pathway leading up to a tower atop a small hill. A speech bubble pops up with a challenge: "Program the character to automatically walk towards the character." And you're off. Clicking on the Kodu allows you to edit its behaviours in a string of accessible, well-presented commands.
These commands are generally split into a simple equation that reads: When 'X' then 'Y'. In this first tutorial that equates to: When 'character sees tower' then 'character walks towards tower'. Options are chosen from a smart, nested ring menu interface so that completing the first tutorial can take less than 30 seconds when you know what you're looking for. These command strings can grow to be far more complex, dictating both passive behaviours as well as active behaviours, and you can also stack the commands to make them more complex and specific.
For example, you might create the line: When 'player holds down L trigger' then 'shoot' + 'missile' + 'of a random colour' + 'forward' + 'once'. It's then possible to adjust the speed and rate of fire of your missiles or the speed of your vehicle and so on. In minutes you can choose to make it invulnerable, have the HUD display its hit-points, set its bounciness, friction, how many missiles can appear on screen at any one time, and so on. It's fast, straightforward and, in most cases, everything behaves in exactly the way you would expect it to.
As this is an XNA game, don't expect a huge amount of polish to the tutorials. Everything is rough and ready in terms of presentation, but it's also been thoughtfully arranged so that you soon learn the basics and, if ever you do become lost, it doesn't take long to find your way back to the top level of the editing menus. As well as the 11 rudimentary learn-as-you-do tutorials, Kodu comes with a slew of example levels and game types, all of which can be tweaked and picked apart so you can see how they work. It's worth spending time with all of these before embarking on your own first blank project as, until you have a good handle on the basics, an empty 3D space waiting to be filled with cameras, textures, objects and ideas can be a terrifying prospect.
However, when you are ready to start on something from scratch, the options are pleasingly varied. You can add scores of different characters and objects to your world and, while there's no graphical editor to allow you to design these from scratch, stock items include things as varied as walls, roads, apples, fish, jets, blimps, submarines, cannons, clouds, stars, rocks, coins, castles, hearts and ammo. Adding ground to your game level is as simple as painting it on, Photoshop-style (from a palette of 121 different types, colours and textures), and you can change the lighting and even adjust the strength of the breeze. You can raise and lower the ground to make hills and valleys, set the camera behaviours, alter wave strength, how the game first appears to users (with a description or a timer counting down), and you even have some rudimentary tools for debugging sight and sound lines, displaying collision data and so on.
While good results will almost certainly take longer than even the most complex LittleBigPlanet level, and it'll only look half as good thanks to the blocky, N64-esque graphics engine, the two games are comparable. As with Media Molecule's title, Kodu will teach you the basics of game design. Maybe not in the sense of hard-coding, but certainly in the process of formulating an idea and then executing all of the various necessary components to bring it to life.
It will take the coming weeks and months for Kodu's boundaries to be pushed against and broken by creative types and through that process some gems may be formed. But my hunch is that Kodu's lasting worth rests not in the creations its users put out, but in the lessons and principles it teaches those users, in the young people that are inspired to become game designers when they grow up, and in the older people who gain a new appreciation for the effort that goes into even the humblest videogame.