Warning: long post, which I am writing mainly because I will forget most of this information soon and want to get it down somewhere.
I learned to program in 4th grade, around 1998. The first game I wrote was a text-based Pokemon battle game. Eventually, I found Visual MacStandardBasic and GameMaker by Al Staffieri and made the sorts of programs one would expect a middle school student to make.
I discovered iDevGames in 2003 just one week before the entry deadline for uDevGame (no trailing ‘s’). In a now-familiar burst of productivity, I wrote AstroBattle in VisualMacStandardBasic. It was very simple, with two human-controlled ships trying to hit each other with short lasers. In retrospect, it was a bit like Joust, but without AI. Not knowing a thing about how to render graphics, I drew both players by putting two picture controls on a form and changing their positions in code. I didn’t do well in the contest, but I got my first taste of real game programming.
Soon after the end of the 2003 contest, I discovered MetaL BASIC, an easy but limited language that made it easy to draw graphics, get keyboard input, and play audio. I wrote a game called Canvas Wars after a few months of experimentation and entered it in a small iDG contest. The object of the game was to cover the screen with your color of paint, laid down by something like a toy car, if a toy car was a circle with a line indicating direction. Some feedback excerpts from an old, old topic on Jake Leveto’s web site:
…this game is very simple and funny, the graphics are poor and little developed, the main idea is original but the CPU player is totally random and don’t offer any difficulty (to win the game, simply follow your opponent, covering its color).
Very original idea… unfortunately graphics are lacking. Menu colors and stuff are pretty cool, but the options/setup menu is too flashy (no, literally).
…very original, and had lots of cool power-ups. Not much replay value.
I cleaned up Canvas Wars and released a 1.1 version that got some nice reviews on MacUpdate. You can’t get it anymore.
The first “21 Days Later” contest was during the spring of 2004. I wanted to clone an old Mac Classic game called Continuum. I called my entry PastBlasters. It was a top-down free-scrolling indoor spaceship shooting game, with all sprites rendered as scalable vector graphics. In retrospect, I had already outgrown MetaL BASIC – it had no functions, no return statements, no parameter passing, and no data types beyond primitives and arrays. To get around these limitations, I was simulating parameter passing with “param1, param2…” globals and simulating structs with multidimensional arrays. I was reading books about Java, but none of them gave me any information about displaying raw graphics rather than GUI components, so I felt stuck. I didn’t do well in the contest, in part because someone else made essentially the same game as I did, but better.
I drew up a somewhat more ambitious plan for uDevGame 2004. I wanted to make four games in one. The best one was an isometric dungeon escape puzzle game. It worked well and was relatively engaging. The other three turned into two and were relatively uninteresting – a half-baked artillery game and a half-baked boat game. I did better than I had done the previous year, but I was still in the bottom 50%. I don’t even remember what the game was called, and I can’t retrieve it due to the Great Hard Drive Wipe of ’04.
In early 2005, I became a beta tester for BlitzMax, an environment tailored specifically to games. The language was clunky, but it was fast and well-supported. The first game I made was Canvas Wars 2, which never really got released, even though all the major features had been implemented. After Canvas Wars 2, I started working on a PastBlasters remake called gw0rp. (Here’s the old iDevGames topic I posted about it.) I lost interest in it after a while.
I participated in some contests, but didn’t get very far until 2005, when Will Hogben and I took first place in the first Original Mac Games contest. (No, Freeverse never published Escort Wing 2. I was never involved in it.)
I didn’t enter uDevGame 2005, but there was a 21 Days Later for 2006, which I won with Artack. First prize for that contest was Stone Design’s Create, which I used to produce gw0rp’s design document this year. I would have made Artack 2, but Sketchfighter came out the December after the contest, and I decided that there were enough After that, I stopped making games for a while, concentrating on homework and other hobbies during my first year of college.
I had experimented with Python in 2007, but the PyGame library frustrated me then, and continues to do so today. In 2008, I read about Pyglet and started using Python again, with a reimplementation of gw0rp as my first project. This time, I stopped even earlier because it ceased to be interesting. I kept writing in Python, though, and eventually entered PyWeek 7 with Josh Cender. The game we made was called Elite Bungie Chopper Squadron. Josh took care of most of the coding, but having a part in completing a game with Python did wonders for my ego.
The gw0rp you will see this year is not like the gw0rp I described earlier in this post. “Old gw0rp” was a fairly unoriginal SketchFighter-like game. “New gw0rp” shares many qualities with “old gw0rp,” but is much more interesting, and much more worthy of the name “gw0rp.”
Now you have my background, and I can start writing real posts.
Comment on this post on my web site.