This project is a bit of a self-inflicted ordeal... I set off to make the nerdiest, most minimalistic, least aesthetically pleasing game possible (complete with annoying simulated screen glitches).
Here is how it works:
At the top of the screen is a list of 16 ternary values, "?" (undetermined) "0" or "1" (they all start as "?"). The objective is to change these values until they match a randomly generated binary sequence (i.e. containing only "1" and "0"). You navigate through the sequence using the "left" and "right" arrow keys. Changing a value is done using the "up" and "down" arrow keys.
The way you guess the sequence (or key) is by looking at the generated binary strings that cascade down the screen. The first string (hidden behind the key) always contains one single "0" (located at a random index, where your cursor is also initially positioned). Each subsequent string/line contains one more bit. The way the sequence grows from line to line obeys the rules defined by the key. If the key value at one particular index is "0", then if the string grows from that index, it will be appended to the left. If it's "1", it will be appended to the right. Furthermore, the newly generated bit is the opposite of the "parent" bit from which it grows, so the second line (generated using the single "0" in the first one) always contains a "0" and a "1". If it is "10", then it means that the value of the key at the index at which the seed "0" is located is "0" (the "1" was added to the left of the seed). If it is "01", then the value of the key is "1" (grow to the right). For each subsequent line, a randomly chosen bit is used as the "parent" bit, until the complete string of 16 bits is generated (bottom line). The new bit is always inserted immediately to the left or right of the parent bit (so if the parent is not located on the edge of the string, other existing bits are "pushed" into the corresponding direction). Obviously, the sequence cannot grow "off-screen", so the resulting string is shifted as needed.
Because the parent bit used to grow the next line is often ambiguous (for instance, "1001" can be generated from "101" by adding one "0" to the right of the first "1" or to the left of the last "1", you will almost always need several cascades to reconstruct the entire key. Generating a new cascade is done by hitting the "z" key. Finally, you can check the accuracy of your guess by hitting the "x" key (each erroneous bit will be marked by a "!"). To return to the game, hit "x" again. Obviously, players who wish to challenge themselves should use the "z" and "x" keys with parsimony (ideally only checking the key when all bits have been guessed).
Enjoy the brain torture!
BTW, this version was compiled with the Pocket C.H.I.P. version of Pico-8, which IMHO makes the game the perfect companion to the cyberpunk mod of the C.H.I.P. ;-)
I dig the concept of 'the hardest part is to make sense of the manual'. It's perfectly legit (KTANE is based on it), and I love it !
There's a mechanics problem, though : you can only guess a bit of a key if it's used to grow. Since the bit used to grow is chosen at random, you may have to generate many sequences with 'z' before having a chance to guess all bits. That might be slightly annoying.
Thanks for your comments ~firefly~
Even though statistics are on your side (i.e. with 15 independent growth events per cascade, the probability that a bit is never used quickly becomes quite low) I agree that this can be frustrating, especially for "edge" bits. I have an idea to fix this. Watch out for V1.1 ;-)
[Please log in to post a comment]