Skip to main content

Creating with Kodu

Lead programmer, Matt MacLaurin, discusses LittleBigPlanet, user-generated content and XBLA programming

User-generated content is a fickle theme to build a game around. Daring concepts brought to life such as LittelBigPlanet received widespread praise but failed meet sales expectations. New into the fray is Microsoft's XBLA title, Kodu, a do-it-yourself programming game aimed at young audiences.

GamesIndustry.biz caught up with Kodu's lead programmer, Matt MacLaurin, ahead of the game's appearance at GDC, to ask him about the project's debut at CES, the LittleBigPlanet comparisons and the experience of developing for XBLA.

GamesIndustry.biz What was the experience like after being catapulted into the limelight?
Matt MacLaurin

Is that what that bright thing is? We have been completely thrilled at the coverage - particularly with Sparrow's star turn in the keynote at CES in January, but at the same time we've all shipped enough commercial products that nothing really matters to us until the product is in the customer's hands. There have been a tonne of very hyped products that have not done well, and vice versa - so we're deeply and humbly dedicated to making our users really, really delighted, and we still have a lot of work to do to achieve that.

At the same time, having some positive exposure paves some roads for us inside Microsoft. It can seem from outside that being a Microsoft product means infinite resources and bottomless support, but the reality is that Kodu is run more like a small business within Microsoft - very lean staff, very ambitious goals, and a non-stop race against the clock. So a lot of doors have been opened to us, but we're still running as fast as we can to make it through while they're still open.

GamesIndustry.biz Do you feel confident in having Kodu centre stage at CES?
Matt MacLaurin

It's shown us that we definitely have an opening, and it's on us to deliver. One thing that has been really exciting to us is to see press beyond games and consumer electronics become interested in our story. In that sense it's a validation of something the entire team has in common, which is seeing a broader role for games as a medium within the culture.

That's not to say that we think Kodu is a revelation; quite the contrary, it is a humble straightforward tool that delivers a significant leap forward in allowing a much larger and more diverse group of people to create games that have real depth - and those people are where the breakthrough will come from. Right now game-building is such a laborious and specialised industry that by-and-large the people in it tend towards a certain similarity of perspective. To the extent that we can get people from all perspectives - poets, physicists, moms and mathematicians - building games, we're all going to see a lot more fun at the end of that process.

GamesIndustry.biz What do you think of the LBP comparisons?
Matt MacLaurin

It's just a deeper indication that there is a new wave hitting the industry and we all have some catching up to do. I'm a big music fan, with very diverse tastes, and one thing I noticed is that when you start to listen to other genres - like jazz or reggae - your first impression is that everything in that genre all sounds the same. Reggae all has that backwards bass line. Rock always has a backbeat. Jazz always has that spangalang thing on the cymbal. When you're new to the genre, that's all you hear. When you develop an ear for it, the differences leap out.

This is why my wife can't tell the difference between Halo 3 and Gears of War - or between Mario and Sonic, for that matter, yet insiders will go on for hours about the how the way aiming works in this first-person shooter is a 'revolution' when compared to that nearly identical other first-person shooter.

More fundamentally, Kodu is all about programming - a legitimately new programming language that is being patented and studied by some of the top language theorists in the world. LittleBigPlanet is a super-cool level-editor that by-and-large avoids programming, as far as I understand.

So, yeah, you can reposition objects and hit 'play' in both. Beyond that, they're about as similar as pinball and cross-country skiing. In the end, the more tools, the better.

GamesIndustry.biz What did you think of LBP? What did and didn't it do well?
Matt MacLaurin

Well, first a caveat that I haven't actually played it. Being in a research organisation we sometimes have to be cautious about contaminating our invention process by studying other projects too closely. I watched some of the videos when it came out and thought it looked really beautiful and I am a big, big fan of that team because of the risks they are taking and their evident passion. Their ability to deliver a little modelling tool for creating new objects is great - thumbs up.

I think one area where they chose differently than we did is exactly in the area of programming, and I completely understand why. Delivering a programming experience to end users is a very, very ambitious concept. We've done usability studies with hundreds of users in several countries to try to ensure that kids - and their parents - could figure out the programming language without looking at a manual. It's really hard, and we are still eyeballing every pixel of the user-interface to smooth out every rough corner we can find. When you take on a challenge like that, you have to give up some other stuff if you want to keep the experience clean and flowing.

GamesIndustry.biz The industry seems to be moving into age of user-generated content and trying to get gamers actively involved in game making - why do you think this has happened now?
Matt MacLaurin

Well, I'd say games are probably the least democratic medium on the planet today so, rather than being on the cutting-edge of this, our industry is kind of the latecomer to the party. We have to see things like Flickr, eBay, Facebook and the internet itself happen before we start to - slowly - think 'Maybe it's not all about the specialised professionals.'

If there is one characteristic of our new century, it's the realisation that not only does everyone get fifteen minutes of fame, but that everyone has fifteen minutes of sheer brilliant genius. The internet has given us an efficient engine for harnessing that genius, and a lot of businesses are figuring out their role in this new landscape.

I think that the games industry is coming out of a phase of being impressed with itself - "Hey, we're bigger than movies" - and starting to address deeper cultural legitimacy, and the shorthand for that is diversity. The games industry of the '90s was kind of like having the major movie studios, but not having the independents, television, HBO, PBS, or reality television. Even if you have a big old stack of DVDs, you can't watch blockbusters continuously. Everyone enjoys their documentary, their cheesy low-budget TV sci-fi, their news, their soap opera, their cartoon.

This is what mature industry looks like - movies, TV, PBS, and the rest together. In games, we have the major studios, and we're starting to have a teeny handful of different types of offerings like Xbox Live Community Games each year. This is the tip of the iceberg, and the key to making this happen is the democratisation of tools like XNA Game Studio, just like the video camera has remade mainstream media.

GamesIndustry.biz Why create a visual programming environment for children?
Matt MacLaurin

Two reasons. One is that I have a daughter and I want her to experience how cool it is to create living worlds without having to spend a decade of her life to do it - or two decades, as I have. Even deeper, I want her to know that the computer is an explosively creative tool that is good for much, much more than simply posting clever text quips or repurposing video. I truly believe that software is the most expressive medium that has ever been created; it is in its embryonic infancy, but in software we have created a mirror of the human mind. To that extent, harnessing code for art is the deepest realization of that potential - far too valuable to leave to specialists.

The other reason is that 'designed for kids' is really just deep shorthand for 'design that doesn't suck.' When we're designing for adults, we can make all kinds of excuses for ourselves - the adult will know this, will put up with that, is used to the other. With kids, you come to play or you go away. There is zero room for self-indulgent or lazy design. As an experienced designer this is the top of the game, bar none.

GamesIndustry.biz What sort of games can you create with Kodu?
Matt MacLaurin

Well, we try really hard to nail the classics. You can do Pong, Space Invaders, first-person racing, submarine battles, top-down arcade, side-scrollers or even first-person shooters, if you don't mind that our characters are cute. We consider ourselves toolmakers, which means that we don't get to limit the creator's intent. We are continually trying new forms of gameplay and, when we stump ourselves, we fix the tool. As we get very close to shipping, we have to let some limitations stand, but I can say that we have not seen the limit of what you can express with this language.

GamesIndustry.biz How much control do you have over the visual side?
Matt MacLaurin

You can control the lighting and the sky; terrain can be infinitely reshaped and sized; you can pick from (at least) dozens of terrain materials, and you can tint all the characters. A goal for us was that when you look at the loader with the thumbnails for all the different games, they all look different, and we've achieved that.

That said, our palette is intentionally constrained because we did not want to tackle every tool in the game design chain in a deep way. This version is very much about programming, and if we tried to also make it about 3D modelling or emulating Photoshop, we would not achieve that clarity of focus, fluidity, and polish. Consider this your first 'box of bricks' - it's got millions of combinations, and you're going to want more. The other part is that we're part of a very major research laboratory and there is some very deep stuff kicking around the labs for other aspects of the tool chain, like 3D modelling. But that's a ways off.

GamesIndustry.biz Is it possible to create macros or compound elements that can be reused over and over again, or is it simple enough that you don't have to?
Matt MacLaurin

We looked at having a deep library function and decided three things: one is to bake in as many examples as possible. So whenever you go to insert a character into the world you have access to a bunch of sample programs designed for that character. The second principle is that everything is adjustable. If you get your hands on a level, you can take it apart and re-tweak it. Given those things, having another library function on top of that was a little more complexity than we wanted to add.

GamesIndustry.biz How do you handle games created with Kodu - are they shared via the Community Games channel (with peer-review) or within the Kodu package?
Matt MacLaurin

All we can say about that right now is that we've built a few different pathways for that and are working on picking the right one. We think sharing is really important.

GamesIndustry.biz How was working on a Community Games title?
Matt MacLaurin

Well, the main difference is working in C# yet having more-or-less unfettered access to the Xbox hardware. I think that the Xbox is one of the most amazing bargains in computing power today - even several years into its cycle, it's not easy to put together a PC that performs as well as an Xbox 360 when programmed by a team that knows it. Although our team is small, we have some very deep gaming, networking, and graphics expertise and XNA Game Studio is a great vehicle for delivering that expertise in an efficient way.

One of the truly unsung strengths of XNA Game Studio is the huge productivity gain you get from using C#. A lot of corporations use C# in mission-critical, high-performance applications; it's not a beginner's language by any stretch. Having worked for decades in C, C++, and C#, I think C# is a truly amazing balance of performance and expressiveness. Much of the productivity comes from the conciseness of the language; code written in C# requires about 20 per cent fewer lines of code than C++, and we know that the fewer lines of code in your application, the fewer bugs it will have. My personal belief is that as time goes by C# will be a key differentiator in Microsoft's game development story at all levels - from hobbyist to AAA development studio.

The other wonderful thing about this language is that you can work with smaller teams of more senior people, and that's just a more fun way to work - when you can all stand in the hall between your offices and hash out a design issue without having to funnel reams of paperwork through an army of intermediaries.

Matthew MacLaurin is a principal program manager in the creative systems group at Microsoft Research. Interview by James Lee.

Read this next

Related topics