iWhot brings the classic Whot card game online, connecting real players for fast-paced multiplayer matches with voice and text chat, proprietary knockout tournaments, and instant cash out. Available on iOS for iPhone, iPad, and Mac.

My work on this project focused on three areas where the existing implementation had real friction: network reliability, code quality, and communication between players mid-game.

The previous PUN2 (Photon Unity Networking 2) implementation had connectivity bugs that disrupted matches, causing dropped sessions and inconsistent game state across clients. Diagnosing and resolving these issues required tracing the full network event flow to identify where state diverged and where reconnection handling was failing.

Alongside the networking fixes, I addressed a range of code smells accumulated in the codebase: tightening responsibilities, reducing coupling, and improving readability to make future iterations easier to work on.

The third area was in-game voice chat, giving players a direct, low-friction way to communicate during matches without leaving the app.

"Reliable multiplayer is invisible when it works. The goal was to make it disappear."

Technical Contributions

PUN2 connectivity bugs were the most critical fix. The previous implementation had gaps in session recovery and event sequencing that caused match state to desync between clients. Resolving this meant auditing the full Photon event pipeline and tightening the reconnection and room-rejoin logic.

Code quality improvements covered structural issues throughout the project: responsibilities that had drifted into the wrong classes, redundant state management, and patterns that were harder to read than they needed to be. These changes reduced the surface area for future bugs without altering any visible behavior.

In-game voice chat was implemented to let players communicate naturally during matches. The feature integrates directly into the multiplayer session so players can speak without switching apps or external tools.

iWhot: match in progress
Real-time match state kept in sync across all clients after PUN2 fixes.
iWhot: tournament lobby
Knockout tournament lobby with voice chat available throughout the session.
View on App Store →