Mystery Hunt 2021 Retrospective

These are a collection of thoughts on my experience running the 2021 MIT Mystery Hunt.

The 2020 Mystery Hunt

Ever since my first Mystery Hunt, I've wanted to win.

I've never cared about the competitive aspect at all. The reason I wanted to win wasn't for glory, it was always for the prize: the team who wins is the team who writes the next Hunt. And I wanted to win because I wanted to write. I wanted to bring people the happiness that I had had during that and later Hunts.

My friends and I formed Galactic Trendsetters with the eventual goal of "finishing the hunt". We grew, and we recruited. And we finished. Once we did, people questioned whether we should stop expanding the team. What else was there to do? We didn't want to write, did we? The consensus was always "we're not trying to get any larger...but you're always welcome to bring your friends". And so the team kept growing and improving anyway. Our placing in Mystery Hunt continued to improve — ninth and tenth, and then fifth, and fourth. More and more of us started to think about winning. And we realized that we had a shot at it, if we ever wanted to try.

And in 2020, we wanted to try.

We wanted to make a run for the win and see how we did. If it didn't work out, we'd probably go back to hunting more casually.

We didn't want to go anywhere near full "tryhard" — If there was a logic puzzle that we could solve with a computer, and someone was having a great time solving it by hand, we'd let them solve it by hand. But we did want to allocate people off puzzles that were less important, encourage (but not enforce) sleeping shifts, order food. That sort of thing.

I'm not an amazing puzzle solver. So I thought the best thing I could do to improve our chances was to train the people who were okay, to be even better. And the best way to do that...is to teach them to abuse the hell out of puzzle tools.

Seriously! Automation is critical, especially for less experienced solvers, because people make mistakes. Tiny mistakes can sometimes cost dozens of man-hours if solvers don't think to check their work, so minimizing the risk of error is hugely impactful. Even if people were perfectly accurate, automation also saves seconds, or even minutes, on everything from indexing to image searching — and that saved time really adds up.

So I coded a quick Discord bot called HypeBot, which provided an interface to every standard puzzle-solving tool from OneLook to Qat. I built solvers for standard logic puzzles. I included every code sheet under the sun, so people wouldn't have to waste time Googling for the right one.

(here's what HypeBot can do)
(HypeBot on the job)

We put someone in charge of bulk food orders. We had two people on duty at all times to encourage (but never mandate) people to switch onto more important puzzles. We implemented spreadsheet macros. Finally, we used the "grace period" right before Hunt to give a 30-minute demo to our entire team, so that everyone saw the tools in action and knew how to use them.

And then we were off.

We won. The hunt was polished, creative, and incredibly fun. I especially enjoyed the experimental rounds, like "Creative Pictures Studios", where the answers were all emoji, and "Safari Adventure", where each puzzle had multiple answers that fed into an amazing meta. I also appreciated the new "puzzle solved" sounds and the abolishment of phone calls, two almost universally positive changes that I hope are carried forward into future years and become tradition.

But this post isn't about that Hunt! Other people have covered it better than I would — CJ's post is an awesome read from the perspective of a first-time solver.

Writing the Theme

So here's a question: why even run a Mystery Hunt, when we can go wherever we want with GPH? Why invest ten times the effort we put into GPH, just so we can lock ourselves into expectations and end up with a product that's less universal and much more transient?

A lot of people would probably say, "you shouldn't". Which is reasonable. Though it does disregard that, as consumers of others' Mystery Hunts, representing tens of thousands of hours of donated time, we really ought to give back at some point.

Anyway, putting that aside, I came up with two answers.

First, the Mystery Hunt is uniquely communal. The effect of thousands of people on a single campus, solving puzzles alongside each other for a single weekend, is powerful in a way that a remote puzzle hunt never will be. Experiences like seeing another team doing the same runaround as you in a remote corner of campus at 2am, or going to Anna's Taqueria and seeing a group jabbering away about a puzzle you were just working on, cause you to remember that you're part of something bigger. They also make the competitive aspect feel more immediate and interesting than competing against faceless teams across the country. Teams haven't interacted much historically, primarily because of fairness and logistics concerns, but Mystery Hunt is the only place where interaction is even possible at all.

Second, the Mystery Hunt is uniquely, unapologetically MIT. From its infinitely deep history, trivia, and endless points of interest, to its administration who supports (or at least tolerates) hundreds of strangers descending on its campus every January, to its permissiveness about running around hallways at 2AM, to its obscure connecting passageways between corners of campus that only hackers know until your runaround took you there, MIT itself is a wonderful, labyrinthine treasure box, perfect beyond belief for an event like this. It's only at MIT that Mystery Hunt is even close to possible, and held anywhere else, Hunt would lose so much of its magic. I certainly don't love some of the things MIT does, but I see Mystery Hunt as a celebration of all that's right with the place.

After running the Galactic Puzzle Hunt for 3 years and pushing the limits of what online hunts could do, Mystery Hunt now presented us a chance to try things that we could never do online. When thinking about themes, I wanted to try as hard as possible to bring out the two angles that made Mystery Hunt unlike any other puzzle hunt in the world.

We want to give [players] an experience they'll remember for the rest of their lives, to stand out from dozens of other amazing Mystery Hunts now and yet to come.

(from the "MMO Hunt" theme proposal document)

I was one of the core members that proposed and developed the MMO theme. With Josh, I wrote the outline of the story that would survive through the entire development process: an alternate MIT, ruined buildings in need of repair, Professor Yew and an opposing professor on the other side, the coin being found in a vending machine as the two worlds were collapsing. I developed a prototype that demonstrated many concepts that would come to define the MMO — multiplayer, navigation puzzles, affecting the world in ways that could be perceived by others, discovering puzzles by talking to people. I wrote the Green Building meta as part of our theme proposal, and I wrote most of the strongly ambitious language like the quote above.

Among our theme proposal's team, giving people an experience to remember was an explicit goal. For me, that might be an understatement: it was my main goal. I hoped our Mystery Hunt could inspire others and make them wonder, the same way I had wondered at what the event was capable of my first year playing.

In order to do that, I felt we should lean into the things that made Mystery Hunt so unique and special — thousands of people playing together in one place, passing each other in the halls, thinking about the same things, having the same experiences — and push that even further. I imagined a Mystery Hunt where you would come together with the puzzle community for a weekend, and experience something, more communally and more "together" than ever before — and then let it go. It would be a magical experience where you had to have been there, something that wouldn't last past the weekend, thereby being all the more special for it. Ephemerality was a feature, not a bug.

Even though teams are in the same location for Mystery Hunt, they rarely interact with one another due to a variety of concerns — which is hugely disappointing, because Mystery Hunt is the best place the puzzle community has to forge new connections in person. We think the MMO is an exciting way to foster a sense of community between different teams and promote Mystery Hunt as a truly shared experience, a goal that’s never been attempted before.

(from the "MMO Hunt" theme proposal document)

I bring this up not because I want to assess whether we met our goals, but because I want to point out that this type of great effort doesn't come from nowhere. As a team, we made a conscious decision from the very beginning to push ourselves and our product as hard as we possibly could, because we wanted to make something amazing and memorable. There was a bottomless well of love, work, stress, and a little hurt put into this hunt behind the scenes. If our hunt meant a lot to you, even if it meant a little to you — thank you so much. Your happiness and enjoyment means the world.

Theme Selection

We had 9 themes at first. We used two rounds of voting: a first to reduce these to three, and a second to finalize which theme.

With more people contributing to the MMO theme than any other, it was something of a front-runner for most of the process, and was subject to extensive scrutiny. Working on the proposal was, for me, one of the more stressful parts of Hunt.

The MMO theme won the vote. Though I'm not sure it would have won if only experienced writers voted. I haven't seen specific votes, so I can't say this for sure, but from our discussions it seemed that most of the people who were strongly against the theme were puzzle veterans, and many people who were the most excited about the theme were people who had never contributed to GPH.

This was actually really heartening to me. It suggested that, although this would be far from a typical puzzle hunt, the idea was still deeply compelling. We had a great mix of people on our 2020 team — new solvers and veterans; people who just stopped in for an hour, and people who spent the whole weekend hunting; people who relished logic and word puzzles, people who loved scavenger hunts, people who couldn't wait for the interactive puzzles. Unlike GPH, the voting population for this decision was a good sample of our players — so I think whatever decision we made would have been the right one by our players as well.

Coronavirus & Switching to Remote

We had talked about coronavirus since March. Back then, Hunt was a full 10 months away, and it felt like we had all the time in the world. Many people thought it wouldn't be an issue. But as the year progressed and America failed to contain the pandemic, it became an inevitability: we would either have to either run hunt remotely, or delay it.

At first, I was sure I wanted to delay. Running Hunt remotely would mean massively compromising the vision that I had already worked so hard to keep alive. We would just be doing another Galactic Puzzle Hunt, but larger. The end product might not be as satisfying, both for solvers and for us — we would have to give up our fantasies of performing in Kresge, visiting teams in person, running crazy events, and seeing the smiles on people's faces. And the context switch would further stress us all out in a year where most of us had already had quite enough stress, thank you very much.

But delaying wasn't a good option, either. It feels horrible to have a project hanging over your head for so long! The momentum we'd built up would be lost, and would be difficult to regain. Keeping people in the loop would be complicated. People have the rest of their lives to get back to. I had other things I wanted to do. It wouldn't even be certain that we'd be able to run Hunt on-site in 2022, anyway. At some point, everyone has to accept they can't make a perfect product and just move on.

People have lost a lot more than we have in these times. Amidst a global pandemic, even a less-than-ideal communal experience would be extra important to people.

After a lot of discussion, it basically came down to two choices:

People argued for a long time, but I mostly stayed out of it, trying to come to terms with my own feelings about what we should do. My impression was that the people who cared more about the "auxiliary" aspects of Hunt — runarounds, skits, events — generally wanted to delay, probably so they could realize their ambitions to the fullest. The people who cared more about the puzzles generally wanted to run hunt as normal, because they were excited to show their work off to the community, and felt it would be excessive to delay despite the most important part of the hunt, the puzzles, being able to be run mostly as normal.

I couldn't make up my mind, so I abstained from voting. "Run Hunt remotely" won by a considerable margin. In retrospect, and after seeing the joy our hunt brought to so many people, I think it was absolutely the right call.

The MMO theme was finalized and committed to well before COVID-19 forced the hunt to take place remotely. During theme selection, one of the questions we got was, "isn't the MMO one of the worst fits for a physical hunt?". I honestly think an MMO is an excellent fit for any hunt and any setting, but that aside, there are some amazing ideas we had that could only work on-campus. Here are some things we wanted to try:

A lot of these ideas still work perfectly without an MMO, so I hope that some other team will try some of them out someday!

My Work

Most of my work was focused on the MMO. Around 40% of my time spent on Hunt was work on the Unity client, and another 40% was work on the Go server.

I led development of the server, which coordinated players and communicated information about which doors, students, and field goals they could access. I wrote the majority of our MMO server's code and the Unity code to interact with it. A lot of my time went towards improving performance and reliability. My goal was to be able to support 3,000 concurrent users, with up to 1,500 in a single room at once, which we were able to meet comfortably. (This turned out to be a large overestimate anyway.)

I was also one of the most prolific contributors to the client. In keeping with my desire for ⊥IW to be a "treasure box" full of ideas to discover, I worked hard to expand the scope of the world beyond what was minimally required, and implemented most of the rooms not directly used in puzzle rounds: buildings 9, 10, 13, and 14; the fixed Infinite; the underground lake; the Hacker's Passage. I designed and implemented many of the small "easter egg" features by myself — whiteboards, emotes, 3D rotating exhibits, ⊥IWhenge, Hacker's Passage computers, step counter guy. I did many other assorted client tasks ranging from modular NPC outfits, to refactors, to UI design, to minor art assets, to team emoji, to assisting teammates with puzzle and event implementation.

I additionally wrote eight puzzles:

(in order of how much I like them)

I did the technical implementation for all my puzzles and drew art for some, and I commissioned music for Love at 150 km/h from Leiss, an indie composer on Twitter. Most of these puzzles were very time-consuming to implement (Love at 150 km/h and Cafe Five took at least a hundred hours each) so I wasn't able to write very many.

I also wrote and programmed the Green Building post-meta interaction, did the UI design for the Yew Labs registration site, wrote some of the MMO tutorial video, and I edited around 10 puzzles and testsolved many more.

So...maybe you can tell, but I was very busy!

Honestly, I was overworked and constantly stressed. Partly this stemmed from the high standards and lofty goals I had for myself and the project as a whole; the few puzzles I wrote each took a lot of technical implementation and required a staggering amount of content. It also stemmed from the way our organization worked. As Mystery Hunt is a volunteer project, everyone worked on whatever they wanted to. We wanted people to enjoy the project and not quit, so there was a large amount of scope creep, which led to bugs and rough edges. Because we were all friends, we sometimes had trouble saying "no" to people, and we took on more work than we could comfortably support.

This environment was difficult for me to work in, because the outcome of the project is something that we all share, and people doing this often created extra work for others or broke others' stuff in unpredictable ways. As one of the most experienced contributors, I often took on tasks and fixed bugs that others couldn't, and was consistently saddled with a lot of extra work because of this decentralized structure. I spent almost all my free time every day for the month before Hunt (50-60 hours per week, in addition to having a real job) working on the MMO, fixing bugs, adding polish and smoothing the experience.

I'm unbelievably proud of the result, and absurdly happy that everyone loved our hunt so much. Mystery Hunt was an enriching, and deeply rewarding experience for me, and I don't regret my involvement at all, but I could do it over again, I'd try to be less involved, or at least more careful about which parts of Hunt I invest a lot of time into.

On Writing in the Time of COVID-19

It's easy to make the argument that we "drew the short straw" in having to write Hunt this year. Many community members certainly mentioned it. But the more I look back, the less I agree. This was actually the luckiest year ever to write Hunt.

I got to reconnect with friends I haven't talked to in ages. I had an active, thriving Discord community with tons of people I knew very well and plenty of new people I could make friends with, where at any hour I could pop in to play a game, work on a puzzle, or bounce ideas off someone. In a time when loneliness is so widespread and easy to come by, this was one of the least lonely years of my life. I'm deeply thankful for that.

Not only that, but many people contributed to Hunt in a capacity that I'm sure they wouldn't have had before the pandemic. To be clear, I'd take a hunt on-campus over a remote hunt any day of the week. But it's undeniable that ⊥IW wouldn't have been nearly as large, as beautiful, or as rich as it was if COVID-19 didn't exist. When we decided to run our hunt remotely, I thought at first our hunt would be strictly worse than what we would have run on-campus. But after seeing the way that our team came together in the last month before hunt, and the incredible amount of time and energy everyone contributed, I know now that's far from the case.

And finally, there's the simple truth that most of us could probably use a bright spot or two in their lives right now. I've had a few friends say to me they really wanted a Hunt this year in particular. Having something to focus on and work towards, something that you know will make a lot of people happy, gives you a sense of purpose.

Little Things I Want to Remember

#freeyannick is a meme rallying cry that started late at night and grew out of an emote party. We ran around the MMO for a while, then another team all changed their names to "FREE YANNICK" (they were friends of his). We grew into a sizable mass of people as we ran around the MMO and picked up people who were just standing around. Eventually Yannick logged on, and we all crowded around him and ushered him to the Stata steps to give a speech. Yannick's speech was: "👋"

It was a small thing, but it's something that nobody could have ever predicted would happen. It was a little moment of connection and community between us and a few teams up late. It was exactly the type of silly thing I hoped would happen if we built the MMO.

Who knows how many more of those moments happened where I didn't see them?

The Damien Tornado was a tribute to the great Damien and a silly way for me to experiment with the Unity particle system.

Here is the first Damien tornado:

Here is the second ("Rainbow Shotgun") Damien Tornado, which replaced it:

People who were new to the MMO were always very impressed by the incredible Damien Tornado.

As hunt approached and the MMO was finalized, just for "fun" I added a script (and hid it, and obfuscated its true purpose) that would re-add the tornado whenever someone deleted it. Unfortunately, Herman somehow found the script within two days, and asked me "It seems like this script might be adding the Damien Tornado back to the scene. Is it alright if I delete it?", seeming very nonplussed about the destructive plot he had just uncovered.

During the last three to four weeks of Hunt, I worked on Hunt during nearly all of my waking hours. I wasn't able to sleep properly due to overwork and stress. I binged Attack of Titan over the course of these weeks late at night, partially in an attempt to calm down so I could sleep. (It...wasn't very good at that. In fact, it was horrible.)

Still, it was a bright spot in a tough time. Attack on Titan turned out to be one of the best anime I've ever seen, with a compellingly dark plot that's paced and executed nearly flawlessly. I'll fondly remember watching it in the wee hours of the night, and for being a source of happiness and inspiration when I really needed it.

I hope that those of you who've never been to MIT still enjoyed the hunt. And I hope that, if you come join us on campus someday, our halls will feel a little more familiar, a little more "yours". I hope you'll feel a bit more connected to the place I called home for four years.

One of our sillier early ideas for a post-meta interaction (before hunt went all-remote) is that teams would be given a sofa, and would have to carry it to our HQ.

A few more server tidbits:

For performance reasons, scenes would automatically instance themselves if they exceeded 800 people, so that people would only see others on their team. This limit was never reached. (The group photo had 1,200 people in a room, but we disabled this behavior beforehand.)

Every name and whiteboard message was output to Discord and checked by a Galactic team member. We used a "two strikes" policy — issue a single warning, then work directly with the captain to resolve the problem or ban the offending IP if the problem continued. Six teams received a warning (five for inappropriate names, one for posting a slight spoiler on a whiteboard), which resolved the issue in every case.

We had a spam-detection threshold to automatically disconnect IPs that were sending too many messages to the server. Early on, this caused an issue when members of ET Phone in Answer (many of whom shared the same IP) were all playing concurrently and would be disconnected. We promptly disabled the threshold, as we had other security measures in place to protect against rogue connections. We saw no aberrant or malicious behavior throughout the weekend.

For several weeks leading up to Mystery Hunt, every day at around midnight EST, Anderson would be in our Discord channel, ready to do the daily NYT Spelling Bee puzzle. The consistency of it contributed more to my hunt experience than I'm sure Anderson realizes. I knew I had someone that I could hang out with every single day — and if I wasn't feeling it, no problem! — and during the lonely nights of Unity tinkering, it was a welcome and comforting reprieve.

As my main priority was making the MMO as good as it could be, I have a special soft spot for each and every Field Goal. But other than those, my favorite puzzles from our hunt are So You Think You Can Count?, Just Index, The Emperor's New Kitchen, and Nutraumatic. I only saw about half of the puzzles, and I didn't testsolve Voltage-Controlled, but otherwise I bet it'd be among my favorites too.

Author's notes are one of my favorite things to look over after a hunt, because they're often funny or tell you something about the constructor's personality. Here are my favorites (spoilers, obviously): ⊥IW.nano, Altered Beasts, Beverage Blunders, Careful What You Wish For, Circles, Clueless, Divided is Us, Exactly, Express Yourself, Harmony, Hockfield Court, How to Run a Puzzlehunt, In C, MacGregor House, Pitch Black, Powerful Point, Squee Squee, Voltage-Controlled.

Here are some of my favorite quotes from the MMO:

Shout-outs

I can't thank my team enough. Working for so long on a project with people really brings you all closer together.

When we proposed this theme, some people were worried that we couldn't handle it as a team. They said we were underestimating the amount of work involved in a Mystery Hunt — let alone one with an MMO — and there were huge unforeseen risks and roadblocks that we couldn't understand yet. Above all else, they were worried about us splitting up, and they didn't want to push our team to breaking point when we had no idea of our limits.

They weren't wrong. It was a huge risk. But it happened to work out this time.

We got through this. We invested tens of thousands of hours, and we made something great that (hopefully) touched the hearts of people in the community. We didn't split up, and we're all going to Hunt together in the future. And we're all still friends.

That's gotta count for something.

Thanks to: