Escape Room, Tech

The Essence of Escape: Text-Based Escape Rooms

As I’ve said in some of my previous posts, I’m a puzzle solver at heart. Even my career as a software developer (and now in application security) is centered around it. I love to try and figure out how things tick and what I can glean from those mysteries. While I don’t write as much code in my day-to-day work, I am still in investigation mode. Part of my role is to figure out what might break and how to best protect a piece of software. It’s easy to get down in the weeds and look up only to find you’re neck deep in tech that you may not be as familiar with. This is when the puzzler in me kicks in and I start into learning mode.

Why Python?

In my current role, I’ve been using more Python than I have in previous jobs. I was familiar with the basics but I hadn’t really dug into the language and its ecosystem. There was some chance for me to work on these skills on the job, but to really be able to understand a language, I find that doing is better than just reading any day. So, I needed a project I could use to improve my Python skills that was interesting enough to keep me motivated to learn more. I looked at several sample projects and some of the basic “getting started” project ideas, but they didn’t seem like they’d hold much interest past the first bit. I started thinking about other things I enjoyed and how I might be able to marry those with this desire to learn.

Then, in poking around the web one day, I was reading about Python games on Reddit and someone made the suggestion (to someone else) to create a text-based game as a way to more thoroughly learn the language. It was perfect – not only did it provide a good way to learn the language but it also would allow me to incorporate one of my other passions: escape rooms.

Escaping with Adventurelib

I decided that, while I could probably hack through a simple text-based game structure, it might be better to start with a good base and work up. I spent some time searching and came across the Adventurelib Python library. This library is designed to set up some of the boilerplate code to help you get started quickly and easily with building a text-based adventure game. It’s even designed to be used in a teaching setting. It only provides the basics (rooms, items, actions, etc) to build on top of but it’s easy to extend.

Now that I had my tools selected, all I needed was something to build with them. I thought about coming up with a custom room and wild ideas for puzzles filled my head. I quickly realized that trying to do this, level up my Python skills and learn all about the Adventurelib library was a bit much to tackle all at once. So, what was the next best thing? I could always reproduce a part of one of the escape room games I’d played on my tablet. Some of those didn’t exactly have the depth I wanted though…what to do? Then I remembered a potential source.

Escape This Podcast to the Rescue

In searching around for other podcasts to listen to related to escape rooms (shoutout to the excellent Room Escape Divas here, my first ER-related listen), I came across Escape This Podcast with hosts Dani and Bill. I loved the format, getting to listen to random guests puzzle through different rooms that Dani had created just for the show. I also remembered that, as a generous gift to the ER community, she provided the full documentation for those rooms – puzzles, solutions and all.

At the time I had just listened to Episode #3 in their newest series, the “Descent of the Cullodens” series: “I’d Kill You if I Had My Gun!” and decided that was as good a place as any to start. It was perfect, and a short approval email response from Bill later asking about using the content, I was off and running. I had my language to learn, the library to use in learning it and the full structure of the room to build out!

Enter the Game

With all of this laid out, I dove right into creating the game. Adventurelib makes this super simple, fortunately, and has some excellent documentation to help get you started. To help out others that might be interested in creating something similar, I’m going to write a series of posts on my process of getting the game up and running, design decisions I’ve had to make so far and some of the challenges I’ve faced.

First, though, let’s get a simple game up and running. We need to install the Adventurelib library first before we can use it. This can be accomplished using the pip Python package installer by running this on the command line:

pip install adventurelib

Once that’s installed, creating a game with a single room is super simple. Create a new file (name it something like game.py) and put the following inside:

from adventurelib import *

@when("look")
def look():
    print("You look around and don't see much of anything")

start()

This can then be run using the Python command line:

python game.py

When executed, you should just be dropped at a “>” prompt. If you type in “look” and hit enter, you’ll be greeted with the “You look around…” message. To exit out of the game, just type “quit” and hit enter. In the code above, “look” is a command and allows you a flexible way to parse what the user enters and handle it accordingly.

Simple, right? I know for non-programming types it seems like I’ve skipped a lot of steps out there with information on setting up Python and the basics of the language, but there are tons of other sites out there to explain some of those.

Moving Right Along

I’ve been working on this project for a few weeks now with some varying levels of success along the way. There have been a few places where I’ve gotten stuck, but it’s definitely off to a good start. Stay tuned for more progress and helpful hints!

Escape Room, Kids, Puzzle Design

Writing Escape Rooms for Kids — A Perspective

So it’s been interesting. I’ve been working on two different “rooms” now for my kids and I’ve already found some roadbloacks as far as them making their own logcal leaps. There’s been puzzles that I’ve come up with that are diffficult for them to understand, even sometimes with plenty of hints.

For example, in this last edition of the “spy” series of challenges, there was an instance where they not only had to count the number of shapes around the room to get the numbers to use for a code but they also had to use another sheet with the shapes and smaller numbers inside of them to determine the actual order of the numbers from the shapes. For example, say they counted 2 triangles, 3 squares and 4 circles. The other related printout also had numbers inside blank versions of the shapes that indicated #1 was squares, #2 was circles and #3 was triangles. When these numbers were correctly aligned, they could open the next lock.

They seemed to really struggle with this one, though. They seemed to catch on quickly that there were different shapes up around the room but they seemed to get stuck there, even with a few other hints about order, number of items and even reinforcing the blank page telling them the order. I tried to make things a bit more challenging this time around and I think I ended up going too far. Even with my oldest being 11 right now, a logic lead like this seemed to be a bit much for him to gasp.

It’s an interesting balance, trying to find the right spot where the puzzles are easy enough for a younger person (11’s not really a child anymore) to understand and follow through on. It’s one thing when you’re in the middle of an escape room and you have an adult to work you through a problem. It’s another when you’re the oldest person in the room trying to figure out a puzzle. Ultimately, my oldest ended up a bit more frustrated with this latest spy puzzle set despite there being some new elements he didn’t quite grasp.

So, I’ve decided to give it another go and try something different this time. I’ve learned a lot from my previous two scenarios and I think I’m more finding my stride when it comes to kid-centric escape room kinds of games. I’m getting e better feeling for what they’re able to solve and what can keep them engaged in the game and wanting to figure it out.

It’s interesting to listen to podcasts (shout out to Escape Room Divas!) and read reviews of rooms with unique elements and fun twists and turns. I love hearing about their experiences and general details of what other rooms are like. I’m coming to realize more and more, however, that there’s a missing demographic of people that escape rooms are just too much for – our kids.

I’m not just talking about my kids here, I’m talking about kids in general. We as adults find it challenging to stretch our logic and work through these puzzles in order to make it out of the room in the allotted time. We reason through the puzzles given to us, using our own experience as a source for determining patterns and connecting random clues and items. If there’s one thing I’ve noticed about kids though, is that problem solving and learning about these patterns and solutions is part of their normal process.

We all remember what it was like, trying to find our way and navigating the halls of junior high or high school. We know how hard it was sometimes to figure out what was the right way forward. We all remember how difficult it could be to just make it and come out the other side unscathed. This is the perfect relation to what it means to be a good “Escape Artist” and get out of a room in one piece. Finding the clues, reading the patterns and making the logic jumps are all required to make it through school and life after that successfully.

The only problem with kids is that it takes a while for their logic centers to kick in. They can make some connections but not all of them. A lot of this depends on the environment they’re in too. From early on I was a part of the “nerd” crowd and we valued knowledge as a way that we could have our advantage. We worked hard to keep our grades up and to learn as much as we could about the world around us. We worked out the parts of our brains required for problem-solving and making those same kinds of logic jumps. It wasn’t really until later on, almost college, that the kind of thought process that an average escape room would require began to develop.

Now we need to roll back the clock and take it back down to an 11 year old and what kind of logic jumps he can make. It’s considerably less than the average 18 year old making his way off to college. It has taken a time or two to figure out the right level of the puzzles that would match someone of his age, but I think I’m getting there. The logical leaps have to be smaller and the clues need to be more obvious than they would for an adult (or even a high school graduate).

Part three will be coming up shortly and I feel like, having undershot the first time and overshot the second time that this third time should be more of the “charm”. Hopefully, the puzzles will make more sense and the narrative will help drive the story a bit better so they connect into one more cohesive piece with one clue leading easily to another.

It’s a tricky thing, trying to figure out what’s the appropriate mental leap for someone younger than yourself without being an educator. Teachers create entire curriculum around the kids they’re teaching, knowing what skill level they’re at because they’ve been taught that. Someone on the outside like me only has assumptions to base it on but I’m slowly learning…I’ll get there…

Escape Room, Tech

Creating an Escape Room App

Alright, so we’ve all played at least one of the multitude of escape room games that are available on our respective app stores. I’m pretty sure there’s not an escape room enthusiast out there that hasn’t. There’s just something about solving the puzzles to get to the final goal that’s appealing, physical environment or not. I’m currently working through one of the “Cube” games from RustyLake and I have to say, it’s excellent. (Much better than some of the other escape games I’ve picked up in the past.

I’m not here to talk about those kinds of escape room apps, though. While those are super fun and can provide hours of enjoyment, I’m taking more about applications that can be used to augment an actual room and be used as a part of some of the puzzles. I’m a member of several groups (such as the Facebook escape room enthusiast group) where people talk about the devices they use as a part of their rooms. They’re all pretty physical and involve a bit of electrical knowledge to get working. I guess that’s why there are companies out there that specialize in props just for escape rooms.

As a part of a recent project I’ve started on, I’ve wanted to develop a simple application that could be used as a part of the challenges for the room. I love a good challenge — escape room or not — and so I’ve been plotting how to create a simple mobile application that could be used as a prop in my project. I’ve been working to create an “escape room” for my kids and one thing that would fit in perfectly in the latest incarnation is some kind of keypad. Ideally, this keypad would allow them to enter at least one number and verify it against a pre-set value.

Now, I have to say, I am not a mobile developer. I come from a background in web development. While it would be easiest for them to use something that’s web-based, I wanted to use this opportunity to learn something new and create an actual mobile application. The idea is that, eventually, this application could be released on the respective app stores for use by other escape room groups looking for an inexpensive option to building the electronics required behind a full keypad in their rooms. In my case, I had a need for them to be able to solve a series of locks with numeric codes. So, it was a pretty easy choice to go with a basic number pad and allow them to enter the codes and hit the ✔️ when they’re done for verification…at least that’s the idea.

Using some of my own background in web development, I’ve worked up something using the Ionic Framework to create a mobile application without needing to muck around with the native code for each side (Android vs Apple). Ionic makes this simpler by allowing you to create an application with just CSS, Javascript, and HTML markup. So, as a first step, I’ve created an application that presents the user with a keypad and then verifies the code against a known value. It looks a little something like this:

It’s pretty basic right now, evaluating the input against a basic string but it’s a start. One thing that I’ve always enjoyed in my development career is learning new languages and new functionality. The language I’m using for this — Angular.js using Typescript — is a new one to me. I’ve largely been a backend developer working with languages like PHP and Python to create web-based applications so something more frontend-focused like this is a refreshing change. That’s not to say that it might not, in the future, have some kind of server-side component to it.

Until then, though, it’s just simple application, complete with keypress sounds! that takes in a code and verifies if it’s correct. When I started the project, I looked around the web to see what kinds of companies are building these interactive elements for use in escape rooms. There seem to be a handful of companies out there that create custom applications (mobile-based usually from what I can tell) for use in rooms right alongside of other more physical props. I’ll be interested to see if there’s any kind of interest in a simple application like this. I don’t have many plans to expand much upon the initial “match the codes, unlock the locks” kind if an idea for it right now. I’m just in learning mode, trying to figure out the pieces to make the application versus adding new features.

Do you have a wishlist for a phone/tablet-based application that could be used in one of your rooms? I’d be interested to hear about what you might need…

Escape Room, Kids, Puzzle Design

Lessons Learned Making a Kid-Friendly Escape Room

In my previous post I mentioned my first foray into puzzle design and trying to create an “escape room” experience for my two kids, one 8 and the other 11. I’ve always been a puzzle lover and my kids seemed to have inherited that passion. I didn’t tell them before I did it — I wanted it to be a fun surprise for a cold winter day. It was something to do other than the usual and, fortunately, they were all in once I told them what was about to happen.

As I started to think about the theme and what puzzles I wanted to incorporate into the storyline, I started to realize something. A large amount of the usual puzzles are more geared towards older players, usually adults. I found myself struggling to come up with something that wasn’t too challenging for the 11 year old but also wasn’t too hard for the 8 year old. They’re both pretty bright kids so I wasn’t worried about some things being a bit more difficult but it was still a tricky balance.

The Puzzles

In a typical escape room, there are clues hidden all over the place and different challenges to solve. I don’t have the resources (or location) to make a full-on room for them to escape from, so I just opted for a set of logic puzzles where some required searching in the house for the next clue. Ultimately, here’s what I put together:

It was a “secret agent” theme (pretty easy for a first try) and they had to help him escape by solving the puzzles and finding the final hidden message with the location of the base where he was being held. Trying to keep the challenge simpler, I opted for a single-path approach so they could work together to solve the puzzles and advance to the next clue.

Here’s the list of the ones I put together and a bit about how difficult they were for the kiddos:

  1. Hail Caesar!

The first puzzle was a Caesar cipher of a message at the bottom of the initial letter from the agent delivered to them in a manilla envelope. This envelope also included a paper cutout cipher decoder (doing this on the cheap, remember) I found and printed out. They weren’t familiar with how to use it, so I did have to give them a quick lesson. Once they got it, though, they figured out the message pretty quickly. The letter itself also gave them several hints as to what the offset was, bolding the same word each time it was used. This number is also used in a later challenge. I think this connection was a little vague and it tripped them up later trying to figure out the lockbox code it was a part of.

When the message was decoded, it directed them to the next location.

This same letter also included another clue that, when used with information in a later step, gave them one of the numbers they’d need.

2. Picture Puzzle

The next challenge was a picture puzzle, cut up into medium sized pieces from a letter-sized printout of the location for the next clue. They had to piece it back together and figure out exactly what was shown in the picture to find it. On this one, I think I made the pieces a bit too small for my younger kid. He got a little frustrated and wasn’t as engaged with this challenge. Thankfully my older son figured it out eventually and they made a mad dash off to find the next clue.

The envelope this puzzle came in also had a message on the outside, encouraging the players to keep going and providing another number (sort of hidden) they’d need later too.

3. The redirect riddle

The picture puzzle clue led them to the location of another manilla envelope and a lockbox with a keypad. The envelope contained only one piece of paper with one phrase on it. This phrase (in plain-text, no cipher) directed them back to the location where they found the picture puzzle — a book — but to look in a different part. They found this one right away as they’d already searched for the book earlier. This was a picture clue that leads them to the next manilla folder and the clue for the final number they’d need to open the lockbox.

4. The lockbox

Once they located the final manilla folder containing a clue, they opened it to reveal a picture of several differently colored objects but no additional instructions. This was one of the places where they were completely confused but I, a seasoned escaper, knew exactly what to look for. I guided them along the right path, showing them the method of counting the colored objects in the photo to give them numbers. This helped a little but then it required them to make another leap back to the original letter. Remember how I mentioned there was a color-related clue there too? I showed them how to apply this and they received the last number in the code to open the box. So, in this case, the numbers came from:

  • The number of offset for the Caesar cipher
  • The outside of the envelope with the message and “hidden” number
  • The color difference based on the clue in the original note

With these three items in hand, they could use them (in the order of discovery) to open the lockbox and find the final clue. This clue was just a line drawing of the location for the final letter and the information about the secret base.

This final letter congratulated them on solving the puzzles and finding the information before the “bad guys” found it. Mission completed, hooray!

The aftermath

So, after all this, I looked back and saw some of where things went well and where they were a little rocky. Most of the issues centered around their inexperience with the different types of puzzles. I was familiar with them because I’d done several before but they were brand new to it. This meant that I was following them around and giving them hints all along the way. In a typical escape room situation you’re only given a handful of hints — for them it was pretty much constant hints to keep things moving along.

The kids loved it, though, which is definitely a plus for me. It’s always nice to see when people enjoy something you’ve created, doubly so when it’s your own kids. I think in the future they’ll be better at solving some of these same kinds of puzzles based on their experience.

Would I do it again?

Absolutely! In fact, I’m already in the planning stages of Part 2 of the series. I’m sticking with the secret agent theme just because it’s easier and working up a series of puzzles that feel more like they’re trying to escape rather than just tracking down clues.

I learned a lot about what kind of puzzles are fun for the different ages in this first attempt too. While my younger son was often just happy to be there, he did get frustrated with some problems and disengaged. I had to rope him back in and even helped at some points to keep things going.

My plan for Part 2 is going to take a little bit different approach and try to create a setup where both kids can take on different challenges at the same time, each a bit more tailored towards their skill levels. I’m not quite sure how I’m going to push one in one direction and the other in the other but we’ll see…

Oh, and I’m a software developer by experience and so I’m also toying around with the idea of using a virtual keypad on a tablet/phone as the final place where they have to punch in codes for the escape.

Anyway, stay tuned! It was a great first trip into puzzle making and I hope the start of something cool!

Escape Room

The start of a journey

So I’ve always been a fan of puzzles. Even when I was a kid I loved working on jigsaw puzzles, trying to figure out riddles and struggling with the handheld puzzles made up of little blocks of wood and metal. I’ve always been inquisitive and wanted to know how things worked. I think that’s why I ended up working with computers as my full time job.

The Puzzle of Computers

I wanted to look under the covers and see how this “puzzle” of a computer actually worked. I wanted to understand what bits and bytes were and how the computer understood that when I pressed the “h” key, the letter “h” showed up on the screen. I was the kid that painstakingly copied the code from the pages of computing magazines and crossed his fingers for it to compile (nerd alert). But doing this and looking behind the screen lead me to a whole new world of pieces to fit together. It wasn’t long before I moved on and learned new programming languages, ultimately landing on PHP as a solid foundation. It was where I wanted to be: light, easy to learn and web-focused. I’d found my career path and was following it full-force.

That was around 12 years ago now. A few years back, however, I realized I needed something different and a slightly different focus on things. I didn’t stray too far and ended up going in the direction of application security instead of just straight up programming. I took on this challenge and read everything possible, learning how different security controls worked (more puzzles!) and how they fit together to make a cohesive whole. I shared this experience back out to the world through tutorials and conference speaking, hoping to make the puzzle a little easier for others trying to find their way.

I love puzzles, especially ones that are challenging in new ways and so I think that’s why I feel drawn to escape rooms.

Can’t Escape the Rooms

My love of the rooms started a few years ago when I attended a work-related event where an escape room was one of the “team building” exercises. I’d never done one before that and, while the idea sounded interesting, hadn’t really pursued it. After, however, I was hooked. I loved everything about it — the concept of each room is a different challenge, the props and mechanisms involved in solving the puzzles and, of course, the feeling when you solve that final puzzle and you reach your goal.

I’ve been researching them ever since, reading what I can get my hands on, listening to podcasts about them and researching ones in my area. In more recent weeks I’ve been taking the next step in combining my own love of puzzles with the idea of escape rooms: I’ve started to make my own.

Now, I’m not talking about full-fledged rooms complete with props and physical spaces. I’m talking about putting together a series of puzzles that lead toward an ultimate goal. I’m starting small, creating an experience for my kids to participate in and enjoy. I’ve only really put one together (working on another one!) and put it on for them to try out. While the younger of my kids had a bit of a tough time with it, the older one fully embraced it and worked hard at solving the puzzles. There’s something satisfying about seeing a participant really enjoy what you’ve made, even if it’s mostly paper props and printed out pictures.

Taking it to the next level

Before you jump to conclusions, no — I’m not talking about starting up my own escape room business here. What I am talking about, though, is really putting the effort into creating these experiences using what I have around (okay, so I may have gotten some new locks from Amazon) to complete the experience.

I’m no game designer and I don’t claim to be but there’s a wealth of information out on the internet from people that have been doing these rooms for a while now and have some very helpful tips. Based on some of these and some of my own storytelling, my kids were secret agents helping a fellow agent locate the enemy base. It was my first attempt and, based on how quickly they finished, a little short. I’ve been inspired by this, though, to work up something more complex for the next round.

I know it’s not exactly kosher to share the solutions to a room in public, so if you’re curious you can reach out to me and I’m happy to share. There were several different puzzles to solve including a solving a picture puzzle, finding a lockbox, discovering the pin and locating the final letter with the location of the enemy base.

So, wish me luck on the next “level” of this experience. It’s definitely a learning process but in my eyes, it’s yet another puzzle to solve — how to make something engaging, memorable and entertaining enough to spend around an hour solving!