Inspiration
Underwater game jams are full of "swim around and collect trash" games. We wanted the opposite. So you don't play the cleanup crew, you play the Don of the river: a morally-grey mafia boss, inspired by the film Sarkar, who protects his fish and makes problems "disappear." The environmental message sits under the fun instead of on top of it.
What it does
Catfish Chaos: HONK! is a browser game with four story chapters. In each one, a top-hatted henchman fish brings a citizen's problem to Sir Reginald: a buried nursery, leaking chemical drums, a poisoned outflow pipe. You fix it by swimming in, hauling junk off the riverbed, and wrenching the outflow valve shut.
Every problem traces back to the Land Mafia, and it ends in an underwater fight with Don Vitale in a scuba suit. Cleaning each stretch is its own reward: the water clears from sludge-brown to blue as you work. Every chapter closes on a real, cited environmental fact, and the ending turns the lens on the freshwater biodiversity collapse and the water that data centers burn to train AI like the models that made this game. Also, PRESS H TO HONK
How we built it
Every character in the game was generated with Google Gemini. Sir Reginald the catfish, the whole cast of citizen fish and top-hatted henchmen, Don Vitale in his fedora and in his scuba suit, and his defeated X-eyed sprite: all of them started as Gemini image generations, which we then sliced into game-ready frames with a custom sharp pipeline. The look of the game, and most of its personality, comes straight from those Gemini sprites.
Around that art we built the game in React Three Fiber, so the 2D pixel sprites sit inside a real 3D underwater scene with fog, light shafts, bloom, and parallax depth. The rest is TypeScript, Vite, and Zustand for the level state machine, with procedural audio through the Web Audio API. It runs on Vercel.
Challenges we ran into
Getting flat Gemini sprites to sit convincingly in a 3D scene took some work on billboard aspect-ratios, so the animation frames stopped clipping at the edges. Keeping the boss fight to one reusable mechanic (grab a barrel, throw it back) kept the scope realistic for the time we had.
The hardest part was the message. We wanted the environmental angle to land without lecturing, so the mechanics carry it and each level ends on a single fact instead of a speech.
Accomplishments we're proud of
A finished four-level game, cutscenes and all, built and deployed inside a 10-hour jam. It has a full underwater boss fight and a last stand death: when Reginald runs out of health his hat floats off, a cigar drops into his mouth, and you get one more shot before it's over.
What we learned
A strong set of Gemini-made characters can carry the whole feel of a game. And the environmental message lands best when the player wants the clean river for selfish, in-game reasons, not because the game told them to care.
What's next
Live Gemini integration: a consult the Don feature where Gemini plays Sir Reginald and answers real questions about rivers and water conservation, plus Gemini-generated case files for new, procedurally created river-monster problems.
Built With
- google-gemini
- html5
- react
- react-three-fiber
- three.js
- typescript
- vercel
- vite
- web-audio-api
- zustand
Log in or sign up for Devpost to join the conversation.