Maudelyn’s Quest

I am pleased to share Maudelyn’s Quest, a TOJAM game created by the Natural Language Dev team (Braydon, Jonathan and I) as well as the talented programmer Mic Fok and fantastic artist Kat Pavlova.

Maudelyn’s Quest is a match-3 narrative adventure, in which you (literally) puzzle your way through tough decisions.

It was a blast to make, and I am so proud of our team’s effort. The project was rather ambitious (the play time is about 20 mins), but we managed to pull it all together and develop a cohesive experience, with wonderfully drawn pixel art.

It was my first experience with Yarn for Unity, and I learned a lot about how it can be used to integrate complex branching narratives into a game. Here are some screenshots of the unique mess we made with Yarn.

I hope you enjoy Maudelyn’s Quest, and I will be back in a few weeks with a new update about Natural Language.




Natural Language Dev Blog 06: Pixel Sorting Visual Tests

ARG visuals typically fall into one of two categories, either closely mimicking their real life counterparts (fake police department, corporate website, etc) or signalling their place firmly outside the norm (glitchy hacked site, ancient cursed book, etc).

For Natural Language, we want to explore both of these aesthetics within a single site, while at the same time maintaining a cohesive visual style. The game’s website is a marketing tool for the AI OS and will look the part – full of inviting stock photos of mountains, idyllic tranquil shots (as above) and happy young people. But as the player digs past the marketing veneer of the site’s exterior, those same images will become warped, degraded and affected as the AI attempts to express themselves with the limited tools at their disposal.  

We looked into various digital image manipulation tools and computer vision programs, like DeepDream, but chose instead the autogenerated corruption of glitch art. We’ve found several approaches that will work well for Natural Language, but none is more visually appealing than pixel sorting. We discovered the technique through the work of Jessica Andersdotter, a Swedish artist who blends the process with unique colour work, and Crooked Cosmo, a bot created by Zach Whalen and Adam Ferris that applies the process to images from space.

The technique uses a program to isolate and sort a horizontal or vertical line of pixels in an image based on criteria such as hue or brightness. The most popular method is done in Processing, using Glitch Artist Kim Asendorf’s ASDF Pixelsort script. We also found the online tool by Diego F. Goberna useful for tests, although there is more control within Processing.

We’re still experimenting, but we’re happy with the results so far. We’ll be using other glitch techniques, but the specifics of which may become puzzles themselves, so we won’t go into much detail for now.

Test 1 – horizontal, minor shift

Test 2 – vertical, major shift

Test 3 – horizontal, major shift, reversed

That’s all for now. See you in two weeks!


Natural Language Dev Blog 05: NPC Interaction Using Gmail Labs

The design constraints of Natural Language limit ours means of interaction with the player. One of the most direct methods we have at our disposal is email. Therefore, we must ensure the interaction is as realistic as possible, without committing to personally responding to each email. The happy medium is Canned Responses, a Gmail Lab that allows for keyword triggered responses.

With Canned Responses, we can create a wide variety of automated responses to player input. We’re still testing the limits, but it seems to allow for at least forty separate message triggers. These responses act both as a narrative dialogue tree and a gating mechanic for puzzles. It’s a useful tool for ARG creators, but it comes with its own unique set of challenges. I won’t go into the basics of setting up Canned Responses, but you can find more about that here.

The filter system allows for unique responses to specific senders, subject lines and keywords (or the lack thereof) in the body of an email. These keyword triggers can be a single word, a string of text, or an entire sentence – but there is an issue with combinations of words. In the example below, an incoming message containing the phrase “O dulcissime domine Iesu Christe verus Deus, qui de sinu summi patris omnipotentis missus es in mundum peccata relaxare, afflictos redimere, in carcere positos soluere, dispersos congregare” will trigger the “Duke Valefor,” “Marquis Amon” and “King Beleth” canned responses, which will confuse the player and break the illusion of a natural response. [Note: To avoid spoilers, we’ll use dummy puzzles and answers as we discuss the details of Natural Language There is nothing about Goetic demons in Natural Language. At least not yet.]

With an obscure Latin phrase, this may not seem to be an issue, but that changes when one keyword is “Intelligence” and another is “General Artificial Intelligence.” This creates an interesting writing dilemma, as the questions posed by an NPC demand very different responses from the player. There can be no crossover at all in the player input, or the NPC will send the wrong (or multiple) response. Essentially, each new keyword expected from the player has to be striped from the vocabulary of all future interactions. We’re still working to develop an in-game justification for the demand of hyper precise language from the player.

Speaking of in-game justification, another key Canned Responses challenge is conversation threading. The filters only recognize new incoming messages and ignore contents of a reply thread. Therefore, we need the narrative to justify why the NPC can’t recognize replies. As our story deals with QA testing, we can suggest an unspecified project management software integrated with the NPC’s email to justify the rigid interaction constraints. That sounds like a stretch, but for other projects, this no-reply policy can be even harder to explain.

The final issue to consider with Canned Response is a clear negative feedback. Because we’re using the email as an explicit puzzle mechanic, the player needs immediate feedback to their input. Regardless of their message to the NPC, a player should never be met with radio silence. To address this issue, we’ve created a generic wrong answer message that is sent whenever the player submits an email without any of the keywords on our list [see example below]. Therefore, the player will be able to instantly learn the content of their solution was incorrect, rather than wondering if the issue was instead with the delivery method.

Despite all these challenges, Canned Response is still valuable for ARG creators, and will be an important tool for our team. It has a lot to offer and can be used in all sorts of interesting ways, which is a lot to say for a free lab describing itself as “Email for the truly lazy.”

That’s all for now. See you in two weeks!


Natural Language Dev Blog 04: Breadcrumbs in Research Puzzles

Artificial Intelligence is a fascinating topic with countless areas to explore. In the past weeks, we’ve read everything from popular magazine critiques of the limitations of Deep Learning and open-source AI development Slack channels to EU parliament resolutions on transparency in robotics research. It’s easy to get lost in the both the scope and the specifics of the topic.

Thanks to the work we put in to the narrative breakdown document, we’ve managed to focus our reading on areas of study that relate closely to the story of Natural Language, and deep dive into technical discussions only as they relate to specific puzzles. Yet how do we, as designers, ensure our players don’t get lost trying to follow our path through these topics?

I love how ARGs expose me to new subjects, and give me an excuse to explore them. A well constructed research puzzle can be more than just a window into a complex field, it can be a road map. But it’s easy to lose sight of the goal in all that research – and that’s part of the fun, but only if the player chooses to get caught up in what they’re reading about. It’s less fun if they’re searching in vain down a dead end, having taken a wrong turn early on, with no indication of what’s happened.

The solution to this issue lies in the breadcrumb approach to puzzle creation. When I was designing puzzles for Ahnayro: The Dream World, my producer Andrea Doyon instilled in me the importance of leaving a clear line of breadcrumbs for the player. These are not meant as hints to be used right off the bat when a player first encounters a puzzle, but rather as signposts, indicating the correct direction of research.

Let’s apply some breadcrumbs to a puzzle about a complex and highly specific topic of AI development; automatic speech recognition (a machine’s ability to recognize and correctly interpret spoken language.) Let’s say our solution is Listen-Attend-Spell, an automatic speech recognition neural network developed by the Google Brain Team. As breadcrumbs, we could mention:

  • D69404109 –  the Registry Domain ID for Speechnotes, a voice to text app, which provides a hint about speech to text
  • 94041 – the postal code of Mountain View, California, the location of the Google Brain headquarters, which provides a hint about Google Brain
  • .d 17/08/1909 – the day Fred Speller, a famed british football player, died, which provides a hint about Speller, the name of the decoding neural network in the Listen-Attend-Spell architecture.

As the player begins their research, they may come across a Google Brain article, and see the group’s headquarters in Mountain View, or mention of automatic speech recognition, like Speechnotes, and know they are on the right path. Correct use of these breadcrumbs will reassure the player about their research choices, so that they can be sure they are going deeper into the right direction. If they go down a path and don’t hit any mention of any of these breadcrumbs, chances are they’ve take a wrong turn in their research and need to back track until they can find the correct trail.

In the example above, none of the breadcrumbs should be the main clues, since they could all lead away from Listen-Attend-Spell at first. Instead, they should be added to the puzzle as additional hints. As to how to properly incorporate breadcrumbs into puzzle language, and teach the player to recognize them, we’ll get into that next time, as we dive deeper into puzzle creation.

That’s all for now. See you in two weeks!


Natural Language Dev Blog 03: Narrative Breakdown

Over the past week, we worked to solidify the core narrative of Natural Language and create puzzle and progression mechanics. We now have a strong foundation for the story, the puzzles and the tone of the game, and it is time to take the next step. The problem is, at this stage the next step is not always clear.

We could dive deeper into research about our main topics (AI, logic-based communications and CETI), but we’ve already got a good base of work from which to draw. For creating a speculative fiction game about issues and technology important to today’s world, we will definitely need to do more detailed research, but not until we have a better understanding of our focus. We could get further into puzzle design, but without the full narrative framework, creating anything complex would only lead to puzzles divorced from the storyline.

Instead, we’re going to focus on drawing more details from the initial narrative outline. We can identify the key areas on which to focus our energy moving forward by breaking down each section of the game into pieces. You can find the template for this detailed breakdown here.  Once again, feel free to use this however you like. At this point, I’m guessing it’s pretty obvious that these dev updates double as lessons for the process of designing an ARG.

At the head of each section, the “Types of Puzzles” and “Feeling for the Player” categories are meant to ensure the game keeps the player engaged throughout the game. We’ve only begun to apply this breakdown to our ideas, and it has already led to key insight. We realized we had too many research puzzles towards the end of the game, and were able to redesign those sections to provide more variety. This simple, broad planning saved us a lot of design time down the road, and ensured we didn’t work hard on creating those puzzles only to have to throw them out.  

I learned the importance of the “Feelings for the Player” category from my friend and former colleague Steven Patterson when we were working on Season 1 of The Black Watchmen. We tasked our players with so many different and complex puzzles, that we needed to establish a special focus for each section of the game. Steven had the idea of specific roles, or feelings, for each mission, i.e. for this mission the player should feel like a geologist, so how can we design experiences around that? How can we make puzzles based on the work geologists do, but abstracted enough that a player with little knowledge of the intricacies of geology can still understand and enjoy the task? For Natural Language, the player initially assumes the role of a QA tester, but we want to expand beyond that, so it is important to consider which other roles we want them to assume, and then design the puzzles around those feelings.

The final point I want to touch on at this stage is the research notes section at the bottom of each puzzle. This is a means of organizing the research we’ve already done into the specific areas that influence each part of the game, and it provides us with a roadmap of what needs to be researched further. For instance, we’re looking to create a puzzle around a specific programming language used in 90s AI development, and we’ve identified the details of that language we need to learn more about. Now when we dive into researching it, we’ll know exactly what to look for.

That’s all for now. We are about to get into more detailed and in-depth development, so I’m going space these Dev Updates a little more. So see you in two weeks!


Natural Language Dev Blog 02: Narrative Planning


First of all, I would like to welcome Jonathan Levstein to the project! Jon, an experienced web developer, founder of Toronto Game UX and technical lead on the next Aether Interactive project, will be taking over the technical side of the project. We are excited to welcome him to the team and you can all look forward to beautiful design on the in-game website!  Thanks Jon!

We are now in the narrative planning stage of Natural Language, working on the overall rollout of the project. The early stages of designing an ARG can be challenging – trying to assess how best to communicate a branching narrative and planning puzzle structures. You want to be sure to hit all your major plot points, using different and engaging means to communicate each. You need to plan the difficulty curve of the puzzles and make sure they offer diverse challenges to players. And, most importantly, you need to plan how you’re going to get all this content to the player, and how they will interact with the game and advance in the narrative.

For Natural Language, we broke the story into 6 key sections, and then discussed the important points of each. Once we identified the key points, we could worry about delivery methods and get into the details of the rollout.

The next major discussion was content delivery and points of interaction for the player. Due to the constraints of this project, we had a clear delivery method – a few email accounts and website. The player would receive instructions via email, learn the bulk of the narrative through the website, and progress with both. While pathfinding can be a key gameplay element for many ARGs, I prefer to offer a clear path forward for players. No matter how challenging the puzzle, the player always has a clear input method that they can validate their answers. As a player, I often get frustrated when I’m stuck not knowing whether I haven’t found the right key or the right lock. Therefore, in Natural Language, we will always give the player two means to test a possible solution – either through replying to emails or direct inputs on the website. No matter how complex the process to find the key, the player will always know what it unlocks. A handwritten email response will be unfeasible on a large scale, but the Canned Response Gmail Lab  can do a remarkable amount of different responses to key words and phrases.  I’ll go further into Canned Responses in a future post, when I discover just how much we can squeeze out of it for this game.

Below is the template we used for planning each section of the game. The format helps quickly identify the focus of each section as well as identifying a communication method of each narrative point. It can also be helpful for planning the themes of various puzzles, to ensure you give the player a variety of different styles, and closely tie the mechanics of the puzzles to the narrative of the section. Feel free to use the template for whatever purposes you like. You can access an easier to use version of it here, on Google Drive.

Section 1: Name

Overview: One sentence highlighting narrative and core mechanics of section

Mode of communication: Means of getting information to the player

Assets needed: List of all sites, comms channels and visual content needed

Narrative Info:

  • Each narrative point that is delivered in the section
    • Given via: Means of delivery

Hidden Narrative Info:

  • Any hidden/optional/side quest narrative material delivered
    • Given via: Means of delivery
    • Consequence of discovery: Will this affect the progression of the game for the player or the community as a whole?


  • Overview: One sentence highlighting mechanics of each puzzle
  • Puzzle Type: (visual, audio, codes, research, logic, etc)
  • Focus: Thematic focus of the puzzle
  • Player’s goal : Stated goal, either known to the player once they uncover the puzzle, or once they solve it

Result: One sentence highlighting conclusion of the section and what has been gained by the player (and or the community as a whole) by completing this section.

Notes/Links: There are also notes and links to things you wish you had time to read.

That’s all for now, see you next week.


Natural Language Dev Blog 01: Constraints

Natural Language, my new project with Braydon Beaulieu, is the first chapter in what is hopefully an ongoing series of games exploring the motivation of AIs and their interactions with humanity. Natural Language is meant to be both a stand alone mini-ARG and an introduction to a larger story.

Going into this project, I want to set four clear design constraints for the game:

  1. All in-game content must only be delivered from a single website and two email addresses.
  2. The game can be played by a single player (with help from the community) anywhere in the world.
  3. The playtime of the game will range from 1 to 3 hours, depending on how the player solves puzzles.
  4. A player will be able to start the game at any time and complete it at their own pace  it requires no outside input once set up.

I created these parameters for two main reasons: to make the game more inviting to new players of the genre, and as a challenge to my team. These constraints will only apply to Natural Language, and not future games in the series.

ARGs are a fascinating and deep medium, but this depth can be rather daunting for new players. The sheer volume of content and possibilities can quickly overwhelm newcomers and deter them from a game before the narrative has a chance to get them hooked. Furthermore, the time commitment involved in staying up to date with an ongoing ARG campaign can be too much for some players, who can quickly fall behind, and feel like they are only witnessing past events from the sidelines, rather than taking part in an evolving narrative.

I want to make Natural Language inviting to as many players as possible, and hopefully act as an introduction to ARGs for newcomers. The playtime and content delivery constraints will ensure that new players are not overwhelmed with the scope of the journey on which they are about to embark. My time at Alice & Smith also taught me the value of persistent ARGs  games that allow players to join, from the start, at any time. While Natural Language will have nowhere near the scope of an Alice & Smith game given the difference our studios’ sizes and resources, I want to invite newcomers into the experience in the same way.

From a design perspective, I’m excited at the challenge of working within these boundaries. I often have the urge to create a new website, social media channel, etc., just for one puzzle, only to cast it aside immediately afterwards. This can be distracting for the player, who has to learn about a new character or entity just to forget about them as they continue in the game. With the constraints of a single website and a pair of email accounts, we’ll be forced to consider reusing pre-existing elements in the game in new ways, and make players look twice at elements of the game they’ve already explored, and view those elements in a new light. The rest of our parameters will enforce this goal of creating deep content, rather than a world which is spread too thin.

Finally, I am excited to start an ARG project in such an open way. I want to share as much of the process as possible without creating any major spoilers for the final game, and invite others to join the discussion. Thank you for joining me on this adventure!

See you next week,