Further Thoughts (2010) by Dave Ahl
For the First Edition of the Encyclopedia of Computer Science which came out in 1976, I wrote the entry for the history of computer games. At about a page-and-a-half long, it was one of the shorter entries in the encyclopedia. Five years later in the Second Edition, the entry grew somewhat but was vastly eclipsed by the entry for arcade games.
However, with the advent of readily available personal computers and a reliable way to distribute software (floppy discs), the early 80’s saw widespread advances in the development of computer games. For example, I had been experimenting with a computer-videodisc interface and had written a rudimentary game based on the movie, Roller Coaster. I was excited about the possibility of incorporating real video images into computer games. Interestingly, several arcade games were produced that actually did incorporate videodiscs. After selling Creative Computing to Ziff-Davis in 1985, I produced two magazines, Atari Explorer and Atarian for Atari Corp. and got to know some of the foremost independent game designers as well as those at Atari. At this point, the Japanese were not only pushing the envelope on all types of electronic games—arcade, video, and computer—but beginning to merge all three, and there were quantum advances in practically every aspect of computer gaming. On another front, although they look primitive now, my games of Subway Scavenger and Hong Kong Hustle in Basic Computer Adventures were among the first to incorporate external databases as part of the game.
By the Third Edition of the Encyclopedia of Computer Science (1992), the computer games entry had grown to 3+ pages and was supplemented by another 4-page entry on game development techniques.
Asked in 2000 to write the computer gaming entry for the Fourth Edition of the Encyclopedia, I politely declined. It would have run a minimum of 20 pages and required a lot more research than I had time to do. Moreover, in the 90’s the computer gaming field absolutely exploded with the advent of multi-processor machines, humongous amounts of memory, separate video processing, CD-ROMs, and high resolution displays. Games no longer had a few blocky images moving jerkily around the screen; images now looked like the real thing (no laserdiscs necessary), and they moved as fast (or faster) than life. Frankly I couldn’t even play most of those new games much less write about them. So scratch one old writer.
But along with one old writer, unfortunately millions of kids have been forced to bow out too. Not as game players, oh, no, the kids love ’em. But could they write one of these games on their own home computer? Not a chance. No longer could someone spend a couple of weeks writing a game like Bowling, Gunner or Hangman, show it to his friends, and have them all clamoring to play it—or, in many cases, modify the game and make it better. Sure, millions of hours today are spent playing games like the Halo series, Call of Duty, Super Mario Bros, Grand Turismo, and The Sims, but I’d bet that not one in a million players knows how they actually work. Just imagine looking at the millions of lines of code in the game, deciphering them, and figuring out how to change the game or improve it. Can’t be done.
Now I’m not saying that all these fantastic computer and video games aren’t the greatest thing since sliced bread. They’re terrific, and they encourage a player to focus on how to overcome obstacles, select the right weapon, get to the next level, and eventually beat the game. Playing these games requires a great deal of analysis, trial and error, problem-solving, and patience. And for the most part, those are the same attributes needed to write a game. On the other hand, is saying “I scored 1,250 points in Splinter Cell” the same as saying, “I wrote this new game of Fur Trader. Wanna play?”
That’s why I like the idea of this book. Readers can type in a game, analyze it, and figure out how to make it better—or maybe just straighten out some of the ghastly spaghetti code. No, your game is not going to rake in $170 million on its first day of release like Halo 3, but it is going to give you a lot more knowledge of logic, cause and effect, debugging, and the importance of attention to detail than you could possibly get from playing a game written by a huge team of game designers and programmers.
What I’m suggesting—entering a game on the keyboard, finding the inevitable bugs, playing it, and maybe improving it—is not as simple as it might sound. Moreover, if you go one step further and really try to understand the logic, math, and algorithms in depth, you’ve taken a huge step forward. For example, in the second game in this book, Amazing, if you understand the algorithm that guarantees that there is one—and only one—way through the maze, you also understand the logic used in nearly every game from Farmville to Mario Bros to Call of Duty that requires you on each level to advance through an often devilishly convoluted path to reach the next level. It is seemingly impossible and there are many dead ends, but there definitely is at least one path through.
How about Bullseye? It’s a short, rather silly game that pits the player against the computer in a game of darts. Each player (human and computer) can choose one of three types of throws and each throw has five possible outcomes ranging from a 40-point bullseye to 0 points for missing the target entirely. Yes, the logic is only 12 lines of Basic code, but it’s representative of the same logic in massive games that allow players to choose different weapons to fight the aliens, who in turn have their own armory of destruction.
Combat, game #28 in this book, carries this strategy one step further. In it, you must allocate your 72,000 troops to the three services: Army, Navy, and Air Force. You then decide which service attacks first and with how many troops—not much different from the logic used in scores of modern games of warfare. Except for the fact that the logic in Combat is contained in about 100 lines of easily deciphered code, it is fundamentally the same logic used in a game like Gears of War.
There are many other examples. Football in the book shares logic with Madden NFL. The Hammurabi and King games? Same basic logic as The Sims. I could go on, but I think you get the idea. The basic principles are the same. And when you understand the basic principles of these rather simple games, you realize that these same basic principles are the building blocks of much of what computers do in our modern society. I mentioned earlier that my Subway Scavenger game was one of the first to use multiple databases (stations and routes) as part of the game. Well, gosh, that’s exactly how airlines schedule their flights and parcel delivery services plan their deliveries.
Today, 2010, we can think of the computer gaming world as a huge funnel. Entering the top are hundreds of millions of game players. Some are way more serious than others and play practically every waking hour, but they are basically game players. As we get down to the spout, we find that a small number of players are becoming programmers. What does it take to go from being a player to being a programmer? Well, reading a book like this is a good first step. Write some simple routines. What works and what doesn’t? What is fun and what isn’t? More important, figure out why one thing is more fun than something else. Hint: if the aliens win 60% of the time, it’s not fun. But it won’t last long if humans win 60% of the time. Strive for balance. Lots of other things too. Enough: this is not a game designing primer.
But that brings me to my final point. Working its way completely through the funnel is a very small group of people who are becoming the next generation of game designers, authors, and creators. How does one get into this elite company? One of my favorite expressions is: “learn from the past; live for the future.”
To learn from the past, I think we must turn back the clock to way before the invention of computer games or even the computer itself right to the earliest games. Games like Nyout, Nine Men’s Morris, Fox and Geese, Mancala, Go, and Marbles have been around for thousands of years. With the advent of paper and printing, playing cards, tiles (dice, dominos, Mah jongg, etc.), and shaped playing pieces (chess, shogi, etc.) in the last five centuries, many more games were devised.
Let’s consider some of these early games. Why were they fun? What made people play them? How long did a game last? How many players? What was the balance of chance versus skill? Were the rules easy or complicated? Can the game be programmed on a computer? Would it be as much fun as the original? Why or why not? Could you add elements from another game to it?
Consider the Game of Goose from 16th Century Italy. Even simpler than Snakes and Ladders with a game board of only 63 spaces and no playing skill involved, it sounds silly and trivial. What could possibly make anyone but a young child want to play it? Here’s an answer: in his 1899 novel Le Testament d’un Excentrique, Jules Verne used the United States of America as a giant reallife Game of the Goose board, on which seven players race each other in pursuit of a staggering $60,000,000 inheritance. All of a sudden the Game of Goose goes from a trivial child’s board game to a far-reaching complex adventure.
Here’s an idea—and a challenge. As far as I know, no one has written a program to play the Game of Goose. After you’ve entered some of the games in this book on your computer and analyzed how they work, why not write your own program to play the Game of Goose? It’s kind of an open-ended game with many different boards and themes. It is totally a game of chance and it would be more competitive if it involved some factor of skill. I recommend programming one of the original versions before going for the Jules Verne scenario. Added bonus: write a Basic program to play one of these early games and you’ll be well on your way to understanding and solving much bigger and more complex real-world problems. Go for it!
Morristown, New Jersey
SOURCE: Basic Computer Games - New Small Basic Edition 2010