I started coding at a young age — I began programming in Extended Color Basic on a Tandy Color Computer my dad bought for us. I would pore over old editions of Rainbow magazine and type in BASIC instructions by hand.
10 PRINT "HELLO"
20 GOTO 10
I remember coding up an address book script when I was around 10, and not knowing any addresses to put into it but my own. At one point, my elementary school’s principal heard (from me or my parents I’m sure) that I had written an address book app, and I remember him asking me to maybe write something for the school to use. I don’t think I ever shipped anything to him, which, looking back, serves him right for trying to hire a third grader far below market salary.
In high school, I remember coding a text adventure on my TI-85 graphical calculator. It had a key puzzle and multiple endings, and it was set around my home and school neighborhood (a place I knew well). One of my friends kindly accepted the code over a cable connection, so I know at least one other person played and enjoyed it.
After I reached college, the math got a little too hard for me, and I switched into HTML and CSS for a while, and designed a few pages and blogs for personal use and school work. I got started in Excel around this time as well — I made some auto-filling D&D character sheets, and charted some budgets and marketing slides. I hand-wrote some XML feeds for a few of my podcasts, which was actually not as much of a pain as it sounds.
I messed around with Flash for a bit, first trying animation and, when I realized I didn’t have much artistic talent, playing around with small interactive stuff like a trivia game and a few generic levels of a platformer. I have also played around a lot with various game engines, including Scratch, RPG Maker, Unity, and Unreal. I’ve taken lots and lots of runs at making little games — usually a half-considered puzzle idea that I’ve had in my head, or a top-down adventure exploration game that I swear someday I’ll make for real.
Since college, I’ve made some headway into more complex languages as well — I’ve coded some things in C and C++, and I’ve done quite a bit of self-directed learning (just using resources online) in Ruby, Perl, and Python. Almost nothing I’ve made has ever been released — I have either just coded to learn the languages, I’m poking around a game idea, or I need to grab or format some specific data, and I punch out a few lines of code to do what I need (usually supported by a lot of Googling and experimentation).
These days I’m trying to do larger, more polished projects when I have the time and interest. For a while I worked on making a 2D isometric space trading game focused on exploration and crafting — I coded up dozens of items to buy and planets to visit, even hand-drawing icons for each, and creating little backstories for each world that expanded and revealed more the more often you visited and traded on them. The game never worked out, though — I think the issue was that I couldn’t figure out the math around making your little ship fly around the screen from planet to planet.
Lately I’ve been working in Python, on little projects for fun or to learn some specific code. I made an app that shows me lyrics of whatever song I’m playing in Spotify, and another one that lets me browse through every car ever made (thanks to a DMV list I found) and pulls video or photos of that car. I find it really fun to browse through old cars and see and learn about those I’ve never known existed!
While I was writing for The Unofficial Apple Weblog (as the iPhone and then the App Store launched), I figured that I should actually get some experience as a developer myself, and I bought a few books about Objective-C and an Apple Developer license for a few years.
The first thing I tried to make and release on the App Store was a simple dice roller, but it never made it out — despite me recording some great dice noises and providing no end of different options, I was never happy with the way it looked. I also worked on an app that I called BankIt (and even got some help from a generous pro developer on it). It was a good idea — you could put in something you wanted to save for, and then you could press some quick buttons to throw in a mental buck or two until you hit your goal (and could spend your money guilt-free). I worked for a while on trying to make it sticky enough before losing interest, and I think an Objective-C update that broke some code I was using was the nail in the coffin on that one.
In the end, I did release two games on the App Store. The first was a Pong variant I called Antithesis, and you can read about my experience with that on Engadget (in the TUAW archives). I released that one for a buck, and made about $400 total (which I essentially passed right back to Apple for four years of the developer account).
After that, I did a game jam and made a grindy puzzle game called Benediction, where you played a god who spent prayer power to earn points by answering your penitents’ prayers. I figured that as a game jam game, it wouldn’t have been right to charge for that one, so I gave it away for free. Unfortunately, I didn’t have the time to keep up with all of the iOS versions over the years, and eventually I let the developer account lapse, so both games are lost to history (or at least to the files on my backups).
I enjoy thinking and working as a developer. It hasn’t been the main focus of my career, but I hope someday I can help make something great that changes the world for the better, whatever form it takes.