OXO

  • Studio Fishagon LLC
  • Platform Game Boy Color
  • Built with GB# (C#)
  • Position Developer
See on itch.io

Game Description

Three in a row. Then do it again before the board buries you.

OXO is a falling block puzzler for the Game Boy Color. X's and O's drop into a six-by-twelve well. Line up three or more of the same mark in any direction, across, down or either diagonal, and they clear. If the pieces that fall into the gap line up too, the chain multiplier climbs and the next clear is worth more.

The board fights back. Blockers never match and only clear when you make a match next to them. Trapped pieces won't match until you land a piece on top to break them open. Jokers count as both X and O. Garbage rows push up from the bottom when you go too long without clearing, and gravity ramps up with every piece you place.

Development

OXO is a port of my PICO-8 game, and the first real game built with GB#, my C#-to-Game Boy toolchain. It is written in C#, compiled by GB# into a native Game Boy Color ROM, and published as desktop builds that bundle the GB# player. Building a complete game with the toolchain was how I tested it.

I also ported it to Playdate in Lua with the same rules and timing, plus an online leaderboard.

  • Matching & Chains
    • Matches in four directions, with jokers resolving to whichever run scores most
    • Blockers next to a clear break too
  • Spawn Director
    • Biases X and O drops toward the mark the board has fewer setups for
    • Schedules jokers, blockers, trapped pieces and garbage with lockouts
    • An anti-stall rule raises the garbage-row chance when you stop matching
  • Integer-Only Scoring
    • Chain and board-pressure multipliers with no floating point, which the Game Boy CPU doesn’t have
  • Battery-Backed High Score
    • A checksummed save record in cartridge SRAM, written through GB#’s native C escape hatch
  • Hardware Sound
    • A table-driven sequencer on the raw pulse and noise channels, with a heartbeat loop under pressure
    • Moved to a second ROM bank to free space in bank 0
  • Playdate Port
    • A cross-platform online leaderboard with offline-first score submission and arcade initials
    • 218 automated checks running in the Playdate Simulator