Played · 2020 lockdown onward

Tabletop Game as a Multiplayer Spreadsheet

Betrayal at House on the Hill as a multiplayer app in Google Sheets, drawn entirely in emoji.

The core idea: build a playable multiplayer game where every graphic is an emoji. No sprites, no art assets, just the characters already on everyone’s phone and laptop, arranged by formulas in a shared Google Sheet.

It started during COVID lockdown. We wanted to keep playing Betrayal at House on the Hill together over video calls. The first version did one thing: a dropdown that showed a card from the deck, sized to fit a phone screen, so whoever drew it could read it.

Then it became a “because we can” project, and each step made the next one obvious:

  • The deck. Draw cards from a dropdown, displayed at phone size.
  • Inventory. Track which cards each player is holding, marked with emoji like 🧩 and 📦.
  • Health. Every character gets a tab for Speed, Might, Sanity and Knowledge, with emoji status and a 💀 when a trait runs out.
  • The house. The map is stored in the sheet as rooms are discovered, and shown two ways (see below).
  • Tile rotation. Each room knows which sides have doors, and a rotation formula turns it to match how it was placed.
  • Dice. Rolls happen in the sheet itself, so nobody has to trust anyone’s camera angle.

Two views of the house

  • The table view. Scanned images of the real room tiles, rotated and laid out so the board looks the way it would on a table.
  • The UI view. The emoji version. Each room is color-coded, and shows the players in it as emoji along with their inventory and health, also in emoji. Tokens in the room appear as emoji too, and cell formulas open the doorways to reveal which passages connect.

To make that work, the sheet carries its own reference of the full emoji set, code points and names, so formulas can pick the right glyph for every room, item, character and state.

By the end it was a full game table in a spreadsheet: a dashboard, a tab for every character, house setup, a haunt chart, tiles, cards and player resources, with thousands of formulas behind it and everyone at the table playing from the same live sheet.

Later it grew into a plan for a JSON-driven web version of the same game.

A fan project. Betrayal at House on the Hill belongs to Avalon Hill.