I hope Rex the author of Foundation of Game Design… does not mind sharing this (entire) Introduction. Long before I heard this story, I heard Sid telling me that he got started programming by typing BASIC programs into the computer. Many of you can relate to variations of this story.
So that Christmas morning, in a giddy fever, I ripped open the red-and-white candy-cane wrapping paper. It was everything I had hoped for: a state-of-the-art Commodore Vic-20. It had a whopping 5K of memory, the latest cassette-tape storage drive, and a display of 16 colors. The computer at school could just display two colors: green and black. I was in heaven! I fumbled with the instructions and, with trembling hands, carefully plugged my gleaming new Vic-20 into the family TV set and switched it on.
Nothing happened. The TV was completely blank, except for a small, calmly blinking blue square at the top left corner of the screen.
“Where are the games?” I thought, “Where’s Ms. Pac Man? Where are the aliens?”
I jiggled the power cable and fiddled with the wires at the back of the TV. But, no, there was just that steady blue, blinking square, silently mocking me. This blue square, I discovered, was called the “cursor.” I hated it and felt sick.
The games, it turned out, came on audio cassettes that you could load into the computer by hooking up the cassette player and pressing the play button. But you had to buy them. They cost $20 each. The nearest shop that sold them was a 45-minute drive, in a car, over a mountain. It was impossible—there was just no way. And, anyway, I was supposed to be using this thing to “do my homework.”
But in the computer’s box I found a book about BASIC programming. I had no idea what that meant and couldn’t understand anything in that book at all. It was full of all kinds of bits of scrambled English words and numbers written in big capital letters that were supposed to make the computer do things. “Programming code,” it was called. Maybe this was just stuff for grown-ups? “No,” I thought, “computers are for children, and grownups are scared of them.” And so I persisted. At the very back of the book, I found a section called “Programs to try.” My eye fell across the words “Killer Comet.” It was a video game! Beneath it was a long list of inscrutable codes. But I finally figured out that if I could type these codes into my Vic-20, I could play a game.
That was it!
If “programming” means “you can play video games for free,” I was going to figure out programming. I spent the next two days in a frenzy, reading through the book and typing in all those codes, trying to get Killer Comet to work. I had barely any idea what I was doing and my computer kept displaying “Syntax Error! Syntax Error! Syntax Error!” over and over again whenever I tried to run the program. I was pulling my hair out and wanted to scream! But then, late on the second day, something miraculous happened—it worked:
A small white square moved from the top of the screen to the bottom of the screen.
If you pressed the right number of keys in the right way, the square disappeared.
That was all.
It was the most beautiful thing I’d ever seen in my life.
And that’s when I discovered that making video games is way, way, way more fun than playing them. And so, here, Dear Reader, you have that book that I truly believe should come in the box with every new computer. Hope you have as much fun reading it as I did writing it!
I think writing games is one of the best ways of teaching programming. It develops multiple skills – algorithms, strategy, UI design, visual design, event handling, AI and more. So most of the courses I teach and internships are starting with games.