July 21, 2005
Geektivity of the Moment
So I'm really getting into this batari BASIC for the Atari 2600, even though the language is still very much a work in progress. The 0.2 release made it much easier to right fairly readable code, losing the need for line numbers and letting variables have arbitrary names instead of being A-Z. I've made that webpage for it, and got Al from AtariAge.com to give bB its own forum. (Actually he made me a moderator of it, which is kind of a novelty for me.)
In about one evening I was able to put together an idea I'd been thinking about for a while, a simple "drumpad" program using the joystick as a simple bass/snare/cymbal drumset. (The game was inspired by Dance Dance Revolution, especially when the steps seem to control the music directly.) That's the screen shot here...it uses the "Pac-Pilgrim" logo of the New England Classic Gamers (minus the beer in one hand and joystick in the other.) You can get the binary here, I'm feeling too lazy to explain how to run it in an emulator. Also, it points out a serious limitation in most emulators: the sound has a noticeable "lag", so the drumming isn't nearly as much fun. In fact, it sort of sucks...I really need to try running this on a real 2600.
I have some slightly mixed feelings about Batari BASIC. On the one hand, it's great, it probably would have taken at least a week for me to program it in assembly language, probably longer to get my chops back, and maybe I never would have gotten up the energy for it. And this BASIC variant is opening up programming to a bunch of Atari fans. The game environment is a bit limited (right now it's two players, two missile graphics, and a score, though he's made up a big pixel "screen memory" that lets you draw on the screen like the old 8-bit computers of the 80s which opens the field to some cool game play ideas) but already boundaries are being stretched.
I know I could make a semi-passable version of JoustPong in this, even better with the features expected in future releases. The games made in Batari BASIC probably won't be as polished as their "true homebrew" brothers, but still, the will be original games that run on real hardware. (Actually people are a little worried about a flood of mediocre homebrews.)
It's funny of think of my alternate-reality self, living in a world where this came out in 2002 or so. (The language compiler itself ain't rocket science, it some ways it's just a big macro that takes simple BASIC statements and writes out the corresponding assembly.) I definitely would have written JoustPong in it, and it would have taken a lot less effort. And I'd probably even call myself an "Atari coder", even though I would have learned so much less and worked so much harder than I have here.
The previous barrier to learning how to code an Atari game really made it kind of elite thing, (even though I tried to lower it a bit with my 2600 101 tutorial) and that's shifted somewhat. It seems to be splitting hairs to say "I programmed a game for the 2600 in Assembly Language" vs "I programmed a game for the 2600" even though the former is a big achievement in a way the latter isn't. You used to have to gain this expertise in archaic things to make a game that could run on the real hardware...now the particulars of that pursuit seem a bit quaint and oddball, since there's a much better effort/reward ratio to just doing it in "BASIC".