Skip to content
Back to projects
GamesCompleted

Coffee, Cats & Cakes

A finished co-op café game played together over the internet through Supabase.

Barista station with grinder, espresso machine, steamer and brewer
Genre
Co-op management game
Players
2 players, online
Status
Completed
My role
Design & development

Technologies

  • Supabase
  • Web
  • Realtime Multiplayer
  • Game Design

Overview

A browser-based co-op game where two people run the same café. An older, finished project — it was where I first worked out how to share a multiplayer game’s state across a network.

Host and peer: syncing through Supabase

The game’s technical backbone runs on Supabase. Instead of writing my own game server, I chose a model where one of the players becomes the host: the host holds the authoritative state and relays changes to the other player through Supabase.

That choice simplified most of the work, but in exchange it kept putting one question in front of me: which information should be sent? Sending every frame in full is wasteful and slow; sending too little means the two players end up playing different games.

What ended up being sent was not the state itself but the events that change it — "this ingredient was picked up", "this order was delivered". It was the first time I learned to send intent over a network rather than data.

One shared counter

The design rests on a single constraint: two players share one kitchen but can never be in the same place at the same time. One plays barista, the other patissier, and both watch the same order queue.

When an Americano and a Brownie arrive on the same ticket, the division of labour writes itself. Who takes what, who runs to the service window — the game never says; the players negotiate it out loud.

The café is not a single screen but a set of walls facing each other: the station, the pantry, the service window. Because every move between walls costs time, players learn to plan recipe steps by geography.

Three cats

The cats are not random noise; each sits at a different wall and forces a different decision.

Duman settles into his bed at the service window — while he is there every delivery scores ×1.5. Petting him keeps him longer but eats your time. Şeker parks in front of a pantry shelf, locks it and knocks whatever you are holding out of your hands. Gölge watches through the dark window: you get 1.5 seconds to tap the glass, and if you make it the sabotage is blocked.

This game showed me that tuning difficulty through the cats is far more fun than tuning it through order volume. More interesting obstacles beat more work.

Gallery

  • Duman, Şeker and Gölge
    Three cats, three walls, three different decisions.
  • The service window
    The service window, where orders finally leave the queue.

Other projects