So Your Child Wants to Create Computer Games (and you’re not sure where to start)
It isn’t surprising that our children are becoming more and more interested in computer programming – after all, the favorite pastime for many of our children is playing computer games. Computer games (meaning, a PS3, Wii or Xbox 360 console game, or an online computer game, or an iPod touch downloaded game) are just a specialized form of computer program.
When your child expresses curiosity about how to “create a computer game” what they really need to know is how to program a computer. Some parents have an unfair advantage (I’ll include myself in that category) because of their education background and/or career. My first experiences with a computer weren’t playing games but rather were writing simple (and ultimately more sophisticated) computer programs. I quickly found writing computer programs much more fun than playing with someone else’s program. Computer programming is also a great answer to “why do I need to learn all this math?”, provides an analytic framework for problem solving and teaches logical thinking. If you are like the majority of the population and don’t know how to program a computer (or much else about how a computer works) there are excellent free resources available that can help a motivated child get a head start on computer programming – even in elementary school.
The best place to start is a terrific free tool developed by the Massachusetts Institute of Technology (MIT) called “Scratch“. Scratch is a visual computer programming language that, based on my experience, is suitable even for children as young as 9 years old (and possibly younger). Scratch is a completely free application that can be downloaded here: http://scratch.mit.edu/. Scratch provides the budding computer programmer with all the building blocks of object-oriented programming (not sure what that is? don’t worry – you don’t need to know). Your child can create “sprites” (animated objects) that are instructed what to do by “scripts” (a form of computer program). Your child can create their own sprites or download sprites from other Scratch users from around the world. There is no risk of breaking anything so your child can experiment.Sprites can interact – and that is where the fun begins (and your child really learns how to program).
The screen shot above is a simple Scratch program where you can play fetch with the Scratch cat (the default sprite provided when you download Scratch). You click on the screen and the Scratch cat fetches the ball. Your child can share Scratch creations on MIT’s server or download other creations as samples to learn from. There are hundreds of thousands of Scratch creations available to download from the Scratch community.
But since seeing is believing check out the Scratch creation my 9 year-old daughter created (available here). She drew all of the sprites herself and programmed them to interact. Pretty cool. (Note: viewing Scratch creations online requires Java to be installed – if you get a message about Java not being installed it only takes a minute to do so at: www.java.com). A scene from her creation is shown at the right. The full computer program includes multiple characters (sprites) moving and interacting based on the computer program developed by my daughter. Pretty cool.
The second example where Scratch plays fetch is available here (I developed this one as an example for my daughter).
For older children (high school students or an advanced middle school child) there are much more sophisticated options (including developing websites from scratch). But perhaps the most fun is Robot Battle (available at http://www.robotbattle.com/). This is a much more sophisticated programming language that let’s you create robot programs and then have the robots battle each other in a virtual arena. The robots battle based on the program that was written for them by the programmer. In Robot Battle you can test your programming prowess against your friends (or the Robot Battle community) – may the best program win, as it were. Again, completely free and supported by a community (so lots of examples to start from).
Whereas Scratch is a visual programming language, in Robot Battle the robot programs are created in text files, in a ‘C’-like programming language (‘C’ is a foundational programming language that was used to develop the Unix operating system and has since evolved into object-oriented variants). So the next time your child dreams of creating a computer game you’ll have a couple of free options to offer them. Learning and fun combined – that’s computer programming.
As noted in the comment from a OneDublin.org reader, another terrific resource is Alice.org (a free tool to teach computer programming in a 3D environment). Alice.org was created by Carnegie Mellon University. The only downside of this tool is the time it takes to download and install – it’s a 250MB file (but very fun / cool). Finally, another resource for general math (with lots of 3D graphical rewards) can be found at www.MathMovesU.com.
For San Francisco Bay Area parents, Tech Know How offers several summer day camps for computer game design, 3D modeling and robotics.
Want to dig deeper? Here is another terrific resource: Beginner’s Resources to Learn Programming Languages.