Ki Warden — Game Boy Colour Survival Shooter • Targeting Platforms
Platform: Nintendo Game Boy Colour • Language: RGBDS Assembly • Role: Solo Developer • Focus: hardware constraints, enemy behaviour, audio, scoring, HUD, game states
Overview
Ki Warden is a small survival shooter developed for the Nintendo Game Boy Colour using RGBDS assembly. The player controls a Ki Warden fighting hostile spirits inside a temple-style arena, surviving through advancing days while enemies scale, the score climbs, and Ki wave charges become more valuable.
Unlike my Unity and Unreal projects, this game was built close to the metal. I worked directly with Game Boy hardware concepts such as joypad input, OAM sprite drawing, VRAM tile loading, background tilemaps, CGB palettes, VBlank-safe updates, and sound registers rather than relying on a modern engine. It is tiny-machine swordplay, but with bytes instead of steel.
Core gameplay loop showing movement, projectile firing, spirit enemies, score, day progression, health, and Ki wave charges.
Links
Technical Snapshot
- Target platform: Nintendo Game Boy Colour ROM built with RGBDS.
- Game states: title screen, gameplay, game over, restart flow, high score handling.
- Rendering: sprite/OAM drawing, manual tile loading, background tilemaps, and custom CGB palette attributes.
- Gameplay: D-Pad movement, A-button projectile shooting, B-button Ki wave ability, health, invulnerability feedback, scoring, and day progression.
- Enemies: chasing, wandering, and phase spirits using simple behaviours tuned for limited CPU and memory.
- Audio: sound effects and music produced through Game Boy sound registers rather than audio files.
What I Built
Game State Flow and Presentation
I built the full game flow around title, gameplay, and game-over states. Each state controls its own background presentation, input behaviour, music, and transition rules, so the ROM feels like a complete handheld game rather than a loose prototype.
- Created a title screen, gameplay arena, and game-over screen using background tilemaps.
- Added Start-button flow for starting and restarting the game.
- Implemented high score display so the game keeps a clearer sense of progression after failure.
Temple Arena, HUD, and Sprite Feedback
The gameplay space uses a temple-style arena with HUD icons for health, day, score, and Ki wave charges. I used sprite feedback, flashing, knockback, and temporary invulnerability to make hits readable on a very small screen.
- Drew player, enemy, projectile, Ki wave, and HUD sprites through OAM.
- Used simple sprite states to show damage, invulnerability, enemy hits, and player feedback.
- Kept presentation readable within the Game Boy Colour screen and sprite constraints.
Enemy Behaviour and Day Scaling
Ki Warden uses multiple spirit behaviours so the arena changes over time. Chasing spirits pressure the player directly, wandering spirits create unpredictable movement across the arena, and phase spirits teleport near the player later in progression.
Enemy behaviour and day scaling, showing different spirit types and the active enemy cap in play.
- Implemented chasing, wandering, and phase spirit behaviour types.
- Added four active enemy slots and an active cap to keep the game performant on the target hardware.
- Scaled enemy count and behaviour availability through day progression.
Ki Projectiles and Ki Wave Ability
The player can fire standard Ki projectiles and use a stronger Ki wave ability with limited charges. The Ki wave has its own timer, collision checks, cooldown behaviour, and HUD display so it works as a tactical panic button rather than endless sparkle spam.
Ki projectile and Ki wave behaviour, including charge usage, cooldown, enemy collision, and HUD feedback.
- Built projectile movement and enemy collision checks.
- Added a Ki wave ability with limited charges, visual sprites, collision, and cooldown recovery.
- Increased maximum Ki wave charges every 10 days to reward survival and raise late-game power.
Game Boy Colour Audio
Music and sound effects were produced through Game Boy sound registers instead of imported audio. The game includes sound effects for shooting, Ki wave use, enemy hits, player damage, starting/restarting, and game over, with music for title, gameplay, and game-over states.
Audio showcase for title music, gameplay music, game-over music, and sound effects. This video keeps audio enabled, so it uses controls instead of muted autoplay.
- Initialised and controlled Game Boy sound hardware directly.
- Created short sound effects for important combat and state changes.
- Added title, gameplay, and game-over music, with gameplay tempo increasing as the day count rises.
Building the ROM
The project builds through RGBDS by assembling the main source file, linking it into a Game Boy Colour ROM, and applying rgbfix so the output is a valid .gbc file.
rgbasm -o main.o main.asm
rgblink -o KiWarden.gbc main.o
rgbfix -v -C -p 0 KiWarden.gbc Technical Challenges
Working inside hardware limits
The biggest challenge was building a complete game loop while staying inside the constraints of the Game Boy Colour. Every behaviour had to be simple enough to run consistently, and every piece of state had to be managed manually.
Making feedback readable on a small screen
Because the display is small and the sprite budget is limited, feedback had to be clear and economical. I used a focused HUD, compact sprites, flashing, knockback, and direct audio cues to make the game state understandable quickly.
Balancing progression with limited enemy slots
Rather than flooding the screen with enemies, I used day progression, spirit variants, Ki wave charge rewards, and score goals to create escalation within the small active enemy cap.
What I Learned
- How to structure a complete game loop in RGBDS assembly.
- How to work directly with Game Boy Colour input, sprites, VRAM, palettes, sound registers, and VBlank timing.
- How to design enemy behaviours that are readable and cheap enough for constrained hardware.
- How to use small amounts of feedback, audio, and progression to make a tiny ROM feel more complete.
Current Status
Ki Warden is a complete assessment-ready Game Boy Colour survival shooter prototype with title, gameplay, game-over flow, enemy variants, scoring, day progression, Ki wave charges, HUD feedback, sound effects, and music. It is small, sharp, and stubbornly handmade.