Case study 10 / 10GameOpen source

Watercooler

“An office that forgets”. What if team chat behaved like a real office: heard only by the people in the room when it happens, and gone unless someone writes it on the whiteboard?

At a glance

23headless end-to-end checks
MITlicence for the code
Period
August 2026
Role
Concept and build (with AI coding agents)
Status
Open source — multiplayer not started
Links
github.com/ardiansinurat/watercooler
Entering the focus room: the chat panel shows only what was said after the player walked in. Graphics: LimeZu Modern Interiors (free version, non-commercial licence). Chat lines are the game's built-in placeholder text.

01Problem

What if team chat behaved like a real office: heard only by the people in the room when it happens, and gone unless someone writes it on the whiteboard?

02What I built

A browser-based, RPG-style 2D office. Characters walk a tile map, enter rooms and chat, but a conversation is visible only to whoever is present when it happens. Walk into a busy room and your screen stays empty.

03How it works

  1. Engine from scratch. Pure TypeScript and Canvas 2D: Tiled map loader, collision, depth sorting, camera, A* tap-to-walk, touch d-pad, integer scaling.
  2. Social rules as mechanics. Per-room chat with the forgetting rule, whiteboards, desk notes and coworker bots that sit, type visibly before speaking and make procedural ambient typing sounds.
The forgetting ruleThree characters talk inside a meeting room and see the conversation. A fourth character walks in later and sees an empty chat, except what was written on the room whiteboard.MEETING ROOMWHITEBOARD"ship Friday""can we ship Fri?""yes, if…"LATE ARRIVAL SEES(empty chat)whiteboard: "ship Friday"Heard only by whoever is in the room at the time; kept only if someone writes it down.
Swipe sideways to see the whole diagram. The forgetting rule: walk into a busy room and your screen stays empty — only the whiteboard remembers.

04Results and scale

  • Engine, forgetting mechanic and bot liveliness complete; 23 headless end-to-end checks; multiplayer not started.
  • Code is MIT. Graphics use LimeZu's Modern Interiors pack, which is not redistributed; the free pack is licensed for non-commercial use only.

05Stack

  • TypeScript
  • Canvas 2D
  • Vite
  • Tiled
  • Web Audio
Next case studySipromonConstruction supervision platform