After being involved in the creative process of a few indie games, I've acquired quite a taste for game making. I now feel that I won't be completely satiated until I make a game all on my own. There's just one problem -- I don't know a thing about programming. I've been going through Game Maker 7's many tutorials little by little during my spare time, but I still don't know a whole lot about what I am doing and why it does what it does. That's why when I was presented with the opportunity to take a look at Kodu Game Lab for Destructoid, I jumped on it.
Microsoft's Research Department created Kodu Game Lab with the desire to allow all people to be able to make their own games using XNA. This quest to give even the smallest children the creative freedom to make a game all their own is a noble one, in my opinion. And hey, if it's simple enough for a child to use, maybe I could use it to make a great videogame. At the very least, maybe I could take something valuable away from the experience.
Now that I've spent a lot of time messing with this program, let's see if I can do this right:
WHEN (mouse) (left click) (jump text), DO (create) (review) (Kodu)
Kodu Game Lab (Xbox 360 Community Games)
Microsoft wasn't foolin'; Kodu couldn't be more simple to understand and use. It's as easy as understanding the concept of "WHEN (something happens), DO (something)". WHEN and DO are the constants, and you can edit everything else to your heart's desire. The program is all wrapped around a very simplified menu system labeled with easy-to-understand images and words to help you along.
The bumpiest part of the experience by far is the beginning. There are three tutorial levels to get you started, but as far as I could tell, they were incredibly unhelpful. For example, the first one asks you to program a character so that you can move it using the left analog stick, but after giving you these instructions, it doesn't go into any detail on how you're supposed to go about doing it. Nearly clueless, I was left floundering around a bit until I realized that you had to press Y on a highlighted character to edit its code. I probably would have had even more trouble after this point if I had not messed around with Game Maker so much.
A person who has no experience with any programming language or game making program will have to go through and do a lot of experimenting in the beginning before they realize what exactly they're supposed to do. A lot of it is self explanatory, but it still feels counteractive to the idea that Kodu is supposed to be approachable by all age groups. This lack of direction in the tutorial levels and beyond may cause the younger set to lose interest in what they're doing.
Fortunately, as I stated earlier, the way in which Kodu presents XNA makes it so easy to learn that once you fumble your way through the learning stages, you will pretty much know all you need to start making a game on your own.If you get stuck along the way, there are plenty of pre-made games, levels, and character/item codes to study.
You can either build off on one of the pre-made levels or start with a blank world. Either way, a press of the back button will pull up the editing menu (and another press of it will let you test what you've got). From here, you can place characters, draw the landscape, make water, create hills and valleys, and mess with the general settings of your game. Most of the sub-menus come up as wheels that show you all of your options. There is a staggering amount of patterns to use, as far as the landscape goes, making it easy to create a unique world for your game to take place in. Aesthetics ultimately take a backseat in the grand scheme of things, but it is nice to have the tools to really polish your game's look.
The main "characters" of Kodu are its' namesake, which are floating mechanical heads of sorts. I went in thinking that they would be the only characters programmable for the player to control, but I was pleasantly surprised to find that there are over a dozen other mechanical creatures to make player characters, baddies, and NPCs out of. However, what you can do with each one specifically is somewhat limited. They all have a certain set of things that they can and can't be programmed to do, a short summary of which is given when the character is hovered over in the menu. Most of these limits make sense; the fish character cannot be programmed to move outside of water areas, while the blimp and saucer can move through the air on both the X and Y axis. But then there are some weird ones, like having only one character who can be programmed to jump.
While selecting characters and objects, you can either press A to place a "blank" character or Y to pull up a list of example code for it. Selecting one of these examples will place the character in-game with the code already programmed in. You can create some surprisingly complex AI for your characters. They can be programmed to react to some very specific things, whether it be color, sound, or a programmed emotion. By the end of my experimentation, I had an enemy type that attacked me because I was a turtle, and turtles made them angry. This made the turtle lose health and become unable to shoot, which in turn would make it sad. A helpful character who was programmed to react to the turtle's sadness would then rush to my side and shoot the enemy, making the turtle happy again.
On the negative side of things, the controls were a tad slippery and imprecise. At first, I thought it was just my shoddy programming, but even playing the ready-made levels, I felt that things could use a lot of tightening up that Kodu's system has no reign over. Yeah, that's right -- there's no way to view or edit the real text code, which is a shame. It would have been a very nice step up in the learning process to at least be able to see what you have done in its pure form. If you buy Kodu believing you can make a game on par with the better Community Games out there, you will probably come out disheartened.
Another unfortunate thing about this program is that, as of now, people can only share their creations with people on their friends lists. This was the biggest bummer to me, and may turn away a lot of people. Hopefully, worldwide level sharing will be implemented sometime in the future, so that everyone can exchange their ideas freely. I really can't see there being any legal troubles involved here; if someone were to carbon-copy Super Mario Bros.'s Level 1-1, it still wouldn't look a thing like what it paid tribute to.
As something that is supposed to be more than a mere level editor, Kodu may feel too simplistic and constrictive to a lot of people. But its limits are there for a reason: to keep things from getting too complicated. Education for all people is the foremost concept pushed by Kodu, but even with all of its limitations, there is enough there to enable you to come up with something all your own, whether it is a racing game, a 3D platformer, or a scrolling shooter. You can even manipulate the camera and character movement settings in such a way that a 2.5D sidescroller, first-person shooter, or a fixed-screen game can be created.
For the paltry sum of five dollars, Kodu is worth a look for those who want an easy way to learn XNA or who want a little more creative freedom than most level editors can provide. If you're unsure, the downloadable trial is a timed demo, but fully featured. You should be able to mess around with it long enough to make a decision either way.
As for me, I really love what it offers. I feel like a young child really could learn how code works with the help of this system, and giving everyone the gift of expressing themselves through the game medium is a pretty damned great one. It certainly helped me to better understand the inner workings of a videogame. Now that I've experimented with many of my game ideas in Kodu, I can take what it taught me back to Game Maker if I want. But I might stick with Kodu a while longer, just to see the first build of my ideas in practice.