Dragon’s Descent for the Atari 2600


Now for sale at AtariAge!

Also, a forum thread with my development process is on AtariAge here:

https://atariage.com/forums/topic/286017-dragons-descent-rogueliteaction-game/

Whew, it’s been a while since I posted. This month has been a busy month so far! I’ll try and post a little of what I’ve been working on over the last few months, but right now my attention has been focused on a game I made for the Atari 2600: Dragon’s Descent. It’s a roguelike with thousands of possible levels, several enemies, bosses, and secrets all squeezed into 16 kilobytes. I just showed the game at the Roguelike Celebration and Indiecade 2019, and next weekend I’ll be selling physical copies at the Portland Retro Gaming Expo. In a few weeks it should be up for sale at AtariAge, a website that has been a major help and resource for me.

A screenshot of the version for the 2600

Folks seem to like the game – it’s a little tough, given it’s old-school, roguelike influences, but also like it’s ancestors it rewards patience and persistence. You generally get a little better each time (especially with 80’s montage music playing in the background), and you do find more challenges and discoveries as you progress.

Why make a game for the 2600? Several reasons, really. Some of it is paying a debt to the 8 year old who grew up on this stuff, and seeing if I can apply my design and programming experience to developing something in this space. Another is simplicity and looking for elegance – partially due to the creativity-through-constraints, but the flip side of that is finding comfort in scope. Roguelikes in particular suffer from feature creep – when you’re simulating a universe, you can’t be quite sure when to stop. Working in 4-16k makes the bounds a little more concrete. I can also liken it to martial arts training while wearing weights – the boundaries become liberating when you come back to familiar territory and the “weights” are removed.

Level 001001-2

I wrote a little on the level generation code here, and gave a talk about it at the Roguelike Celebration that should be posted soon, if it hasn’t been already.

I’ve ported the game to the Atari 7800, an interesting system that lies at a transition between “2nd” and “3rd” generation consoles (i.e. consoles like the 2600, and consoles like the NES). Programming for it has had me contemplate a lot on the subject of fashions and directions games have moved through over the decades. For all that, the version of Basic that I used to program Dragon’s Descent also works with the 7800, so one graphical and collision system update later I have a working prototype for the (relatively) more powerful machine.

2600 on the left, 7800 on the right

Writing in batari Basic (a version specifically designed for the Atari) let me focus on design elements, instead of wrestling with the oddities of the graphics systems of the 2600. I could mosey with the beam, instead of racing it. It also meant I could do the bulk of the game programming in a few weeks (usually while waiting for other code in my day job to compile) instead of months if I tried this in assembly. Dev time in months also assumes I know what I’m doing in assembly, which I still really don’t 🙂

I’m trying to port this game to a few other systems, it’s simple enough to try on most systems, but (hopefully) engaging enough to be worth porting, and even expand upon. I’m still working on offspring projects from Forska, as well as doing some digital archeology of my juvenalia, but this project let me start and finish a project in a satisfying way that’s been fun to show and watch people play!