The origins of my passion for computer programming and games
I have always loved games, as far back as I can remember. Even as a small child, I enjoyed all kinds of games, and I remember making up games and contests of my own. However, most analog games have at least a couple of drawbacks surrounding one concept: competition.
First, one had to find other people to play the game. I spent a lot of time alone in my childhood, so the opportunities to compete against others was limited. Even when players were available, the choices were limited by the number of people. Some games do not work with too few players, and if you have too many, somebody can get left out.
Second, when there are enough people to play a game, there are a lot of issues with inequity. Sometimes the skill difference at a game (or in general) is just too great for enjoyment, and the degree to which one enjoys any particular game is usually imbalanced. My sister was often around for games for two players, but she was three and a half years younger, so there were few interesting games where we were matched well.
At the time, I had not developed enough life skills to solve these problems through negotiation and sheer enjoyment of playing the game. I took games far too seriously, and probably was something of a poor sport. Nowadays, we have (well, had) Game Nights, which we have been doing for a couple of decades, and I am now far more concerned that everybody is having a good time than whether or not I win (or even play), in marked contrast to my youth.
One solution is provided by one-player games, and I have had a love for Solitaire since I first learned Klondike around the age of five (as fully documented when I wrote “I come by my love of Solitaire honestly“). Likewise, I have loved Pinball for about as long, as my uncle owned Campus Pinball in Ann Arbor (and that experience factors heavily in my life story), but Pinball was not readily available to me on a regular basis in my early childhood due to both location and funding.
Instead, I made up games and similar activities that I could play on my own. I created solitaire games (like the one player version of Go Fish! mentioned in the linked Solitaire post), held competitive events with my toys, like marble races or a challenge to see which Matchbox/Hot Wheels/cheap knockoff car would go the farthest (for which I invented different match systems, including the double-elimination bracket system), or made up strict sets of rules (i.e., algorithms) for automatic players in multiplayer games, like Monopoly, and then played against them. I had no reference to know that this was a rudimentary form of programming, but it is obvious looking back.
More to the point, I used to fantasize about having a “robot” (because in those days, there were no personal computers, simple calculators cost hundreds of dollars, and the only real computer I had ever seen was an enormous mainframe at MSU with multiple huge tape drives 😉) who would serve as my opponent(s) in these games, effectively making them one-player games.
About that time, Pong was released, and as fun as that was, it was still a two-player game (although on many occasions I played both sides, where the inequality of the experience between my dominant hand and the other was striking), so it was actually Breakout, released 4 years later, that became the first video game I really loved. (It was decades later before I learned that Steve Wozniak programmed that game just before founding Apple with Steve Jobs, who was also on that project.) Of course, from that point on, the video games came faster and faster. (Plus, Pinball Pete’s opened nearby, and I made slightly more than nothing with a paper route, giving me better access.)
I was also introduced to Dungeons and Dragons, which is ostensibly a social role playing game, but for the first several years of my fascination, I never actually played it as designed, but rather read through the books of rules and played scenarios (alone) as Dungeon Master, as well as controlling the players, and/or a group of monsters, given algorithmic motivations, which (unbeknownst to me) was building toward computer adventure/role-playing games.
All of this led up to My First Programming Experience. I was hooked; for years I had dreamed to be able to do exactly what I have been able to do since then. Also, the technology rapidly exceeded what I could ever imagine (as detailed in Still Coding After All These Years). Occasionally, I have to take a deep breath and reflect on this fact.