This was my entry to the 4th Ludum Dare 48-hour game competition, back in April of 2004. At the time I had been dabbling with GBA programming, and the limited nature of the platform seemed well-suited to the theme. I asked on the forums and was approved to some simple base code – a few convenience functions and a lot of #defines to make it easier to access the sound and graphics hardware. In theory I made them available to everyone, though nobody else had the slightest interest in targeting the platform. This would arguably violate the current LD rules, but ultimately the functionality included amounted to far less than you would get from many allowed libraries on other platforms, such as pygame.
The theme for the 4th LD48 was “Infection,” or more generally, “Things That Spread.” Having recently watched a certain episode of DS9 involving time travel, I quickly came up with the basic idea for “The Trouble with Tribbles” and commenced work. I’ve lost the source, and the controls are hardly ideal, but the game is playable, has relatively few bugs, and even involves a certain amount of strategy. Overall, I was pretty pleased with the result.
Originally, I envisioned using some trickery to get 1024 sprites rendering at once (the GBA natively supports only 128), but at the end of the first day I had not gotten that working yet and was forced to scrap it for the good of the project.
You’ll need a GBA emulator to run it, obviously; I recommend VisualBoy Advance, which is a very small download and quite stable.
(for notes on the controls, see below)
Controls are fairly straightforward. The d-pad (arrow keys by default in VisualBoyAdvance) moves your character around the screen. Press and hold the A button (Z by default) to activate your radiation field, killing nearby tribbles. The longer you hold A, the stronger the field becomes, but the field hurts you as well as the tribbles, so you have to be keep an eye on the rad meter in the top-left corner. If it fills up all the way, your ensign will die and you’ll start over at the ship view.
The controls at the ship level view are rather terrible and unintuitive, but fairly simple once they’re explained. Left and right simply cycle through the rooms you can move to; this will always be limited to the current room (you start in the engine room) or one of the rooms connected to it by a green line on the map.