How It All Began
*Relaxes on chaise lounge*
*Folds hands on chest*
*Sighs deeply*
Let’s see…
It all dates back to Christmas of 1982. I was 12 years old. My Parents had gifted me with a Commodore VIC-20 basic home computer.
With its 1.02 MHz MOS Technology 6502 CPU, being the younger sibling of the Commodore 64, the VIC-20 boasted all of 2.8k RAM in which to run BASIC programs. (Yes…you read that right…2.8k…as in “kilobytes”…which is less memory than what’s needed to store all the text in this blog entry you’re reading.)
This absolute beast of a machine </sarcasm> also featured a single composite RCA jack for video output to a standard CRT television. I remember you had to use an Radio Frequency (RF) adapter with its 75 Ohm coaxial pass-thru in order to toggle between the TV’s antenna feed and the VIC-20. (This was not unique to the VIC-20; generally, any device that you wanted to use with your TV required such an adapter.)
Back then, I was just some dumb kid living among a family of 9 in a three bedroom house tucked away in a nondescript plat in a quaint Midwestern suburb. So of course, I never occurred to me how limited my resources were: By Jiminy, I was going to write my own video games in BASIC! And I wasn’t going to let anything stop me, either!
And so…I did just that: I coded my little 12-year-old heart out. I figured; since I liked playing video games so much, wouldn’t be even more fun to make my own? And guess what? Trial after trial. Error after error. Countless hours with my face glued to my tiny 12-inch color CRT. And for me, it was exactly what I wanted: Unparalleled, undeniable, unrestricted FUN.
There was something else my adolescent brain didn’t quite understand at the time, and that was how brilliant a Computer Scientist my own Father was. In fact, I remember seeing reams of his journals…all written ornately in raw hexadecimal code! Rows and columns of number and letter pairs, penciled in telltale in No. 2 gray across whatever paper he could find at the time. Come to think of it, as I’m writing this, I also recall how my Mother would prepare her workspace to sit and type at her vintage mechanical typewriter as if she was some bigwig’s Executive Secretary, but all she was doing was hand-typing each member’s copy of song lyrics for church choir. I remember how she pecked at each key with calculatedly slow and methodical pacing, although I knew she could type much faster than even the folks did on TV.
Anyway…sorry…back to my Father and his manuscripts hand-written in hexadecimal. Bizarrely, I was well into my adulthood before I could truly appreciate the correlation between my Father’s hex code and how it related to the fundamentals Computer Science. After all, I credit my Father for teaching me the venerable “increment operation”, as in: i = i + 1 . For those non-coders among you, this short expression takes the variable i and increments it by 1 every time it is invoked.
It is with this simple unassuming bit of logic that a would-be game developer like myself could perform the kinds of “magic” that Arthur C. Clarke mused about, and that’s to animate something, and have it move from one place on the screen to another. (Of course, there is much more complexity to it than that, but…) This bit of logic was the underlying principle that opened a new world of possibilities for me: I could create my own custom graphical “sprites”, and dance them around the screen like my obedient little puppets.
Embarrassingly, I would have to go back to my Father to ask him how to reverse the process of the “increment operation”, and he kindly and cooly obliged me with the equally venerable “decrement operation”, e.g.; i = i – 1 . Those two laughably remedial operations led to even more complex mathematical subroutines that would unlock a world of unlimited potentials for me! I would finally be able to do it, and that’s…code my own ultimate version of “Breakout”! And by “ultimate version”, it’s only “ultimate” because it would by by my way of my own coding skills…not that it would be visually or functionally superior to the original game by Atari.
“Trial after trial. Error after error. Countless hours with my face glued to my tiny 12-inch color CRT. And for me, it was exactly what I wanted: Unparalleled, undeniable, unrestricted FUN.”
I often chuckle to myself when I think about how determined I was to code my own version of Breakout. But then, why not? In trying to mimic Atari’s Breakout, I would teach myself how to emulate things like basic physics. For example, the paddle at the bottom of the screen would have surface friction, and would thereby add its own inertia to that of the ball upon contact. In that way, the players could introduce a bit of “English” to the ball to manipulate its path in the playfield…not so unlike how a real ball and paddle would adhere to the laws of nature that govern them. Only, I didn’t know enough “fancy math”, e.g.; Calculus, to render the teachings of Sir Isaac Newton. For me, I had to “cheat” by “weighting variables” with “shims” and other kludge. So long as the ball animations looked “physical enough”, I was perfectly content.
Oh…and not only that…but my Breakout clones would eventually feature sound *gasp*, and I even eventually learned to probe the computer’s joystick port for paddle controller input.
Now, you would think with all the effort and progress I was making that my aspirations would turn to that of ultimately developing a smash hit commercial game title. But you’d be mistaken. I was just happy writing my own versions of Mazes and Monsters and the Tron Light Cycle games for my Brother and I to play together. And my skills with Commodore BASIC would translate nicely when it came time for me to start programming on my Father’s Yamaha CXM “Music Computer”, what with it’s fancy digital piano controller peripheral.
After all, back in those days, what you did on a home computer was ephemeral, i.e.; once you turned the machine off…POOF! All your hard work was gone! Of course, there were longer-term data storage peripherals even back then in the form of tape cassette drives and floppy disk drives in the 5-inch variety. Unfortunately, I imagine that—with 7 kids to feed and clothe—my Parents were barely able to afford the home computer they bought me for Christmas. But it never mattered to me, because I never wanted for anything more than my VIC-20. Besides, it’s easy not to miss something if you never knew you “needed” it in the first place. *winks* And you know what? I was just as happy to lose all my work every time I turned off the computer. I had all the long-term storage I needed right up here…*taps temple*…and once I got into my groove, I could peck my little fingers off coding dozens of lines of game logic.
With my Dad’s Yamaha CMX at my disposal came other pursuits, like sequencing music using nothing but raw BASIC code. But then, also, he would go on to purchase the tape drive, so I could finally backup and recall all my work! And had I gave a moment of thought as to how much those few short years would impact the rest of my life, I might have had more gumption to preserve that old stuff.
But nah! *swats at the air*
I don’t know how to better explain it, but I truly appreciate when an old chapter in my life closes, and a new chapter begins. Except, in the book of life, those old pages are behind us, and if we don’t have a way to preserve them, they’re gone forever! And you know what? I’m somehow oddly fine with that.
Oh well. Until next time, I guess. Thanks for “listening”!