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