I learned to code in 1996.
First it was a branching choose-your-own-adventure situation built with Automenu, but when that wasn’t enough, my father gave me a two inch thick book on programming in QuickBASIC and I got to work. At the time, my best friend had already started coding in QB thanks to his own dad’s urging. I can’t remember what kind of programs he was writing at the time—games, I assume, probably text adventures— but, not to be outdone, I resolved to start making digital animation, even though coding graphics was way over my head. Undeterred, I created four installments of CARTOONZ.BAS, a series of little vignettes made of what could be generously referred to as ASCII art. The animation ran at one frame per second because 1 was the lowest value QuickBASIC v4.5’s SLEEP keyword would accept, and now we all need to suffer through that together.
I credit the ASCII-based dungeon crawler NetHack, which I witnessed with pure wonder at another friend’s house long ago, for showing me how complex ideas could be expressed through quick, accessible symbols. A pipe ( | ) could be a hero; aliens could be pound signs (this predated the concept of a “hashtag,” natch); shapes could be made from hyphens, underscores, and slashes. The possibilities were nearly endless, and of course I never even scratched the surface of the truly amazing ways an artist with enough patience could leverage extended character sets.
Unfortunately the uncompiled code no longer exists, but these little programs were so hacked-together that I can still remember how they were built. Behold, the code for a single frame of BUNGEE:
CLS PRINT PRINT ^^^^^^^^^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ PRINT ^ SPLAT!!!!! PRINT ^ __ PRINT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PRINT SLEEP 1
It’s funny, when I first rediscovered these old compiled BAS files, I was first struck with a memory of some kind of super cool animation that I’d managed to pull off. Surely, even at just one frame per second, there was something, some tiny nugget, that foreshadowed the skills and instincts I’d go on to cobble into my rewarding career? Not so much. It turns out, what I was remembering was merely the satisfaction of completing an overwhelming effort. It was hard work forcing my will upon poor, unsuspecting QuickBASIC. And with my vision fogged by the sheer toil of it all, I had no idea how simplistic the results actually were.
I think that’s actually my favorite part about CARTOONZ!. They suck. They are an order of magnitude more lame than every subsequent effort I’d go on to make, both as an animator and as a coder. Beyond sucking, though, they were, unapologetically, what creativity accomplishes under constraints. It was a labor I committed to, with no acknowledgement before or after of the cavernous gap that existed between the art I was consuming and the art I was making. Of course now, both due to decades of experience and just being a jaded old guy, I live almost constantly on the bummer-side of the Gap, working feverishly to force even a rickety old rope bridge to span to the other side. But in re-watching CARTOONZ!, I sincerely hope that every young creative mind gets to have that period of unexamined abandon. At the time, I made CARTOONZ! because I wanted to do what my friend was doing, and I wanted to make animation. Now, I’m glad that I made CARTOONZ! because it can remind me that the Making part is allowed to be valuable even if the thing that is made truly sucks.