“A computer is an imagination machine. It can take you places where you’ve never been before, where nobody has ever been.”
— Christopher Lampton, How to Create Adventure Games
I first read Christopher Lampton’s How to Create Adventure Games when I was 15 or 16. It completely changed the way I thought about programming games. It was the first time I had read a detailed description of what I’d now know as a game engine. He called it an Adventure Game Skeleton.
This BASIC programming book was absolutely formative for me. I had already been programming in BASIC for 7 or 8 years. But all of my programs up to that point had been one-off creations, very simple scripts with relatively minor interactivity. While many of them felt like games, none of them truly were, beyond simple random dice rolls or slot machines.
I still remember how eye-opening Lampton’s description of the world map was: a two-dimensional array, indexed by room number then direction; the value stored at that position would be the room you’d arrive at if moving that direction. That simple bit of indirection moved me to a new level in game programming. I had learned the look-up table!
To be honest, I don’t think I’ve read anything since that’s filled me with the same sense of limitlessness. Lampton’s first chapter was called The Imagination Machine, and I can’t imagine a more fitting concept. What has always attracted me to game making has been the creation of worlds, the realization of constructs from my imagination. In the abstract, there’s been the mathematical appeal of the systems. But from my earliest days of playing at game making, I’ve always seen the end result first and worked backward to an interesting game. I want the player to have this experience, now how do I do that?
And in many ways this makes game making similar to filmmaking, something I pursued at one time in my life as well. Both are about constructing experiences for the audience. And while they arrive there via different modes of thinking, I think both represent some of the most comprehensive techniques for capturing and sharing experiences.
I’ve kept my copy of How to Create Adventure Games ever since. Unfortunately, there’s no modern electronic version of this text, and very little information about it can be found online. You can at least find a few good used copies via Amazon. I’d heartily recommend it. Would probably take most adults with any programming experience a few hours, maybe a long Saturday afternoon, to go through the entire book.
I’m going to try and create a modern take on this favorite. I’m going to recreate the adventure games from the book in a modern context: JavaScript and HTML. One post per chapter. And once we’ve finished, we’ll hopefully extend our new Adventure Game Skeleton into something more.