-- Leo's gemini proxy

-- Connecting to gemini.hearsay.tech:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en; charset=utf-8

I Didn't Know I Was Programming


I loved computers when I was a kid. I had twin uncles that were both electrical engineers and in the military reserves. They tinkered around with guns and electronics, which made them the coolest people in the world to me. One of them would tote his Texas Instruments computer to my house sometimes, and we'd hook it up to the television and play games together.


Review: Texas Instruments' "Tunnels of Doom"


Once I was in school, I jumped at any chance to use a computer. When I was very young, maybe 10 years old, I remember getting a chance to use Logo. I very quickly started making a simple text adventure; you'd have to wait for 30 seconds or so for the turtle to draw the scene one line at a time when you changed rooms.


Logo Programming Language


When I turned 12, my dad generously bought me a 386 with 40MB of hard drive space, and who knows how much RAM. It was already quite outdated by contemporary standards -- my cool uncles were playing this new game called Doom on their 486s. I found the invoice recently, and my dad paid 3000CAD for the whole package, which leads me to believe he was horribly swindled.


But that machine kept me occupied for hours on end. Shortly after setting it up, I was editing NIBBLES.BAS and GORILLA.BAS to suit my tastes.


Before Fortnite, There Was ZZT: Meet Epic's First Game


A year or so later, a friend gifted me a shareware disk with ZZT on it. The graphics and gameplay were very primitive for the time, but I tinkered with it, enamoured by the puzzles and secrets.


One day I noticed the title screen had an 'E'ditor option, so I gave it a whirl. I had no idea that ZZT had a full-fledged game maker included with it! My imagination was captured. I designed my magnum opus game, with dozens of screens and scores of items.


I printed out the huge ZZT-OOP manual (included in the help menu!) on my dot matrix printer. I'd never printed so many pages at once before. It felt like was committing some horrible environmental crime. Won't someone think of the ozone layer!


I became pretty handy with ZZT-OOP, which reads like a baby Smalltalk. It was harder for me to learn all the visual and mechanical tricks that I needed to make my game fit my perfect vision.


Eventually, I ran into a critical issue. My character's "items" (really just flags) kept disappearing. I had no idea why. I read the manual end-to-end several times, and I meticulously reviewed all my ZZT-OOP scripts. I couldn't find anything wrong. I was crushed. I didn't explicitly give up, but I gradually lost interest.


About a year later, I was on some local BBS at 12:01am crushing fools in LORD after a nightly reset.


Legend of the Red Dragon (LORD)


Pickings were slim, so I started poking at crannies of the board I hadn't really spent much time on, including the messages section. I found a ZZT topic that caught my eye. Eureka! In that thread, someone causally mentioned that ZZT was limited to a total of 8 flags per game because they were stored in a "byte". I knew a byte was small, but until that moment it had been an atomic sub-unit, some indivisible measure of storage. I felt vindicated, but also pissed off at Tim Sweeney. Why did he let us make dozens of boards and hundreds of custom objects, but only 8 flags!?! Did he not know the grandeur of my vision!?


Anyhow, years later I took a computer programming course in late highschool. I was intensely excited. I thought of programming as magical thing that only geniuses could do. We started out learning a "teaching language" named Turing. And boy was I surprised at how much it was like all the tinkering I'd done as a child.


Throughout all those coding experiences as a kid, I had no idea I was programming. I just wanted my computer to do stuff, and I did the things to make it do stuff. Sometimes that meant guessing DOS commands because I didn't have a manual; sometimes it meant typing "commands" into a "script" to make my cool ZZT boss evolve to its next form.


In fact, I had a rather auspicious beginning to my programming hobby. Logo is a Lisp variant, and ZZT-OOP is basically Baby's First Smalltalk. All I needed was a dumbed-down version of ML and I would have had an entire programming languages course under my belt before puberty.


I don't have any insight or major point that I'm trying to make here. It was a story and a realization that I wanted to share. I'm sure many people had a similar entry into programming, but I'm not sure how many were as ignorant as I was of what I was actually doing.


And, come to think of it, perhaps I wasn't really ignorant after all. ZZT-OOP had "Object-oriented programming language" right in the name, after all. (I thought "object-oriented" referred to the little glyphs I was moving around on the screen.) I think I just didn't care about the distinction between programming, and all the other arcane things I had to do to creatively use computers. That separation between "programming" and the "other stuff" didn't really matter to me until other people started to make programming sound like some mystical art.



-- Response ended

-- Page fetched on Thu May 9 22:44:41 2024