I want to play a game…
Critics and reviewers are always faced with the argument “Can you do any better?”. While I believe that you can criticise something without being able to do it yourself, there is some weight behind it. People who at least give things a go are in a better situation to appreciate the craft. Musicians appreciate music in a different way, painters appreciate art. But creating games is an onerous task requiring years of study, a team of people, and a multimillion dollar budget, isn’t it? Well, no, not if you have some help. I’ve been playing with three different initiatives (Codecademy, Scratch, and Kodu) all designed to get people into the world of programming and game creation, all of the following are entirely free and will run on most Windows PCs.
Codecademy is a truly brilliant idea and an example of teaching done right, although it is very hard. If you sign up at www.Codecademy.com you can start the lessons now and catch up, or even pick and choose depending on your ability. I was starting from scratch, knowing almost nothing about the language at all.
Each lesson gives you some simple tasks, that begin with things such as declaring variables. Thee is a fair amount of reading, but then on the page there is also a frame in which you can type code. In some lessons code is provided for you as an example, or as something you need to fix. The idea is you complete all of the tasks, press ‘Run’ and then see what happens. If the code was correct, you will be prompted to move on to the next lesson, if it wasn’t it will usually show you which lines your mistakes were on.
This works fine for the first few simple lessons but as things get more complicated it is not always possible to show you exactly where your error was. The way the answer is checked sometimes requires you to code things in a very specific way that is not obvious at a first glance. Many times I had achieved the same aim, but had done so in a different way. These problems are compounded when the tutorials show you different ways to do things. The problem is frustrating, but never stops you from progressing. There are helpful links on each page to a messageboard where you can usually find someone with the same problem and a number of helpful solutions.
I got about as far as week seven with Codecademy and then I stopped. While the first few lessons can be done in half an hour or so, they quickly get longer. If you have the time to spare it could be a great introduction to a versatile programming language, and along the way you even learn to code some simple games; but be aware that it will take a great deal of time and note-taking. There are achievements and a great deal of tracking in order to spur you on, but you need that dedication to get through some of the more difficult processes and terminology.
Codecademy is a wonderful thing, and I hope more community efforts spring up as a response, you can find out more at www.Codecademy.com
Scratch is a visual programming language developed at MIT to be used in schools with young people. Don’t let that fool you, the software is surprisingly powerful and a browse of the galleries at http://scratch.mit.edu/ lets you see some really impressive work.
You need to download Scratch (for free) and install the program (33mb). When you open it up you’re faced with a large area to play in and a number of jigsaw-type pieces to create the mechanics of your game, animation or program. Rather than confounding with complicated jargon Scratch allows you to bypass much of the coding required to write a program and instead lets you tinker with the variables and sets of pre-written code. To make it clear, each piece of code is shaped like a jigsaw piece so that it will only fit with other appropriate pieces. By chaining sections together you can call functions and set parameters or responses to different kinds of inputs or events.
The program is simplistic and it can be frustrating when you know exactly what you want to do but there doesn’t seem to be quite the right piece, but spend some time with it and you could be pleasantly surprised with the results. I have used this program with young pupils with learning disabilities and they have been able to create simple games and animations and they’ve had fun doing so.
The program comes with a number of examples and there are many more that can be freely downloaded from the website. You can also import your own sounds and graphics. Even if you don’t feel like creating something from scratch (Excuse the pun) you can always tinker with someone else’s project and get a feel for how it all fits together.
(This is an example project that comes with the program. It is called ‘MyLittleTown’, I have no idea what is going on in it)
While you are creating your projects you are coming across the same kinds of problems and decisions that real programmers do. Scratch won’t teach you how to code, but it will open your eyes to what goes on inside a computer program.
Scratch can be downloaded from http://scratch.mit.edu/
Kodu has been developed by Microsoft Fuselabs and is freely available from http://fuse.microsoft.com/page/kodu . The program is a 3D visual programming language that allows people of all ages to work at creating worlds. It can also be downloaded from the Xbox 360 Indie Marketplace for around £3.
Kodu is probably the least like ‘real’ coding of these three, but it is also by far the most accessible. In Kodu you are given a 3D flat plane, and then taken through a series of tutorials showing you how to make this world your own. You can add characters, change the landscape, the lighting, the music, and so on. You can then start adding behaviours to the world in a similar vein to how Scratch works, sections of code have been simplified into ’tiles’ that fit together. For example, to give yourself control over a character you simply need to put it in the world, go into programming mode, click the tile for arrow key input, and then the one for character movement. Kodu does all the rest, deciding you want left to go left and up to go forwards.
The genius of this program is that you can have something extremely playable within seconds. Kodu does all of the hard work rendering and mapping controls, it even lets you plug in a 360 controller and assign the analog sticks. Again, it is missing out on ‘real’ coding but it serves as an introduction to the ideas and decisions that underpin real programming.
One of Kodu’s strengths is how nice everything looks. Characters and items have been given a cartoonish quality that helps to keep your ideas consistent. With clever use of lighting you can still create some varied-looking games, but admittedly you’re not going to be creating Battlefield 3. The rounded edges and huge text also unfortunately extend into the program’s unusually unwieldy menu, which I found the be the most frustrating aspect of the package. Overall though, Kodu is a great toy and if you’ve got an amazing idea for a game burning away at your soul, it might be worth whipping something up and seeing how it plays, maybe it’ll inspire you into learning to program for real.
Kodu is available for free from http://fuse.microsoft.com/page/kodu