Back to projects
ShippedRPGWebGL
Fishing Town
Shipped rod-enhance, repair, inventory, and telemetry features in a focused 5-day release sprint on a live title.
- Role
- Client / UI Engineer
- Period
- 2021
- Platforms
- WebGL

Fishing Town is a server-authoritative fishing RPG built by a large team. I contributed as one client / UI engineer during an intense 5-day release sprint (42 commits, ~19 code-bearing, roughly +750/−330 lines of C#), shipping rod-enhancement, repair, inventory, currency, and telemetry features.
What I built
- Rod enhancement — the upgrade detail panel (per-rarity catch-rate tables with a color-coded next-level preview), server-driven requirements, an optional protection / “blessing” toggle, pre-flight cost validation with precise “Not Enough X” messages, and success / fail feedback.
- Repair system — a new “rods in the blacksmith” status screen (infinite-scroll), enhance-level-aware repair pricing, and a live repair-completion countdown.
- Inventory — material stacking, single-rod in-place refresh, and type-aware sorting (fish by rarity / id / size, rods by rarity / id / enhance).
- Currency & deposit — widened the in-game currency to
longfor large balances and hardened the deposit flow withTryParseand explicit error popups instead of throwing parses. - Telemetry & gating — built on the sprint’s final day: a fire-and-forget activity-log system instrumented across the entire fishing loop (every action, every outcome, every map transition), and a boot-time server-status check that blocks play during maintenance windows.
Engineering notes
- Worked within an existing finite-state-machine UI architecture, adding each new screen as a state + panel consistently with the codebase’s patterns.
- Under release pressure, the sprint leaned hard into defensive hardening — throwing parses swapped for
TryParse, null-ownership and negative-duration guards, re-entrant particle feedback — the unglamorous work that decides whether a feature survives contact with real players.


