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, 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

  • Shipped scope: Prototype playable to Day 5; 420 tag/caption entries across 7 content directions × 3 styles; 4 fictional platforms

Raw Documents

  • 📄 Game Thesis Paper

  • 📄 Game Design Documentation

  • 💻 Code Backup

網格瓷磚圖案

What I Built

My Contributions

Teammates wrote narrative content for posts. I was responsible for all Unity implementation, plus authoring all tag/caption entries:

  • Built PostData ScriptableObject as the core data structure, storing content direction, base stats, selected tags/caption, platform, and timestamp.

  • Created TagCaptionDictionary, a query system that retrieves valid tags and captions for a given content direction, filtered by style (meme / amplify / stealth).

  • Implemented EditPostUIManager and supporting scripts to handle the 6-step posting flow: feed view → post detail → platform select → tag select (max 3) → caption select (max 1) → confirm & send.

  • Wrote UIM_TagCaption selection logic with toggle behavior and slot limits.

  • Added SwipeHandler for touch-friendly feed navigation.

  • Built TimeManager for day/hour progression and FeedManager for post lifecycle (spawning, engagement decay, risk accumulation, hourly evaluation).

  • Designed the risk/engagement formula based on platform, tags, timing, and world state.

  • Created MorningReportUI and DailySummaryUI to show players how their posts performed.

Key Design & Tech Challenges

Two problems shaped most of my work.


Making player decisions produce different outcomes, not just cosmetic variation

  • Problem: the game has 4 decision axes (platform, tags, caption, timing), but early versions made them feel interchangeable.

  • What I did:

    • Gave each platform a distinct risk/reach profile (e.g., WhatsUp = high risk, high reach; TeleM = low risk, niche audience).

    • Made tags stack additively for both engagement and risk, with style combinations creating synergies or penalties.

    • Added time-of-day curves so morning posts are safer but reach fewer people.

    • Built end-of-day summaries showing exactly how each post contributed to outcomes.

  • Why it mattered: without differentiated consequences, the "choose your approach" pitch falls flat.


Representing a real-world tragedy without trivializing it

  • Problem: the game draws from Iran's 2022 "Woman, Life, Freedom" protests. Making censorship and activist risk "playable" risked feeling exploitative.

  • What I did:

    • Used fictional platform names (WhatsUp, Apara, Insto!, TeleM) instead of real ones.

    • Avoided a win state. High engagement means your content spread, but also that you are now a surveillance target.

    • Framed consequences as systemic events (warnings, shadowbans, bans), not graphic depictions.

    • Kept the 7 content directions grounded in documented information-warfare patterns, not sensationalized scenarios.

  • Why it mattered: the subject deserves care. The instructor noted the game "makes you feel the weight of the decision without sensationalizing."





Inside the Project

Systems, decisions, and how things actually worked.

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

  • Genre: Social media simulation, narrative strategy

  • Platform: Web (demo); target was Mobile

  • Engine: Unity 6000.0.34f1

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

  • Team: 3 (I handled all Unity implementation + tag/caption authoring; teammates wrote narrative content for posts)

  • Duration: 7 weeks

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

  • I owned: PostData pipeline, TagCaptionDictionary, posting flow UI, FeedManager, TimeManager, risk/engagement formula, daily summary screens

  • 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