Games for the GameBoy Advance

Duration

Feb - May 2021 (3 months)

Type

Type: GBA (32-bit handheld console, 240 × 160 px)

Language

C

Tools

Usenti, VisualBoyAdvance, Audacity, Pixilart, Visual Studio Code

Banner
Overview

Overview

As part of my Media Device Architectures course at Georgia Tech, I programmed five arcade-style games for the Game Boy Advance (GBA), including one original game. This was a unique experience using an older gaming platform, where I learned to work with GBA's hardware architecture, to deal with limited memory, and how it all works from the zeros and the ones.

Hello Pigeon

Original Game

Let's Get This Bread

In my original game, Let's Get This Bread, players help a hungry pigeon collect coins through various minigames to purchase bread (and not starve).

Home lawn

The pigeon starts out on a bare home lawn, equipped with 50% health and 0 coins. As the player plays more games and collects more coins, they can decorate the lawn with flowers from the shop.

Bread: Home

Minigame 1: The field

A simple jumping game where the pigeon tries to collect coins and avoid bombs. The pigeon loses one health point when the game ends.

Bread: Field

Minigame 2: The casino

A tile matching game, but with a twist. Flip two cards of the same color, and the pigeon collects a coin. Flip two "bomb" cards, and the game ends immediately.

Bread: Casino

The store

This is where players can buy bread to increase their health and buy flowers to spruce up their home lawn.

Bread: Store
The player buys three pieces of bread and one orange flower from the store.
Bread: Lawn with flowers
Pigeon stares fondly at two flowers from the store.

Hidden cheat

With a secret configuration of button clicks and five coins, players can try to unlock a cheat that grants them unlimited health and perks in the minigames.

Bread: Cheat
Players must roll doubles on the dice to unlock a cheat.

Transition screens

The process

I began the brainstorming and planning process for this game with some sketches and a write-up of my proposed gameplay, where I solidified my plans for the premise of the game.

Bread: Sketches

Working in milestones, I first added in the transition screens, home screen, and minigame screens, and incorporated general movement and controls. I then developed the gameplay for each level and added in the store. Lastly, I integrated art, music and sounds, and the cheat feature. At each phase, I received feedback from my teaching assistant on improvements I could make.

For the game’s art, I drew some of it myself, such as most of the sprites (characters and objects) below, while I took the rest from online, touched them up, and converted them for the GBA.

Bread: Spritesheet
A spritesheet of sprites I drew for the game
Recreating Games

Other games

Before working on Lets Get This Bread, I also recreated four popular arcade games to practice developing for the GBA.

Tetris

The classic; stack blocks together to form complete rows!

Tetris

Frogger

Get the frog across a busy road without bumping into any cars.

Frogger

Missile Command

Navigate the cursor to destroy missiles before they hit the ground.

Missile Command

Pong

Ping pong, but in pixels.

Pong
Reflection

Learning from the oldies

Programming these games was a gratifying challenge, and I was really pleased with what I was able to accomplish during the three months. Because of the nature of the GBA, these projects were fairly technically focused. I learned to deal with

Working with these technical limitations helped me appreciate all the advanced tools and frameworks we have for developing games today. Using outdated programs and tools that weren't made specifically for games encouraged me to work through logic and understand how computers work on a deeper level. These efforts made the projects all the more rewarding to complete.

Goodbye Pigeon