As a veteran game designer/producer with over two dozen shipped titles and two decades of experience, I am often asked how does one make games? I decided to answer that question at PAX Prime in Seattle this year. My daughter and I gave a talk entitled “Family Game Night With A Twist: Make your Own Game.” This article covers some of the material from our talk.
In our first installment, we will look at just a handful of the tools/games available on the iPad to help teach children (or any novice) how to program. There isn’t a single iPad App that could replace a programming class or three, but we found this collection of Apps (most of them free) a great way to progress from no programming experience at all, to making a game in a few days.
In Part 2, we will cover a similar progression of tools/games available on the Web and PC/MAC.
Barriers to Entry
When I first entered the industry, there were many barriers to entry. These barriers were obstacles that kept “just anyone” from making games. For many years, this was a business advantage that allowed established game developers to sign development contracts that startup game developers simply could not sign.
Hardware: Computers were scarce and expensive.
Software: Photoshop, Maya/Max, Compilers were all also expensive
Distribution: You used to need a publisher, who had a relationship with a distributor. Only that distributor could get your game on the shelf at Wal-Mart/Best Buy for example. And there were only 5 distributors that Wal-Mart/Best Buy talked to and they would not talk to you, only to Publishers.
Licensed Developer: Up until recently, you needed a very expensive developer kit to make console games. And only a publisher could “loan” you a developer kit.
Training: Word of mouth and experimentation were the only ways to get an education.
Financing: Traditionally, a publisher would give you money as an advance against royalties to make the game.
Today that isn’t the case. Anyone, and I do mean anyone can make a game. Even if all you have access to is the computer at your local library. You aren’t going to make GTA or Mass Effect, but you can make something as elegant as Angry Birds.
Hardware: Free (at your library) to $500 iPad, laptop
Software: Free to inexpensive options (Blender, Gimp, etc.)
Distribution: Set up your own web page, iOS, Android
Licensed Developer: Cheaper and Easier.
Training: Web Classes, High School, College, Game Colleges, YouTube, Gamasutra.com, Khanacadamy, Codeacademy.
Financing: Crowdsourcing, Self-Funding (costs are low enough)
That said, making a game is still a fair amount of work and requires a driving passion that not everyone possesses. Anyone who owns a pencil can be an author, but most people still never write a book.
iPad Game Making Tools
Below is a partial list of free to inexpensive game making tools. Presented in what we believe to be a logical order to take anyone, young or old, from wanting to make a game to making a game they can play in a few days. My daughter and I have used all of these, and some others we opted not to include.
It will still take you months to years to being able to write your own game from scratch. But if you follow this progression, you can stop at any time and have created something of your own. And that is the key to what game making represents: Creation not consumption.
A few notes on teaching programing to children.
Be Patient: Don’t give them the answers, let the struggle for a bit. Then help them understand the answer, don’t just give them the answer.
Piano lessons: There will be a time and place where programming lessons will be more structured and I hate to say it, less enjoyable. Keep these sessions light and fun. Part of family fun time, not a dreaded task like piano practice.
Mistakes Encouraged: So long as you save early and often, nothing can go wrong if you make mistakes. Making games is making mistakes early and often while they are cheap and easy to fix. Let your child fail on their own.
Experiment: Trial and error is required. A 10% change in gravity or damage might be all it takes to turn frustration into fun.
Up to a point. At some point set out some clear, simple objectives. “let’s make a 2D Platformer with 3 enemies”.
Start small: or at least don’t be afraid to backtrack at re-start smaller. This is one of the biggest problems professional game designers have. It is easy to dream big, but it takes a special talent to be able to complete something. Start small, grow from there.
Kodable:Free, with $1.99 add ons
Kodable is a very simple game that is a good introduction into the thought process behind programming. Programming requires the ability to break down a process into its smallest, logical steps. In Kodable, the object is to move a little fury character from one side of the screen to the next using the minimum number of instructions. It covers Conditionals (If Then) and Recursives (Loops). There can be times when there are too many levels to beat before you can move onto the next lesson, but it is a good first stepping stone.
Daisy the Dinosaur:Free
Logo/Turtle For the very young. You can move and resize Daisy, but that is about it. There are some simple loops, but no nothing more advanced. We found there were not enough challenges, but we did play it for a quite a while just because of its attractive art style and UI. We recommend you spend a at least a few minutes with it before moving on. Longer, if you have very young children. You can finish all the challenges is 15 minutes or less and doing so will make the next App’s concepts easier to understand.
Move the Turtle:$2.99 (its Universal: iPhone, iPad)
A more complete, updated version of Logo/Turtle with much more functionality, including variables, text, sound and more. No code to enter. Programing is done via a collection of sequential graphical objects. A full set of challenges and puzzles to beat and unlock. Enough to keep you busy for several days. Draw fractals, play songs, solve algebra problems. A great progression from Daisy the Dinosaur, with beautiful presentation.
Cargobot is another Graphic Object Oriented Programming App, but Cargobot is more of a game than Move the Turtle. There is really only one thing you can do as your program the Robot: Stack Boxes. But the challenge comes from trying to stack the boxes correctly in the fewest moves. We found it more than challenging to finish, which is why we placed it after Move The Turtle than before it in our progression. It has a great art style and it will help you think economically to solve the challenges.
But just like Daisy the Dinosaur, Cargobot is worth taking a look at just do appreciate what else the developer has done at the end of our tour.
Hopscotch is from the same developer as Daisy the Dinosaur and the similarities are immediately obvious. But Hopscotch is a more robust Graphical Object Programing system.
It is possible to create very simple games with Hopscotch: try to avoid or hit an object and a new event will play. We realize that making a game is what everyone wants to do, but if you have never programmed before, we wouldn’t start here. Start at the top of the list and work your way down.
Gamepress is the first, and only complete game making Graphical Object Programming tool chest in this article.
It has great tutorials and sample games you can download for inspiration. As an added bonus you can import your own art. We were unable to import our own audio, but it appears to be possible.
You aren’t going to be able to sell these games, nor are you going to be able to make COD 6, but that isn’t the point. You can make a real 2D game that keeps score, takes away hit points, and more. And did we mention that it is free.
This gap is where the iPad is missing an app or two. A novice game developer could use one more stepping stone between Gamepress and Codea. But there isn’t one.
Codea is a wonderful code editor, complete with vector graphics, shaders, audio and everything else you would need or make a 2D or 3D game, or just about any other application you could dream up.
You can export your code to Xcode and build native Apps you can sell on iTunes. Cargobot, mentioned above, was written in Codea. All that said, Codea is built on Lua and even with its great tutorials, and sample projects is going to be a bit of a challenge for most non-programmers to use. Especially if they start here and not at the top of this article.