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
Raw Documents

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




























