Farewell, DS Homebrew

It’s time for me to say goodbye to the DS. I’ve been working on DS homebrew projects in my spare time since March 2007, and I’ve learned a huge amount doing so. However, I’ve noticed recently that I’m not really learning much from any of the new projects I work on. It’s still hugely enjoyable, particularly now that I can get games whipped up in a few days and polished for release in a few weeks, but I’m just repeating the same patterns in the same language. Worse, there isn’t an audience for DS homebrew any more. The audience, and most of the developers, have moved over to iOS and Android devices. The DS itself is two generations out of date.

To be honest, I wanted to ditch the DS back when Quirky switched to Android development. In fact, I wanted to ditch the DS as soon as Apple announced officially-supported apps for the iPhone. I’ve stuck with it for three reasons:

  • I wanted to see Woopsi through to completion;
  • The iPhone’s input devices aren’t a patch on the DS’ physical buttons for the kind of games I enjoy playing;
  • Having grown up playing Atari, Sega and Nintendo consoles, actually writing software for one fills me with childlike delight.

I’ve achieved everything I set out to with the DS. I’ve written developer tools, libraries and games for a handheld console, and even entered a homebrewing competition. EarthShakerDS placed 7th out of 24 in GBATemp’s homebrew bounty competition, which isn’t bad for a game knocked up in a couple of weeks.

It’s time to move on.

I do have a few updates to release before I say goodbye to devKitARM - bugfixes to Woopsi, WoopsiGfx and EarthShakerDS, and Really Bad Eggs will get a final release as soon as the title screen is done. I won’t be starting any new DS projects, though.

Unlike Quirky, I’m switching to Apple development. My current project is to port Really Bad Eggs from C++/DS/SDL to Objective-C/cocos2d. I know that I could just use the C++ version on the Mac, but I want to learn Objective-C. Porting something I’ve recently written seems like a good first project. The game engine and AI are already running; I/O is next in the list.


EarthShakerDS Release #4

EarthShakerDS has had two releases since the last post. Here’s the latest:

At this point, the game is complete. All levels are in place, a host of bugs have been squashed, everything seems to work as expected, the code is commented and there’s not much left that could be refactored.

I’m quite pleased with the outcome. One of my homebrew heroes is Richard Quirk, who has written about half a dozen fantastic remakes of Spectrum games for the GBA and NDS (and, most recently, Android). I’ve tried to achieve the same level of polish and communicate the same level of affection for the source material that Quirky gets across with his remakes. I don’t know if I succeeded, but I certainly enjoyed the attempt.

All that remains to do is a level editor.

EDIT: Although I commit to source control a lot - Mercurial has changed the way I code more than anything else I can think of - I tend to only commit working code. That means it’s easy to get a working build from just about any revision of the EarthShakerDS repository. I went through a dozen or so revisions at random, built them, and stuck them in the zip below. It’s interesting to see how the game grew and developed over time.