Inspiration
Fishing games are usually calm and solitary, while rhythm games are fast and energetic. I wanted to combine those opposite feelings into a playful social experience: three friends relaxing around one pond, then suddenly working together when a fish bites.
What it does
Pond Beat is a browser-based, three-player cooperative fishing rhythm game.
Players create a room, share a short invite code, and choose one of three characters: a rabbit, raccoon, or fox. They take turns casting into the same pond, reacting to bites, and tapping to the rhythm to reel in fish.
Casting deeper creates a meaningful risk-and-reward choice. Deep water contains rarer fish, but it also increases the tempo and note density. After six individual turns, all three players enter a synchronized final challenge and combine their rhythms to catch the legendary Moonlight Shark.
The game supports Korean and English, desktop and mobile input, reconnection, and a solo testing mode.
How we built it
I built Pond Beat with TypeScript, React, and Phaser 3. Phaser powers the fishing interactions, animations, rhythm lanes, timing judgments, scoring, and cooperative finale.
I built the multiplayer room system with Cloudflare Workers and D1, using Drizzle ORM to define the database schema. The server controls player authentication, turn order, room progression, and result validation so that every player sees a consistent match.
I based rhythm judgments on real timestamps rather than frame counts. This keeps the timing consistent across devices with different performance levels. I also created adjustable controls for BPM, timing windows, lives, bite timing, and casting duration so I could rapidly test and balance the game.
I used OpenAI Codex with GPT-5.6 as my primary development collaborator. It helped me turn my initial concept into a complete game specification, implement the client and server systems, improve multiplayer edge cases, add bilingual support, and continuously verify the project through production builds, linting, and automated tests.
Challenges we ran into
The biggest challenge was combining precise rhythm gameplay with multiplayer state.
Players may refresh, reconnect, submit a result twice, or experience different network delays. I addressed these situations with a server-authoritative state machine, player tokens, request nonces, result validation, and retry handling.
The cooperative finale was another major challenge. All three players need to begin at nearly the same moment, complete separate rhythm patterns, and wait for every result before the final outcome is revealed. I designed the finale so that one early failure does not interrupt the other players, preserving suspense until everyone finishes.
I also had to make the controls feel natural on both phones and desktops. Mouse, touch, Space, and Enter all needed to work without accidental double inputs.
Accomplishments that we're proud of
I am proud that Pond Beat is more than a single-player prototype. It delivers a complete multiplayer loop: room creation, character selection, turn-based fishing, depth-based difficulty, scoring, reconnection, and a three-player cooperative finale.
Because I developed the project alone, testing a three-player game was especially difficult. To solve this, I created a solo developer mode that lets me simulate all three characters, all six fishing turns, and every role in the cooperative finale from one device. This dramatically shortened my testing cycle and made it possible to verify a complete multiplayer match independently.
What we learned
I learned that multiplayer rhythm games require timing and networking to be designed together from the beginning. A visually synchronized animation is not enough—the server state, input timestamps, retries, and transitions must all agree.
I also learned how valuable adjustable balancing tools are. Small changes to tempo, judgment windows, and note density completely changed how fair and satisfying each catch felt.
Most importantly, I learned how to use Codex as an active engineering collaborator across design, implementation, debugging, and verification instead of treating AI as a one-time code generator.
What's next for Pond Beat
Next, I want to add more ponds, fish, rhythm patterns, character animations, and cooperative boss encounters. I would also like to introduce collectible records, accessibility options, custom rooms, and seasonal events while preserving the simple one-button gameplay that makes Pond Beat easy to enjoy together.
Built With
- cloudflared1
- cloudflareworkers
- css
- drizzleorm
- gpt-5.6
- html5
- openaicodex
- openaisite
- phaser3
- react
- typescript
- webaudioapi
Log in or sign up for Devpost to join the conversation.