Sound Mind, or, Where There’s a Will, There’s a Two-Player Hide-and-Seek Game For Playdate

Marking the release of my new Playdate game “Sound Mind” with a kind of retroactive dev log


This week’s release of games for Playdate’s Season 3 includes my game Sound Mind, my second finished game for the platform.

It’s a two-player pass-and-play game where you’re one of two siblings locked inside your recently-deceased father’s haunted study, trying to get the most of his cursed fortune for yourself while hiding it from the other. Inside the room, there are various hiding places as well as traps you can set for the other player, to hinder them and slow them down.

Most importantly, the room is filled with things that make noise. When it’s not your turn, you’re listening for the sounds the other player is making, to try and figure out what they’re doing, where they might be hiding, and where they might have hidden the money.

It’s kind of a weird game, on a handheld that doesn’t seem ideally suited to two-player games, so I’m grateful that Panic took a chance on the idea, and then found a place for it as a fun novelty in season three. I hope everybody who does get a chance to play it enjoys it.

Here are some of the ideas that went into the game, and some info about the (long) process of making it.

Eavesdropping

After finishing the game Sasquatchers, I knew I wanted to make something else for the Playdate, with the overriding philosophy of “not that.” That meant:

  • Simpler, since even an already-simplified take on Advance Wars and Pokemon Snap had taken me forever to finish
  • Shorter play sessions, since while I was working on Sasquatchers, I imagined the Playdate to be like a black-and-white GameBoy Advance, but in practice, I think it lends itself better to quick, pick-up-and-play games
  • Having a UI and animation system, along with an overall game architecture, from the start, instead of hobbling it together as I went along
  • Something I could finish in around six months

People who’ve been following the development of this game will be aware that I completely failed at the last part, but more on that later.

While I was trying to think of game ideas, my husband and I were in the process of planning a move to Los Angeles, which meant a lot of road trips between the Bay Area and LA. On one of these trips, we were at a rest stop charging the car, and he took out his Playdate.

I’d already been curious about how to make a multiplayer game work for the Playdate, but the network APIs weren’t available at that point, and I didn’t have any experience with network programming, anyway. I have noticed from the start, though, that the Playdate has a surprisingly powerful speaker for such a small device.

And as he was using the device, I could figure out what he was doing based on sound cues alone. That’s scrolling through the main screen, that’s opening up a menu, that’s the music from Pick Pack Pup, that’s a game I don’t recognize. It would be near-impossible for two people to share the screen on a Playdate, but you could hear everything.

That reminded me of the remake of an old Parker Brothers board game called Stop Thief! It has players as investigators against one or more players as thieves trying to get as much loot as possible. You use hidden movement to make secret moves around the board, and (in the new edition) put those moves into a smartphone app. The app then plays sound effects — footsteps, glass breaking, etc — to give clues to the investigators about where the thieves might be.

I immediately thought of a scenario of hide and seek or keep-away/capture-the-flag, where you’re holding a giant bag of money and trying to keep it away from the other player(s). And I remembered — or more likely misremembered, since it’s been years since I even watched someone play it — the game Power Stone, which I thought greatly reduced your movement while you were carrying the most powerful item.

Finally, it reminded me of the sound effects records we used to play at Halloween. My favorite was for Disneyland’s Haunted Mansion, which on one side had a story of two kids going through the mansion, and on the other just spooky sound effects. The title screen for Sound Mind has a loop of spooky wind noises and randomly triggered sound effects in honor of that.

And it seemed obvious that the best story involving two people fighting over money inside a haunted house would be that they were forced to spend the night locked inside as a stipulation from a rich relative’s will. The classics become classics for a reason.

It felt like I’d gone from initial spark to fully-formed game idea in under 30 minutes. What could possibly go wrong?

The Pitch That Writes Itself

I did a few write-ups on long-simmering game ideas to pitch to Panic, and I included Sound Mind as kind of a dark horse novelty idea that I didn’t honestly expect to go anywhere. It was more the case that I know that they appreciate weird stuff, and it might entertain somebody there who read their pitch docs.

Looking back at the pitch doc now, I’m amazed at a) how naive-to-the-point-of-arrogance I was in expecting this to be simple and straightforward, and b) how much I hate the quick-and-dirty mockup I’d made for it.

Yikes. But some of the core ideas were already there and made it through to the end unchanged. At the time, I was imagining it more like the Spy vs Spy game. Or at least, my vague idea of it, since the ubiquitous ads for it were so evocative of what the game must be like, but I never actually played it.

That first version of the game went like this:

  • The fortune is divided equally between the two siblings.
  • Each player has a bag of loot that they drag behind them.
  • On your turn, you’re trying to find the other player so that you can steal as many doubloons as possible from their bag.
  • Before your turn is up, you’re trying to find a hiding place, so that the other player can’t steal from your bag.
  • The more money you have, the slower you move. So it’s in your best interest to stash your money around the room, concentrate on stealing the other player’s money, and then pick up yours at game end.
  • When the game is over, the player holding the most money gets the entire fortune. If there’s a tie, the money is divided equally.

It sure seemed like a solid game mechanic, with an easily understandable win condition. And it seemed to be balanced in an interesting way from the start: you want to push your luck to get as much money as possible, while knowing that the more money you’re carrying, the more vulnerable you are.

And I especially liked the final part of the win condition, in theory. It had a little bit of the prisoner’s dilemma baked in: the optimal way to play the game would be to do nothing at all, since you’d end up with half of a fortune with no risk. It seemed thematically appropriate for a game about greedy siblings, and an awful rich guy trying to punish them one last time from beyond the grave.

It was a rare case of my coming up with an idea where the mechanic and theme seemed perfectly in sync, the mechanic had an inherent push/pull balance, and it would be easy to implement. All the challenge would be in figuring out the “set dressing” to make it more engaging.

I estimated a few months of development, which I knew was overly optimistic for me but would be a healthy challenge for myself, to encourage me to just hunker down and get it done. I figured worst case, it’d take about six months. That pitch doc is dated May of 2022, by the way.

The Promising Early Stage

Two things I did correctly on the project: got a working prototype as quickly as possible before going too deep into the artwork, and invested in coming up with a game architecture instead of making it up as I went.

The latter was something I learned during Sasquatchers, since I’d initially assumed that it would be wasted time to over-engineer a project in Lua for a one-bit handheld. Instead, I’d implemented things only as I needed them. What I discovered, though, was that I’d been making things harder for myself by special-casing everything. Later in the project, when I could use a variation on something I’d already made, development went a lot faster, and it was easier to try out variants and alternates. I could implement a new feature in an hour instead of taking a couple of days.

One specific example: to show a health pickup, I made an animated sprite that you could attach to a character, and it would move along with the character and dispose of itself when finished. Once that was in place, I could add all sorts of new status effects, just by changing the art.

The Playdate SDK is interesting because it combines a bunch of lower-level (relatively speaking) systems with some higher-level, very specific one-offs. You have functions to draw a rectangle, for example, or to draw a complete, fully animated “Use the Crank!” indicator. If you want a windowed UI with menus and animated panels and such, you have to implement it yourself, probably using the sophisticated sprite system. It gives you a ton of flexibility, but also means you start out each project with basically a blank page.

I reused some of the systems I’d made for Sasquatchers, with modifications for stuff that I hadn’t used or was poorly designed, and had a reasonably robust UI library in place within a week or two. (The one for Sound Mind still isn’t simple or efficient enough to release as open source or anything, but it worked fine for this project).

I did some experimentation on the art side, trying to come up with something that seemed like a distinctive style. A late addition to Sasquatchers was to add pseudo-achievements and a certificate of completion when you’d finished all of them.1This was inspired by the final screen of the game Uninvited, which both gave you a certificate to fill in your name, and also played Ode to Joy while a static image of your missing brother sat completely still for about 30 seconds before giving you the tiniest thumbs-up as reward. I tried to make it look like an engraving by using only horizontal lines on the Jackalope to match the shading in the source image. The end result surprised me because it looked like I knew what I was doing.

Based on that, I decided I’d try to see if I could do all of the art for Sound Mind with just black and white as if it were an ink drawing, using only horizontal lines, and occasionally stippling, for shading. For me, a ton of the appeal of the Playdate and its 1-bit display was seeing a return to the dithering patterns of the classic Macintosh; it immediately reminded me of MacPaint and HyperCard. But I’d already done that for Sasquatchers, so I wanted to see how far I could get with just the rule of “no dithering, ever.”

Early attempts were promising, so I was encouraged to experiment a little bit more and do more objects. The characters are (believe it or not) very loosely based on references: William Powell from The Thin Man and various promotional stills of Ava Gardner and Cyd Charisse. Once I had some objects and characters that I was generally happy with, I could start setting up a basic movement prototype:

Which let me focus on making a bunch of new objects:

And then about a month and a half later (based on the file timestamps, at least) have a fully-playable prototype:

With the art style working for me, I could focus on the game mechanics and timing without spending too much time worrying about walk animations and such.

That let me experiment with stuff like object placement, how big the room should be, etc. Some of the basics were already obvious: there should be at least two of everything, so you can’t tell which object your opponent used based on its sound alone. And there should be no area of the room where you can go without triggering some a distinctive noise (the cymbal monkey, the warrior fetish, the theremin, etc) to give a clue as to where you were.

At that point, there were only two small problems remaining: I’d already gone way over my estimated time, and the game wasn’t fun.

Development Heck

A big part of why I’d already gone past my schedule was that I had a day job, and I’ve never understood how game developers manage to finish projects while working a day job. And the job I had at the time was a bit stressful, so even when we weren’t crunching, I’d rarely feel like doing anything in the evenings besides decompress.

The game mechanic was a more significant problem. Honestly, I probably won’t ever do a two-player game again, or at least one that depends so heavily on hidden information, since this one was a beast to test as a solo developer. Especially since it was designed from the start to be pass-and-play, meaning that you can’t really test it online. There’s a reason why solo hide-and-seek never took off.

Even playing it while pretending that I’d had no idea what I’d just done over the last turn, it still turned into a constant back-and-forth that wasn’t satisfying. Part of the problem was dealing with abstract amounts of money, instead of just a single, big, sack full of it. You were having to guess how much you were holding and how much your opponent was holding, and whether you’d stashed some inside this chest or that box felt more arbitrary than strategic.

And the turn count and final turns seemed like an unsolvable problem. There wasn’t much of a sense of progression, but just your taking money from the other player and then their taking it back from you. A lot of that might’ve had simple solutions, but the first turn/last turn advantage seemed unsolvable. The entire game was decided by the last turn, based solely on whether the other player could find you.

I got some feedback on the first playable from Panic, and as always, they’re the best. Encouraging and extraordinarily patient. But I could tell that it was in the state of “this could become a good game at some point,” more than a good game that needed polish, because it simply hadn’t come together like I’d imagined.

After I left my day job, I was fortunate to be in a position where I didn’t need to start looking for work immediately. So I figured I could finally work full-time on finishing this game and be done with it. But then, I heard about an opening for what was literally my dream job, one that seemed as if it couldn’t be more perfectly suited to me. I’d have been a fool not to apply for it, and I ended up getting it. Which meant going back to having only evenings to commit to Sound Mind.

Even so, I was still stuck on finding the hook that would fix the game. I’m super grateful to my friend Seppo Helava, for indulging me in several very long email conversations hashing out various alternatives. There was so much back and forth, and I took up so much of his time, that I’m not even sure which ideas came from where. It is safe to assume that all of the ones that don’t quite work are mine.

And this veers a bit into too-much-information territory, but I think it’s worth calling out: depression. I started taking varenicline (brand name Chantix) to stop smoking, because I’d had some luck with it years earlier, and didn’t think there were any major side effects besides nausea. What I hadn’t realized was that it does have an effect on my mental state, but it happens so gradually that I hadn’t noticed the first time. Others had, but I’d just chalked it up to a bunch of lousy things happening all at once. In any case, it killed my motivation to do anything at all, and destroyed any momentum I’d had on the project. Every issue with it seemed insurmountable.

The version I eventually landed on:

  • There’s one sack of money, so one thing to focus on
  • Each player is trying to deposit doubloons into a piggy bank that can’t be stolen from, so you’re making clearly visible progress throughout the game
  • The money is hidden at the start, so the first player doesn’t have an immediate advantage
  • You can end the game early by depositing the maximum number of doubloons into your bank, so that the second player doesn’t have an advantage in the end game
  • You can put a trap into a sack to try and trick the other player into picking it up. If they spring the trap, it’ll slow them down (they can’t do anything until they get rid of it) and in some cases, make it impossible for them to hide
  • Each piggy bank has an object nearby that you can sabotage (a suit of armor, and a stuffed bear) to slow down the other player even further

There might still be some simple and elegant tricks that would’ve made the original design more engaging, but I’m happy that this version has such a clear and easily-understandable goal and win condition, since the rest of the game is kind of weird.

References and the People Who Get Them

Since I was planning on a game that was so heavily dependent on sound, it was a good thing that I’m friends with professional sound designers at Bay Area Sound. When I told my friend Jared Emerson-Johnson the pitch, he described it as “Foley: the Video Game.” I used temp sounds during development, and he and Julian Kwasneski came through with a great combination of ambient noise and sound effects that had to range from realistic to cartoony.

One of the things I knew I wanted in the game was a warrior fetish, like the one in Trilogy of Terror. That was a made-for-TV horror anthology from 1975 with stories about terrible things happening to characters played by Karen Black. The one most memorable to people around my age was the segment called “Amelia,” where she buys a creepy wooden figure that goes nuts and tries to kill her.

Since Jared is such a brilliant composer, it was a drag that the game couldn’t really have any music apart from the occasional stinger, since the sound effects had to always be prominent. I asked for a short bit of music that would play over the conclusion screen, and I wanted it to evoke the opening credits of the Mystery series on PBS, which were animated by Derek Lamb using artwork by Edward Gorey.

The art and setting of Sound Mind had already started to resemble an attempt at Gorey’s style, which became more intentional the longer I worked on it. Reading his Amphigorey collection as an adolescent was a huge influence on me, since his style and sense of humor remain unmatched.2My favorites are The Willowdale Handcar and The Curious Sofa.

Jared nailed the ending music, of course. But while we were chatting online and I shared the video from Trilogy of Terror to give an idea of what the warrior fetish sounded like, he called out the background music. This YouTube video has the entire segment, but the relevant part starts at 12:48. I hadn’t even noticed the music, since it was so ubiquitous as “TV horror/suspense” that it just blends into the background. But he wanted to do a couple variations, just for yuks. Within a half hour he’d made three versions that were absolutely pitch perfect.3In the game, they play over the reading of the will, and the introductory screens that recap the rules.

A late addition to the game was Doctor Whatsit, the helpful robot. This was entirely because James Moore at Panic had found an adaptation of the Software Automatic Mouth code and ported it to the Playdate. I had SAM on the Commodore 64 and was kind of obsessed with it, and later with Macintalk for the Mac Plus. I wanted it in the game even if there weren’t a good place for it.

If you’re in a game where you’re trying to sneak around and keep quiet, the least helpful thing is a robot announcing everything that you’re looking at. This originally took the form of steampunk AR goggles, which would’ve caused a lot of problems with animation, so I finally settled on a Speak-and-Spell-like toy that would helpfully name everything you’re using.

A few other ideas that didn’t make the cut:

“Mysterio’s Cabinet,” which would magically teleport you to a random hiding place somewhere else in the room. This was replaced with the magic wardrobes, which work like a front-of-the-room counterpart to the secret bookcase passages.

Voodoo dolls of the twins, which you could use to take some damage yourself (you’d move more slowly for the rest of the turn) but would signal you exactly where your sibling was hiding (they’d say “ouch!”)

The Fiji Mermaid, which would be a monkey’s paw-type of device that would either grant you a wish (take me to my sibling, or bring the sack of doubloons to me) or randomly penalize you.

There was also a wall safe behind the father’s portrait above the fireplace. You could find envelopes containing earlier drafts of the will, which could change the rules in your favor. This was to throw some chaos into the game, having the rules change frequently like the card game Fluxx. You had to find a will with a rule that you liked and then sneak it into the wall safe to make it take effect.

That whole mechanic was cut in favor of the “Secret Clause” game mode, which gives each player a secret goal, for instance: Kane can earn two extra doubloons every time Mabel triggers the theremin sound effect.

Development Tools

Sound Mind isn’t particularly sophisticated in terms of what’s going on under the hood, but I usually think it’s interesting to hear what tools and techniques developers use.

Much of the art was first done in Procreate for the iPad, which is the best drawing software I’ve ever used. It was then imported to Pixaki for iPad, which is designed for pixel art and animation. I’d draw over the original sketches and then usually do animation there.

I used Photoshop for combining and exporting most stuff, all the while looking for something that could replace it and free me from Adobe once and for all. The best contender I’ve found so far is Pixelmator Pro, but despite the name, I haven’t been a big fan of how it handles pixel art with a fixed palette and resolution, as required by the Playdate.

For the title screen, and for the revolving walls and bookcases, I used Blender. I did this very late in the process because I thought it would be overkill for a project like this, but it turned out to be one of the easiest parts of the project. Even for simple drawings, trying to get the rotations to look right started to feel like me trying to make Akira by myself.

The title screen is just flats with an animated camera, but the effect looks a lot more impressive than what’s actually happening. The most time-consuming part was having to clean up each frame by hand, because the horizontal-line shading breaks when scaling.

All the code is in Lua, except for James’s port of SAM, which is in C.

The most useful chunks of code:

  • A windowing system based on Playdate’s sprites, with panels that can have custom drawing code and update calls, plus a nested list of sub-panels
  • A state system for object classes, where you can have named states (e.g. “open,” “closed,” etc) that can override the default behavior for that class
  • A “sequence” class, where you can cue up a chain of events like animations, sound effects, function calls, etc, and then fire it off to run asynchronously
  • A sound manager, which has groups of sfx (like “footsteps on wood”) and choose from them randomly without repeating

A couple of the funnest things to work on:

  • The theremin, which uses the Playdate’s built-in synthesizer to change pitch as you get closer or further away from it
  • The Victrola, which plays for about twice as long as you spend cranking it, and then slows down as it loses energy

The Future of Sound Mind

During development of the game, there was the suggestion of making it asynchronous online multiplayer. You’d play your turn, it would upload everything to a server, and then your opponent would hear a playback of every sound you made, and then play their turn.

At the time it seemed if not impossible, then at least more trouble than it’d warrant. For one thing, the game had been conceived from the start as pass-and-play, so I never put any consideration into saving the game state. For another, I’m not a network programmer, and I’ve only done the lightest bit of experimenting with it.

Now, I don’t think it’s as daunting as I’d originally estimated. But I’m not sure it’s necessary, either. I was talking about it with my husband (who’s a huge fan of online multiplayer games, incidentally), and he pointed out that a lot of that initial appeal was something you could play together with someone in person. It does kind of limit the audience for the game, but it’s also what makes it unique. Maybe it’ll make more sense at some point, but for now I’m personally happy thinking of the game being what it is.

Another thing I realized during development is that I’ve inadvertently made like 80% of what would be required for an adventure game on the Playdate. I do have an idea for a game that could use the same characters and the same setting (but more than just the room), and I do have more experience with adventure games than two-player hide-and-seek games.

The issue is that adventure games might be the most resource-intensive type of game there is, something I never really appreciated when I was just firing off ideas and not having to draw, animate, and program them myself. It might be a good opportunity for collaboration with a better artist.

The Present of Sound Mind

At the moment, I’m happy the game finally found its place, as a novelty embedded in a package of some really excellent games in Playdate’s Season 3. It is, again, a pretty weird game, and it won’t be everybody’s thing. My hope is that it’ll become one of those things where the people who like it enjoy it a lot.

Out of everything I’ve made and worked on, Sound Mind is the closest thing yet to getting a peek inside my brain to see how it works. For better or worse.

And there’s no way it would’ve been possible without Panic. Not just for choosing the game as one that matches their freak, but for the whole Playdate project. Coming up with this whole platform dedicated to enabling creative ideas, and then inviting people to have fun with it. It feels like a little bit of a cop-out when I say “thanks to everyone at Panic” instead of naming individuals, but the issue is that every person I’ve ever dealt with there, without exception, has been just great.

I’m happy that it’s finally done and out there, and that I can be pretty proud of it. (At least until all of the obscure timing-related bugs start to come in. I may have made a game that was difficult to test since it’s two-player only, but at least I made sure that it was heavily dependent on timing. The “double threat,” as they say). But don’t let me scare you off. If you check it out, I hope you have fun!

  • 1
    This was inspired by the final screen of the game Uninvited, which both gave you a certificate to fill in your name, and also played Ode to Joy while a static image of your missing brother sat completely still for about 30 seconds before giving you the tiniest thumbs-up as reward. ↩︎
  • 2
    My favorites are The Willowdale Handcar and The Curious Sofa. ↩︎
  • 3
    In the game, they play over the reading of the will, and the introductory screens that recap the rules. ↩︎

Leave a Reply

Your email address will not be published. Required fields are marked *