Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

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!

(1 edit)

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.

(2 edits)

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.