Metroid Crawl - A Twitch Chat Dungeon Crawler


A multiplayer fog-of-war dungeon crawler driven entirely by Twitch chat. Everyone who chats joins automatically. Move with up, down, left, right. Explore a shared map, grab items, fight bosses, and gang up on Mother Brain.

The source code can be found on GitHub.

Demo

Single-player crawl:

Multiplayer chaos:

How It Works

The game connects to Twitch chat via an anonymous read-only IRC connection (no auth tokens needed). Recent chatters from the last hour are auto-seeded into the lobby. Click Start the crawl and everyone spawns in the center of a procedurally generated map.

Chat commands are simple: u, d, l, r (or up, down, left, right). Repeat letters like uu or uuu to dodge Twitch's duplicate-message filter. Moves are rate-limited to one per second, but mobility items like Speed Booster and Space Jump reduce the cooldown.

The Map

The board is a Voronoi-seeded grid divided into Super Metroid zones: Crateria, Brinstar, Norfair, Maridia, Wrecked Ship, and Tourian. Items and bosses spawn in their canonical home zones, so reaching Norfair items costs heat damage and Maridia items are slow to get to without the Gravity Suit.

Tourian stays locked behind a gate until the Golden Four (Kraid, Ridley, Phantoon, Draygon) are all defeated, just like the real game.

Combat

Bump an enemy to attack. They block the tile and hit back, draining energy from every adjacent attacker. Drop to zero and you're eliminated for the round. Bosses range from Spore Spawn to Mother Brain, each with scaled HP.

Items follow Super Metroid logic: beams stack damage (Plasma +13, Screw Attack +12, Wave +9), ammo scales per unit held (Supers +4 each, Missiles +2 each), Energy Tanks add +100 max HP and full heal, and suits halve incoming damage.

Norfair burns 18 HP per step without the Varia Suit. Maridia slows movement +2 seconds without the Gravity Suit.

End Game

The round ends the moment Mother Brain dies. In solo mode (default), whoever lands the killing blow wins. In ?mode=collab, the whole team wins together.

Configuration

The game is designed as an OBS Browser Source. Drop the URL in and it auto-scales to fit. Query params for tuning:

ParamEffect
?mode=solo\|collabFree-for-all vs co-op
?difficulty=1.5Scale enemy/boss HP and counter-damage (0.5-5)
?size=16Square map size (8-30)
?cols=20&rows=15Custom map dimensions
?autoPlay=falseRequire !play to join instead of auto-join

Built with React, TypeScript, Vite, and tmi.js.




Main

Site

Metroid

Game Dev

Tags