Fallen Angel

Inspired by really old games and systems as well as modern games like Super Meat Boy, Fallen Angel is a casual, pure platforming game for the Atari 2600. The graphics are naturally retro 8-bit, and the gameplay and mechanics are intentionally simple -- yet, it's full of features and packed with passion.

Story

Fallen Angel is largely a literal interpretation of the most common retro video game tropes. The game is story-driven, which is something common in modern video games and somewhat absent in older ones. It's a voyage and return story where "the badass saves the princess."

(I know that's vague, but the game really is meant to be played in person and not watched or read about. Reach out to me if you'd like to play it yourself.)

Gameplay

The Atari 2600 with its 6502 assembly is very limiting; just compare it to modern game engines like Unity or Unreal. Due to these limits, I decided I wanted to make a simple game: a pure platformer. What is a pure platformer?

Basically, you run, jump, and collect the thingies.

(And avoid the enemies.)

In the video, first of all: there's a lot going on. This is the 19th-ish level afterall, and I've designed it so all the previous levels, not shown here, prepare the player for the future levels. The player is the white character who's collecting those familiar objects and who's avoiding the spikes, the fireball, and the gray enemies.

Fallen Angel has at least 30 levels, split evenly into three "worlds" where each world ends with a unique boss level.

Audio

Fallen Angel has, in addition to sound effects, 14 unique, hand-crafted tracks. When you hear the Atari 2600's beeps and buzzes, consider that most Atari 2600 games don't have soundtracks at all -- just often high-pitched sound effects. Additionally, I'm using one audio channel for the sound effects, and one for the beat. For comparison, the NES uses 5 audio channels. Not only does this mean that two sound effects don't play at once, but two beat instruments never play at once either.

ROM

The size of the game is no more than 32,000 bytes. For comparison, that's about the size of a cropped screenshot of the game itself, and an indie platformer game on Steam is generally >2 million bytes. My performance engineering skills gratefully improved due to this particular constraint. The code is full of often silly instruction-level optimizations, and I'm especially proud of how I was able to fit so much audio into the game with certain memory-hierarchy optimizations.

RAM

I am granted to work with a whopping 128 bytes of native RAM, which is 0.0000016% the memory of a modern laptop at 8 GB of RAM. Appreciate that we live in the future.

Further info

If you're interested in making an Atari 2600 game, I'd love to provide more details about how I went about it. We have excellent tools available to us that Atari programmers did not have in the 1980s.

If you're in the area and you'd like to play the game, please feel free to contact me.