Case study · Roblox

Stack or Sink

A mobile-first competitive physics game on Roblox: grab real-world objects, stack a tower to climb, throw things at rivals, and stay above the rising hazard.

Role
Game Designer / Developer
Years
2026 — now
Status
Live
Open Play on Roblox
Stack or Sink screenshot

The problem

Building a fair, physics-heavy multiplayer game where players can't cheat, and shipping it repeatably.

What it does

  • Grab, carry, place and climb, with throw, catch and deflect counterplay and ragdoll physics.
  • Five hazards (flood, lava, acid, sand, snow) and five match formats, including bot-filled matches and team doubles.
  • Onboarding, XP progression, parties, badges, daily objectives and leaderboards.
  • Cosmetic-only purchases, with a live kill switch for the shop.

How it's built

  • Luau with strict typing, synced from files with Rojo; server services and client controllers kept separate, with tuning in one config.
  • Roblox DataStores for versioned player profiles; publishing through the Roblox Open Cloud API.

Engineering decisions

  • Never trust the client: the server decides every grab, hit, catch, score and reward.
  • A "project brain" of locked rules (mobile-first, no pay-to-win) that every human and AI contributor reads first.
  • Reproducible publishing: each release is built from committed code only, tested on that exact file, and the last 10 publishes are hashed for rollback.
  • Hundreds of automated tests in Studio, locally and in CI, plus a type-check ratchet that only lets errors go down.
  • Honest numbers: a test checks the README's figures against the repo, and a conclusion drawn from a funnel step that never fired was retracted.