Exploit: Zero Day - Headless Swarm, the first season

The Majesty of Colors Remastered - Coming early 2017

Abandoned Prototypes: Decrypt Puzzles

Our throwaway prototype for the experimental Decrypt puzzle type

Our cyberthriller puzzle game Exploit: Zero Day has a single puzzle type right now, which we call a Matrix puzzle. It's a minor refinement of the puzzles found in my old Flash game, Exploit. It's always been our intention to have multiple kinds of puzzles for the sake of variety and a sense of progression, but so far we haven't accomplished that goal.

One puzzle type that we've sketched out but haven't finished implementing is the Decrypt puzzle. It's got a solid concept, but it just hasn't gelled into something that we feel confident about releasing. In this article, I'll discuss what our standards are for Zero Day puzzles, what the Decrypt idea is about, and a few ideas we have for making the prototype work.

Matrix Puzzles

The puzzles in the original Exploit were inspired by the special effects and visualizations you see in cyberpunk and hacking media. Neon lines and glowing grids, data shown as physical packets or streams, and system components rendered as chunky, geometric forms. My initial design work on Matrix puzzles (back in 2009!) arrived at a puzzle type that we think satisfies three essential criteria for what we want in Zero Day.

First, Matrix puzzles are evocative. Not only does their general aesthetic suggest exciting (and slightly cheesy) cyberpunk hacking, but individual puzzles can be laid out in a way that evokes their role in the story. A puzzle representing a cell phone can look like a cell phone. A puzzle during a race against time can require you to perform actions quickly. A puzzle involving two connected computer systems can be split in two spatially with only a few connections.

Second, Matrix puzzles can be clever. While they usually only have a single solution (or a few very similar solutions), the process of solving them is a series of logical leaps connected by careful reasoning. Solving a Matrix puzzle feels like figuring something out. On the flip side, creating a Matrix puzzle requires you to think about the solution steps. It's easy to make an unsolvable or frustrating Matrix puzzle, but it requires creativity to make one that's fun to solve.

Third, Matrix puzzles have variable, bounded difficulty. There's a broad range of trickiness in Matrix puzzles, beyond just making one bigger or more complicated. You can have a puzzle that's huge but turns out to be quite easy, or you can make a tiny little puzzle that's fiendish until you figure out how it works. However, in order to submit a puzzle you must demonstrate that you can solve it yourself, and memorizing the solution only gets you so far.

Ideally, any puzzle type we include in the game would provide these three things. Puzzles in Zero Day serve both a narrative and a mechanical purpose, so they need to have multiple axes of appeal.

The Decrypt Concept

The weird beauty of the DES cipher.

The idea for Decrypt puzzles arose from the strange cryptic beauty of cipher diagrams. Encryption schemes are often documented using strange flowchart-like diagrams to make their functionality more clear than would be possible with a series of incomprehensible equations. The concept of encryption is also an excellent fit for our game's themes.

The concept for our prototype is that puzzle creators will design a cipher, constructing a sequence of operands. The cipher has a certain number of steps; the original "plaintext" of a message is transformed by each step in turn until it becomes an incomprehensible "cyphertext." Call the creator's cipher the "reference cipher."

Solvers of the puzzle need to reconstruct the correct cipher diagram by experimenting with different plaintexts, seeing how the hidden reference cipher transforms them, and then using that information to lay out their own cipher. For example, if the plaintext "AAAABBBB" becomes "BCBCBCBC," then the solver knows that the cipher must include an operand that interlaces its input and another operand that rotates the input letters through the alphabet.

The solver gets to experiment with simple plaintexts, but once they have the correct answer they would decrypt the original message written by the creator, which might be a large paragraph of story-relevant text.

The Problems With Decrypt

Over two years ago, we made a prototype of Decrypt. It was confusing, ugly, and quite clumsy to use, but that's to be expected for a throwaway prototype. The big problem was that it didn't score very well on the criteria discussed above.

The Decrypt prototype wasn't particularly evocative. While the puzzles in general look cool and diagrammatic, one Decrypt puzzle looked mostly the same as another. They were all a series of branching paths. The idea of a story-relevant message to decrypt was cool, but until the puzzle is solved it just looks like a bunch of random characters. Besides, we already have system postmessages: a chunk of text that serve as a reward. Duplicating that seems a bit silly.

The prototype also didn't tend toward cleverness. Any random arrangement of cipher blocks works as a puzzle, so there's no need to come up with a tricky concept as a puzzle creator. As a puzzle solver, certain puzzles might allow for leaps of logic, but if a puzzle gets even a little complicated it can quickly become frustrating or impenetrable.

That means that the difficulty is also disjointed and unbounded. Either a puzzle is slightly tricky, requiring some clever experimentation, or it's overwhelmingly difficult. Since the creator doesn't need to demonstrate that a solution can be arrived at logically, they can just create a hugely complicated set of cipher blocks that no solver could hope to figure out.

For these reasons, after creating a prototype of the puzzle type, we saved the code but didn't bother going any further.

Fixing Decrypt

I still like some of the ideas from Decrypt, and I'd love to see it turned into something that actually met our criteria for puzzle types. Here are a few of the concepts that are bouncing around in my head.

Mastermind: Based on the folk game Bulls and Cows, this is a well-known "codebreaking" game that has you try to guess your opponent's chosen code; with each guess you learn how many characters are exactly correct and how many are correct but in the wrong place in the code. We could do something similar with Decrypt, letting you find out how many cipher blocks are correctly placed. This would improve the difficulty curve, but wouldn't help with the other issues.

Nonograms: I've been playing a lot of Pokemon Picross lately, which is an example of a broad category of grid-based logic puzzles where you determine the layout of a puzzle based on the constraints provided in the puzzle. If we switched the layout of Decrypt to be on a grid, we could do something similar. This would allow a more manageable difficulty, and the layout of the cipher blocks would let creators be more evocative with their designs. However, I don't like how nonogram-type puzzles ask so little of puzzle creators in terms of demonstrating an interesting solution experience. Creators can still just make an arbitrarily difficult puzzle without needing to demonstrate that they themselves could solve it without foreknowledge.

AI Solver: We could implement an artificial intelligence that can solve this sort of puzzle, and require puzzle creators to provide enough clues that the AI can figure out the puzzle with a given level of difficulty. This would be cool, but implementation would take a while and the interface for generating the clues might end up being hard to design.

Themed Clues: If we're keeping with the idea of experimenting with feeding different inputs into the cipher, we can make those inputs determined by the creator, not the solver. Instead of providing a ciphertext that's only deciphered at the end, we can have a set of evocative experimental plaintexts that represent in-story clues. For example, a Decrypt puzzle about an oil company could have available experimental inputs of CRUDEOIL, FRACKING, and REFINERY.

Looking Forward

We'll probably rescue the Decrypt concept at some point; we want to be able to provide players with novel experiences as they move forward, especially if they're paying for segments of story. When we do, it's likely to incorporate some of the concepts above.

What do you think about the Decrypt concept? Do you have any insights or suggestions? Please let us know in the comments below.


Exploit: Zero Day is a cyberthriller with living story where you roleplay as a hacktivist by solving and making puzzles. If you're seeing this but don't have Alpha access to the game yet, join the mailing list for a key when we send this month's newsletter. If you're a streamer, YouTuber, or member of the press, request keys from distribute().

Previously: Next:

Similar entries

comments powered by Disqus

Pingbacks

Pingbacks are open.