Hanukkah LOL, part 4: Puzzle paths, Pesky printers, and Periscope
The story so far: The Mystery League is designing a puzzle game for thousands of Cards Against Humanity fans, called Hanukkah LOL. In its simplest form, it’s a room escape game with one player, whose actions are controlled by a crowd of thousands. The clues to solve the room’s puzzles are embedded in CAH’s Eight Sensible Gifts, which will be delivered to 150,000 people. It’s the last week before the game begins.
Mapping out the puzzles
Our bulletin board wall, riddled with notecards, yarn, stickies and chaotic Sharpie scribblings, may have encouraged snarky serial killer-themed comments, but it really was a revelation. There was incredible value in externalizing our thoughts into physical form. Writing them down and pinning them up freed our minds to spend their bandwidth on solving problems.
Problems like ensuring a fluid flow between various items and puzzles. For example, at one point we decided we wanted Dad to break open a wall. Great, sounds fun. But we had to make sure two things:
- There was a puzzle that solved to an instruction to break open a wall.
- There was something important behind it.
This is why our puzzle path map was so important. It lets us write down “Dad breaks down wall”, literally put a pin in it, and tack it to the board. Then, later on, when we found ourselves with a puzzle based on a stack of business cards, and we asked ourselves “how do they find these cards?”, we looked back at that broken-down wall card and connected the two elements together with string.
It turns out that a system reliant on precise lengths of string is very tedious to work with, so eventually we moved the whole thing online. I pushed the bounds of Google Drawings and reconstructed our puzzle map there.
We assigned different colors to: things in the room, things found online, things found IRL, information from the gifts, codes, lockable things, and most important, in yellow, things that still need to be designed.
This map was a living document: I updated it and moved things around every day, and as people solved boxes or discovered elements, I would cover up the box with a smiley face.
My life was to make sure those yellow boxes stayed well ahead of that encroaching horde of happy solvers.
The medium and the message
Two crucial elements remained before we could go live. We knew Dad was going to communicate with the crowd via daily Periscope broadcasts, but we hadn’t quite solved the problem of how the crowd was going to communicate back, or how they were going to agree on what to say.
Part 1: the medium
We tested out the Periscope chat functionality and found it very overwhelming. Messages went by way too quickly for someone to be able to watch and process them all, while also checking inside boxes or opening a lock. Also, which instructions would Dad listen do? It would quickly devolve into a shouting match. We needed something simpler.
We considered mounting a monitor or iPad in the room, viewable but inaccessible, that was constantly tuned to a webpage that showed Dad’s instructions. Too costly, too many ways to go wrong, and too aesthetically fancy. We considered putting up a whiteboard in the room that showed Dad’s instructions for the day. Un-fancy, yes, but it broke the fiction of Dad being locked in the room by himself.
At some point I remembered a box in my closet that held a Berg Little Printer. This was a device that was designed to print out little missives or information from the Internet. I had never used it. Unfortunately, the online service had shut down, but the printer should’ve still worked. I wondered if I couldn’t get it fired up again. After a couple hours of hacking, I eventually got a message to print:
I was ecstatic. The aesthetic was perfect — a little face that sitting there, smiling, taunting Dad, and once a day spitting out a few lines of quasi-helpful instructions. The device needed to be connected to the Internet in order to print, but that was solvable; I could set up a mini-hotspot in the room.
Part 2: the message
So we had the printer, but what to print? How do you distill several thousand people’s opinions into a few discrete instructions?
We never sat down ahead of time and calculated exactly how many steps Dad would need to get out of the room. But just looking at our map and its dozen of boxes told us he’d need to get multiple accurate instructions per day in order to end the game before the new year.
We had four teams, so we figured four instructions a day, one per team, would be a good place to start. To implement this, I built a small web app and developed a schedule which, after a few tweaks at the very start of the game, we used consistently through the weeks.
- Solve. All day, every day, teams sift through the information and come up with suggestions for what Dad should look at, open, reveal, or do during his next broadcast.
- Suggest. Every day, as soon as Dad’s broadcast ends, anyone can log on and suggest something for Dad to do the next day, along with a reason for suggesting it. They can do this any number of times, until 4 AM CST.
- Vote. From 4 AM to 2 PM CST, players are allowed to vote for one of the suggestions made by their own team.
- Select. Shortly after 2 PM, I scan the top three suggestions from each team, and pick one from each team.
- Stream. Every afternoon, Dad broadcasts on Periscope. He follows the instructions sent to him, opening things, looking in things, unlocking things, until he’s finished or until his wi-fi cuts out.
- Repeat until Dad escapes.
Introducing Tom & Karlee
We had an unusual premise, and we thought the best way to explain it was through video. The story and game would be centered around Dad, but we didn’t think Dad would be the best person to explain how he got there, since our story was that he had been drugged and involuntarily locked down there. Instead, we relied on his kids. And by “kids”, I really mean Tom & Karlee, superstar CAH interns. Totally not related to each other, totally not Jewish, but very energetic, photogenic, and willing.
This was the first thing people would see after getting their first gift, reading the letter inside, and visiting our website, hanukkah.lol. It also held, in that last shot of the marquee, the key to solving the first puzzle.
We built it, and the people came
I wish I could tell you that in all this planning, we thought about how several hundred or thousand strangers would peacefully interact. I had previous worked at EveryBlock, an online discussion forum, so the value of strong community management was baked into my brain. But the truth is I just … forgot.
December arrived, and the first gift started to be delivered to people’s mailboxes. They started to sign up.
At first, as people trickled in, the Slacks remained quiet. No one was really saying anything, numbers stayed very low, and my first thought was that the whole thing would fall apart due to lack of participation. As the numbers inched up slowly, I set a modest goal of just 400 people total. Okay, I thought, 100 people per Slack is enough to sustain an active, fun game.
But what I was actually seeing were just folks on the East coast, very close to the mail distribution center. The real bulk of mail got delivered on the next day. By the end of December 2nd, 800 people had signed up for the game, putting each Slack at roughly 200 people. By December 3rd, we had over 2200. Those quiet forums got very noisy, very fast. Suddenly I realized what my real problem was: no one was in charge of the asylum.
I felt incredibly stupid for not having predicted this. Fortunately, I followed up that feeling with one of the smartest moves I made during the entire game: I broadcasted an invitation for volunteer moderators. It was the quickest job posting-interview-hiring process ever. Within an hour, I had talked with a few people in each Slack, made sure as best I could they weren’t sociopaths, then crossed my fingers and gave them Slack admin powers.
Not only did none of them turn out to be sociopaths, but almost all of them were passionate, dedicated, highly motivated leaders. I got extremely lucky. They self-organized and assigned each other shifts. Each admin team — which eventually numbered 5 or 6 per team — almost always had someone online. They kept people focused on the right problems, they neutralized tension, they fostered energy, they basically kept the ship running while I was going crazy trying to finish the puzzles and make the broadcasts. They were a godsend; they did a tremendous amount of work, for no pay, and made the game orders of magnitude more fun for the players.
The first Periscopes
Before the game started, we pre-recorded the first Periscope video, of Dad waking up in a locked, dark room, with just a sleeping bag and a toiletries kit and no explanation of how he got there. We wanted the video to be available to anyone who discovered the account, which they would do by solving the first puzzle. Here’s what they saw:
There was just enough to give players a hint about what to do next, if they had been paying close attention to the welcome video. But we didn’t let teams give Dad any instructions the first day, in order to account for the delay in mail delivery. We wanted as many people to be playing the game when it finally got started. So the second video was more of the same.
Revenge of the printer
On the third day, Dad got his first set of instructions, via a piece of paper slipped under the door.
Now he was out of the inner room and into the main space. Our Little Printer was due to make its appearance the next day, and serve as the mechanism for delivering instructions for the rest of the game.
Then it shat the bed.
The printer was working by connecting to a very untested, very alpha version of the software. It had worked before; now it wasn’t. Clearly it’s alpha-ness had gotten the better of it. Certainly there was a chance it would recover in time for the next broadcast, but given how central it was to the game, there was no way we could risk it. I realized how stupid it was to bet the whole game on a service that had no guarantees of uptime.
I was in a frenzy. I started to look into building my own Little Printer server to run locally, on my computer, or on a Raspberry Pi (a small, cheap, monitor-less computer). I wasn’t sure I had the programming chops to build it, nor did I even own a Pi, but it was my only option, short of going back to the whiteboard idea.
I blasted my office Slack, asking if anyone had a Pi that I could borrow. Incredibly, Amy, designer at CAH, immediately responded that she had one from a project she had done in college. It was sitting in a box, and I was free to use it. Even more incredibly, the college project she mentioned, i.e. the thing the Pi was already configured to do, was… printing messages on a thermal printer. And she had the printer.
What stupid, stupid luck. I got the Pi on Thursday night. Friday morning I hooked up a monitor and fired it up. It immediately started printing out an never-ending supply of advice about design — Amy’s project coming back to life. I fiddled with the Python code, got it to stop giving me design advice and instead print out some hard-coded instructions, and all of a sudden we had a working message-delivery system. Just a couple of hours before our fourth broadcast was scheduled to start.
We took it over to the room. We set up the Pi and monitor behind our false wall and threaded the cords through to the printer in the room.
We were ready to recorded Day 4. Dad turned on his camera, and there was our little printer, our little instruction robot, only 18 hours after being brought into our lives, making its very crucial Hanukkah LOL debut.