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