Popular: Postmortem for a Failed Prototype | vector poem

I believe more strongly than ever that the most important thing a game designer can do today (though certainly not the only worthy thing!) is to explore new mechanical expressions – that is, mechanics that enable expressions of human experience that were hitherto foreign to games.

A while back I started to build a case for why I think the hyper-focus on combat mechanics in mainstream games is the primary thing holding them back from being truly “about” the subjects and themes they aspire to and in some cases self-deceptively claim to be about. I had always intended to write a follow-up to that post, carrying further the suggestions of alternate mechanics worthy of further investigation. However, I wanted to lead by example: to back up what I was talking about with practice, and demonstrate a prototype for one of those mechanics.

Two years passed, and life took some unexpected turns. But I did make something and I want to share that now.

“Popular” was a prototype I worked on during the spring and summer of 2010. I consider it a failure, but an educational one that was a worthy attempt at the kind of exploration I’m talking about, and an idea I hope to return to someday.

I became fascinated by social simulation several years ago after reading about Chris Crawford’s valiant stabs at it with Siboot and Le Morte D’Artur, stepping stones towards his Holy Grail of “interactive storytelling”. He chased after these ideas in the most ambitious possible way, and thus I determined to do something small and humble – a Pong for social simulation, if you will.

I actually prototyped the gossip/affinity mechanic seen below in 2005 in a text-only format, and set it aside. Five years later, a lot of what you see in the prototype came to me in a single flash of inspiration. Lesson: sometimes it’s good to let an idea sit for a while!

During the summer of 2010 I met Mike Treanor, lead designer of Prom Week. We were each surprised to find ourselves in the room with someone working on another high school social simulation! It quickly became clear that our work was headed in very different directions, which was both a relief and a joy – when diving into underexplored mechanics, there’s so much to discover that competition is a comfort!

Here’s a video of the prototype in action and a brief explanation of how it works:

Credit where it’s certainly due: the cool student face art was done by the superb and talented Karla Zimonja.

The core mechanic in Popular involves spreading information to affect a social network in your favor. Every student has an affinity towards every other student – represented internally as a postive, negative or zero integer. The implicit objective is to become the most popular student in your class, but being a sandbox it supports other goals.

The information you pass, in the form of little notes of gossip written on notebook paper, makes assertions about the affinities between certain students, eg “Bob likes Carol”, “Carol hates Alice”, and so on. Being gossip, this information is categorically not based on truth, but social perception and speculation.

When a student “hears” new information about affinities, they decide how they feel about it, and this is in turn changes how they feel about the world. Enmities and friendships develop and change over time, all represented in terms of the “affinity map”.

That’s really all there is to it. I wanted to keep the prototype simple and focused on the question: “Can player manipulation of a social network via information exchange be made readable, deep and engaging?”. Adding other features would have just muddied the question and diluted its exploration.

The code for the prototype can be found on the project page where all my open source experiments are hosted.

2018-08-17 Update: Here’s a Windows build of the prototype.

Here’s a summary of the flow of a single turn in Popular:

  1. The player examines the current social landscape by hovering the pointer over students’ faces. When a given student has focus, all the other students look at them, and their facial expressions display their affinity for that student: a huge grin indicates strong positive affinity (best buds!), a smile indicates lower but still positive affinity, a frown indicates negative affinity, and an angry, icy glare indicates strong negative affinity.
  2. Based on this information, the player can formulate a plan. Do they want to try to start a rumor that two enemies dislike each other, in an attempt to drive a wedge between them? Do they want to compliment a neutral student (in effect saying “[I] like [you]”) in an attempt to gain a new friend? Do they want to shore up their existing alliances by spreading gossip that reinforces the affinities of people who already like each other? All of these things can be expressed with three simple parts of speech: [Subject] [Likes/Hates] [Object].
  3. The player presses the “Gossip” button and builds a piece of gossip of the form described above by dragging students’ faces from the classroom view into the Subject and Object boxes. They can click to toggle the Verb between “Like” and “Hate”. When they’ve got the gossip they want to send out into the classroom, they click Send.
  4. The player then chooses which Students will see this Gossip, assuming that every student who touches the note will sneak a peek at its contents – a reasonable expectation, if you’ve been through high school. They build a route by clicking from from desk to desk, and then click Pass.
  5. The player sees their note go from desk to desk, and each student reacts to the information contained therein. The info window that pops up breaks down the thought process to show what is influencing their final reaction. In a nutshell, the rules are as simple as possible and based on existing affinities, the desire to see friends liked and enemies disliked, and that terrifying constant of adolescent life: peer pressure.
  6. Now that the changes in the social landscape have been communicated, a new turn begins and players can read the world and decide what to do next.

Even though this was a spare time project with little hope of turning into something that was A) polished and B) something lots of people would love, working on this prototype was one of the most rewarding experiences of my career. Each little discovery and improvement felt revelatory because I was working in such an unfamiliar and underexplored area.

Here are some things I discovered:

So why did I abandon it?

Primarily, I feel I was unable to devise satisfying, readable and concise feedback mechanisms for the internal (within a character) dynamics that the social sim depends upon – specifically, what happens inside a student’s head when they read a piece of gossip. My algorithm represented the most basic relevant factors, and I could see it working clearly as intended under the hood, but communicating that to the player proved impossible. Those raw, baffling numbers in the “gossip reaction” dialogs are where I hit the wall – I couldn’t figure out how to convey that simple arithmetic in ways that read as a social calculation. This stuff happens instantly in our brains, and it’s connected with some of the most irrational and under-understood parts of our psyches. If players can’t read this intuitively, then they’re playing a spreadsheet, which goes against my most basic creative intent.

Popular is an abandoned project, but not a dead one. To me it feels like the tip of an iceberg rather than a dead end.

I suspect anyone venturing into this kind of domain will have to struggle with similar challenges. When you’re exploring a relatively unknown mechanic, you’re figuring out the most basic concepts, and making the most basic mistakes. More often than not, that leaves you with a half-working, hard-to-understand mess with a glimmer of potential poking out somewhere.

It’s difficult but possibly necessary to unlearn some prior design experience. My career has had me working on action games in established genres, which has instilled in me extremely high standards for polish, balance, readability and accessibility. These pressures actually work against the goal of failing interestingly in order to find new expressions.

As we explore these new oceans of potential, we need to prepare ourselves for a lot of failed experiments. We can’t possibly design the perfect expression of a mechanic the first time out. Early entries in many genres were some combination of painfully complicated, or missing essential elements that brought unity and breadth to later entries, or often only scratched the surface of potential depth. Wise and well-meaning admonitions to Please Finish Your Game notwithstanding, we need to be courageous and stupid enough to fail in new ways and pragmatic enough to abandon half-finished approaches that aren’t working. It took a bit of wisdom and humility I didn’t always have to step away from Popular – that too was an invaluable lesson.

We also can’t go in expecting a payoff, or with preconceived notions of what our end product will look like – it’s the exploration of a possibly-nonexistent unknown, not the quest for a known. We may think we’re solving one problem and stumble upon the solution to another. The authorial ego-drive of top-down design can snuff out promising ideas in pursuit of false grails. New ideas often reveal themselves only once we become open to them.

It’s possible the perfectly crafted social sims of the future will still have lots of numbers on screen, or have weirdly abstract representations of psychological dynamics. Or maybe they’ll be elegant and intuitive beyond our dreams… who knows? The point is we’ll only get there by exploring, and putting our feet on that path means letting go of what we think we already know.

Please let me know what you think of all this, if you know of any other explorations into new mechanical expressions, and if you have any ideas on how to solve the problems with Popular I describe above.

This entry was posted on Sunday, March 4th, 2012 at 8:13 pm and is filed under gamedesign, Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

6 Responses to “Popular: Postmortem for a Failed Prototype”

  1. Aubrey Hesselgren Says:

    Your “chunking” of social groups made me think of a spatial metaphor: placing a spring between characters to physically draw them closer or further away from the hovered over player,. Thus groups would clench together physically. That’s a useful aspect of shooter/spatial mechanics to bring over. Indeed I wanted to make a space ship game where factions aren’t discreet, but rather were emergent out of their general desire to cluster with trustworthy allies.

    When prom was announced, and the idea of “social physics” was mentioned, this was immediately what I thought of.

    You know I already saw this, but I still think it’s great exploratory work, and we’ll worth as many stabs as you can suffer to give it!

  2. Aubrey Hesselgren Says:

    Entire last comment written on horrible. Virtual keypad

  3. Jim Says:

    I made a social simulation-ish prototype in PyGame as well – mine was about opinions of issues. I’d have people arranged in a grid that would hold opinions about an issue that would influence each other each turn if they were connected. The player could move connection lines each turn.

    I ran into a problem similar to yours. It just turned into a bunch of flickering numbers that didn’t inspire much feeling, and I lost interest. But now, I feel like digging it up and seeing what specifically lead to that! Thanks for the post.

  4. Naveen Says:

    Is the prototype and source code still available for download?

  5. JP Says:

    Naveen: Yes, I finally did a Windows build:


    and the source code is still on my google code project page.

  6. Edmundito Says:

    Hi JP, this game reminds me a lot of a game experiment I created back in 2005 which I called Saturday School:

    My game is not really a system of rules or simulation, though. It’s more similar to an adventure game (story and puzzle-driven), although the social relationships between the characters dictate hints to what the puzzles are and who can interact with who.