Decipherism
Overview
A puzzle game where you solve the encoding machine ciphers.
The key features are:
- Puzzles that can be solved in more than one way
- Complex cross-level secrets
- A stylish in-game manual
- Immersive interface
- Custom levels support + levels editor
This game is a Game Off 2022 game jam submission.
The game jam theme is cliche. Therefore, you're hacking a Penth Hexagon using some retro-style hacking device with bright green consoles.
Estimated game play time: 2-5 hours, depending on whether you're willing to clear the bonus content or not.
Note: this game performs better in Chrome than in Firefox. Also, you can't run custom levels in browser, use download a game executable for that.
How to play
The in-game manual could be enough for some players, but it leaves a few aspects undefined on purpose. If you don't want to fill the gaps on your own, here is a short overview about how this game is intended to be played. In a sense, it is a spoiler.
Every level (called component) consists of some encoding machine. It turns the text input into some encoded output. For instance, you run it with "hello" and get "ohell" as an output.
To clear a level, you need to decipher the access keywords (encoded keywords). You do that by typing the non-encoded (original) keyword into the input text field.
How would you know what to type in there? This is an actual gameplay: you need to figure it out on your own. You have an encoder simulation device at your disposal. It can encode any input using the same algorithm that was used to encode the keywords. The encoded keywords are listed in the right section of the interface. You can try to backtrack their transformations individually.
The text input is controlled as you would expect it: type some letters in, remove text with backspace, move the text cursor with arrows. Enter runs the simulation with the current input value. Space pauses the simulation. Tab toggles between the normal and terminal modes. Escape always works as a "go back" button.
You unlock new terminal features with your game progress.
The progress is saved automatically.
Creating and running custom levels
The custom levels feature is only available in the desktop builds of the game (i.e. not in browser).
Related instructions:
Known issues
- You need an English layout to type anything in
- The game may look weird on some unsupported resolutions
- System UI scaling may break the game window
Credits
There is no "credits" screen anywhere in the game, please see CREDITS file for license-related information. Game source repository can be found at github.com/quasilyte/decipherism-game.
Status | Prototype |
Platforms | HTML5, Windows, Linux |
Rating | Rated 4.4 out of 5 stars (15 total ratings) |
Author | Iskander (quasilyte) |
Genre | Puzzle |
Made with | Tiled |
Tags | 2D, Ciphers, cryptography, Difficult, Hacking, Math, Singleplayer |
Average session | A few seconds |
Languages | English |
Comments
Log in with itch.io to leave a comment.
Very nice game. I finished all story levels, but I can't access the bonus levels (they do not appear; the last green thing is the block 6). I play the game in browser.
The bonus levels are opened if you manage to decipher the compound cipher of associated story levels.
It requires a lot of effort though. :) There is a single hint about the compound cipher in the in-game manual I think.
P.S. - finishing all story levels is an accomplishment as well as the second half of the game requires a good understanding of the game. Nicely done!
Thanks for the tip. I managed to solve everything, including the bonus. It's a really nice game. I have one question: was the entire game supposed to be solved by hand? I used python to solve all the levels (it was a fun challenging problem; thank you so much for this experience).
It’s cool that you used your programming skills to aid you! I wonder how much code you had to write to solve it, which libraries were used, etc.
Well, it is possible to solve the puzzles by hand. A “terminal” panel gets upgraded as the story levels are cleared. It gives the player hints about the level that should help in manual hacking. It might require a text document for some levels with ambiguity (there are only a few) so you can track multiple branches.
The game was created for a game jam (although a long and chill-paced one), so the game lacks the polish. The difficulty curve is also all over the place.
The first couple of levels I solved by hand, but after that I thought about automating it :).
The code is plain python + a library to check if a word is valid english word (there are around 1000 lines of code; half of the code are levels definitions). A level is defined by the chains of possible transformations from input to output (I either define them by hand or I can define the entire graph of nodes and have an algorithm generate all the possible transformations chains; there are some corner cases: 5b+ component 1 and 6b+ component 1: these levels have variable length loops in them; for these I just limited my generator to a max number of loops and it did the job). For example, 1b component 3 is defined as 2 chains with 1 transformation each: the first chain has decrement, the second chain has increment.
Each transformation represents a function with string in, string out. Each transformation has an associated inverse transformation (inverse of increment is decrement, etc). Because not all transformations are bijective functions, the inverse transformation produces a list of possible inputs based on the output word. From here, given the output word, I go through the chain (backwards direction) and apply each inverse transformation. This results in multiple possible inputs and I then filter only the english words.
Ahaha, so you implemented the reversed pipeline from the game, kinda. :D
It’s especially good that you handled 1->n transformations and managed to work around the loops.
excellent game! Made me have to break out python
Loved this game! Took a couple hours, but I finally fully completed it. My only complaint was that some of the transformations and their iconography are not explained anywhere. I had to actually go into the source code to figure out what the three dots was referring to, for example. Thanks for the fun!
Thank you for playing the game! I wasn’t expecting many people to score 100% completion. :D
The three dots thing is there to keep some things cryptic on purpose, so there is some exploration and experimentation left for the player. It’s usually possible to finish most of the levels without a full understanding but the combined puzzles (the ones that unlock the bonus levels) require ~full understanding of everything. This is a bonus (optional) content, so I felt that it was fair to keep it challenging. :)
This is pretty cool! Though, the "fnv_even" branches are... annoying. The manual itself says it can't reasonably be predicted, so it's hard to treat it as anything other than a deterministic RNG call.
Cool game, great concept. Was fun to figure out the puzzle. I definitely got a little confused more than a couple of times. Love the graphics (especially the notebook stuff for instructions), and sounds are great too. Played as part of the GitHub Game Off live stream:https://www.twitch.tv/videos/1712660556
Congrats on top ranked too :)
Oh, yay! I’ll gladly watch the recording.
<3
Sorry for the confusion during the gameplay. I’m not good at creating player-friendly introductions into the game.
For instance, there should be a popup message about what’s going on when “output” looks like “encoded keyword” but it’s not registered as a correct answer. It’s an encoding collision. Different inputs sometimes may encode identically. But the player is trying to find a “keyword”, not the encoded keyword output, so it’s always a real word like snowball instead of some gibberish. There is a manual page for output collisions, which appears after completing a level while hitting a collision at least once (the game gives a sound cue that it’s a collision).
This is probably the thing I need to fix: make game more easy to understand. As some other people said, it needs an interactive tutorial.
Thank you for playing!
on the first part of the second level, i have an input that gave the correct output but was wrong. it used the second road instead of the first one.
what is "unchanged" for the branching info? i understand everything else but i still can't understand the "unchanged" branching info
(Spoiler alert for other readers)
–
–
–
–
–
The “unchanged” condition compares the current text value against the text input. If they’re equal, it’s considered to be unchanged. So if we start with “abc” and rotate it twice, it’ll go through
abc->cba->abc
, the unchanged condition would be “true”. Otherwise it would be false.oh thx, that makes sense
maybe you could add it to the notes because its the most different branch
I wonder if “input_unchanged” name instead of “unchanged” would make it more self-explanatory.
yeah, probably
Interesting game
This game is incredibly interesting and unique! I love how creative the puzzles (as far as I've seen) are, and the aesthetic looks really nice!
Also, really thankful for the alphabet guide, especially the dots (and the notes about ciphers). So glad it's there and I didn't have to google it.
Still stuck on finding the secret word on 4 though, is there another solution for this? Sorry and thanks for making this game!
I’ll try to go spoiler-free. :)
The
(+)
operation is a no-wrap form, so if we apply+
onZ
it remainsZ
(a normal+
would turnZ
it intoA
).Also, you may want to use a terminal “value inspector” feature and see how the input changes over the encoding steps (use “tab” key to toggle a terminal mode). Take a closer look to that
rot13
transformation.Keep in mind that it’s a bonus content, I never expected every player go for the compound encoded keywords. :) But it looks like you’re doing great!
i'm in the same pickle
i am trying with z or y but neither work T_T
If you managed to complete a level and it was removed (or renamed) from the next build, you might get a situation like this:
I’m not even sure I want to fix it. It’s hilarious.
/Overhacking Happened!/
"Multiple solutions" huh?
Oh, congrats. If you will beat the level, you will unlock an extra manual page about the encoding collisions. :)
“Multiple solutions” as in you can find a solution using different ways. You don’t always have to do a backtracking, for instance. :)
Yeah, I saw that.
Look what we have here.
You’re really good at finding these! :D
It's honestly easy. I'm just surprised this happened.
I would say that it’s an unfortunate misfeature. I may try to eliminate most of these ambiguously encoded words from the keyword lists. I don’t have an automation for that right now and no extra spare time. :( I’ll keep in mind that this issue could be bothersome for the players!
I am unable to add anything to the INPUT box. I can only erase items.
Problem solved
Was it a keyboard layout issue? Only English layout is supported right now.
I use English
Apparently, it's caused by Caps Lock.
Well done dev on this game. This was the perfect game for me and I am so happy I came across it. It took me way too long to get through it all, but I stuck through it and got the 100%.
I honestly think this can be a great steam game! My recommendations would be to add simple tutorials for new components to the board and a definition page to the notes, as I was quickly stuck on some of the branch abbreviations, and not sure what they wanted me to do.
I had some weird stuff happening with the saving of some levels, but I assume this relates to browser-based saving.
I can actually see this game expand into a full-on game with a campaign, backstory, lore, and many more levels.
I hope that you will take this gem and expand on it as I really enjoyed the experience to the point I was losing sleep thinking of how to beat a level.
Well done once again on a brilliant game!
I added a manual page explaining the abbreviations. :) I think it fits the game well.
Previously I used the phrases like “chars” in the manual a lot, but then changed it to “characters” and “letters” that are more player-friendly. Maybe I could have kept the programming jargon in there while providing a separate vocab note page. :) Writing is not my strongest side though as you might have guessed by this point. :)
This game is, and I don't say this lightly, amazeballs.
First of all, I adore the aesthetic, both the green-on-black old-school monitor look, but also (and especially) the handwritten-on-graph-paper with doodles on the side look of the help/notes. (OMG the American Chopper meme. Perfect.)
Second, it's just not like anything I've seen before. It's codebreaking but it's not just a mechanical "and now go look up the pigpen cipher" kind of thing, it's clever and non-trivial and yay.
I'm about halfway through at this point (finished both halves of blocks 1-4, haven't yet attempted 1+ through 4+ or 5), and I'm absolutely going to keep going, but a few very quick, very minor notes:
And I think that's it. Looking forward to coming back for the second half.
Thank you for such an elaborated comment.
I tried to fix everything you mentioned plus a little more.
The comments like this encourage people to continue with their gamedev hobbies. I may borrow this wisdom and go playing and commenting others game to make this vibe flow. :)
Vibe away!
Finished the game, and definitely enjoyed it to the end. Didn't even mind it calling me a nerd for doing the + levels. :-) There might have been a few more "well, it's one of these two options, I'll just try them both" decision points, but, hey, there's more than one way to solve a puzzle!
Please add more easy levels in the future! I really liked it, but I'm not smart enough to decipher the complicated ones.
I may just be missing something but I can't figure out what I'm meant to be doing
Hello. I’m sorry for the inconveniences.
I added the “How to play” on the game page. Let me know if it makes anything more understandable.
It does, thank you. I quite like the style of this game as it is quite unique, I was just having some trouble on how to go forward.