top of page

The Whisperer

Social media simulation · Unity 6000.0.34f1 · Web (demo)

My Role

Technical Game Designer (Systems Designer focus)
Sole in-engine developer; teammates contributed narrative content for posts.

Project At a Glance

Play as an anonymous social media user during a fictionalized version of Iran's 2022 protests. Scroll a feed of incoming content, decide what to amplify, then choose platform, tags, caption, and timing, each choice shifts the balance between engagement and surveillance risk.

Project Information

  • Type: Course project (OCAD University, Digital Futures)

  • Genre: Social media simulation, turn-based narrative strategy

  • Engine: Unity 6000.0.34f1

  • Platform: Web (demo); target was Mobile

  • Team size: 3 (I handled all in-engine implementation)

  • Duration: 7 weeks

網格瓷磚圖案

What I Built

My Contributions

I handled all in-engine implementation and authored all 420 tag/caption entries. Teammates contributed narrative content for posts.

  • Built the core data pipeline: a ScriptableObject-based post structure paired with a CSV-backed dictionary for tag/caption lookup, so I could author and tune content outside the engine without touching code.

  • Implemented the 6-step posting flow (feed, post detail, platform, tags, caption, confirm), with each step reading from and writing to a shared post object independently. Touch-friendly navigation included.

  • Designed the risk/engagement formula: platform multipliers, tag stacking, time-of-day curves. Different combinations produce noticeably different outcomes in reach and surveillance risk.

  • Built the day/hour cycle and post lifecycle: posts spawn, accumulate engagement and risk over time, and feed into end-of-day summaries that generate next-morning consequences.

  • Created daily summary and morning report screens to close the feedback loop, showing per-post results and triggering events like surveillance warnings or account flags.


Key Design & Tech Challenges

Building a consequence-driven system that respects its subject matter

  • Problem: the game has 4 decision axes (platform, tags, caption, timing) that all need to produce meaningfully different outcomes. And because the subject is Iran's 2022 protests, those outcomes can't just be score optimization: high engagement has to come with real risk, with no safe "win" path.

  • What I did:

    • Gave each platform a distinct risk/reach profile (WhatsUp = high risk, high reach; TeleM = low risk, niche audience). Tags stack additively, each carrying its own engagement and risk values by style. Time-of-day curves make morning posts safer but lower-reach.

    • Constrained the risk/engagement formula so the two always correlate, there is no high-reach, low-risk path. This wasn't just a balance choice; the subject demands that amplifying protest content always carries consequence.

    • Made consequences emergent, not scripted: the daily summary generates next-day events (surveillance warnings, shadowbans, account flags) based on accumulated risk thresholds, not hand-authored story beats.

    • Built feedback screens showing per-post engagement results and the events they triggered, so players can connect choices to outcomes even though the loop is indirect.

  • Why it mattered: without differentiated, honest consequences, the game either feels like a spreadsheet or trivializes a real tragedy. The system had to make choices feel meaningfully different and make the stakes feel earned.



Inside the Project

Systems, decisions, and how things actually worked.

  • Project: The Whisperer (course project, OCAD University Digital Futures)

  • Genre: Social media simulation, Turn-based narrative strategy

  • Platform: Web (demo); target was Mobile

  • Engine: Unity 6000.0.34f1

  • Primary input: Touch-first (mouse supported for Web demo)

  • Team: 3

  • Duration: 7 weeks

  • My role: Systems Designer, sole in-engine developer

  • Shipped: Prototype playable to Day 5, endings not implemented

  • Content scale: 7 content directions × 3 styles × ~20 instances = 420 tag/caption entries; 4 fictional platforms

  • Play time: 3–4 minutes

bottom of page