The goal of Enigma is simple: type up some text to make the word "enigma" to appear in order to get a hint to the password, and then type up some more text to get said password to appear. There is, however, one major inhibition to this process: the text that you type into the game is not the same as the the text that comes out. At first, the changes to the inputted text are simple (i.e. 'a' produces 'b', 'b' produces 'c', and so on), but this quickly changes as the game progresses. The goal is to figure out how the text is changed so that the output can be controlled by reversing the process (i.e. to produce 'a', type 'z'; to produce 'b', type 'a'; and so on).
In addition to figuring out how to manipulate the output, the player must also figure out the password that will beat the level through the clue generated by the word "enigma". The clue could be one of many things, including an easily misinterpreted verbatim copy of the password, a reference to a common English expression, a math pun, a reference to song lyrics, or a reference to a dead poet's poem. Skillful navigation of your favorite Internet search engine may very well be a necessary skill for some of the trickier clues.
Unlike other puzzle games, the average player (and even the skilled player) should not expect to completely conquer the game, but should rather strive to progress as far as they can into the game and then challenge their newfound personal limits. The game difficulty is extremely extensible, which means that Enigma should always have the capacity to be a challenge to its players, no matter how good they get at the game. However, the difficulty of harder levels should not deter those who might not yet be ready for those levels. In Enigma, game difficulty is increased as gradually as possible, with new concepts being introduced in their simplest form via a dedicated level.
For the game executable itself, go to the "Downloads" tab above. For the source, click on the "Source" tab and then on "Browse".
Linux users: As written, the source does not compile into a Linux binary (the cls() function works by sending the "cls" command to the (Windows) terminal running Enigma Cipher, but all other code is (or should be) platform independent). However, the Windows binary runs well on Wine. The cls() function, though, does nothing in Wine, which means that the terminal screen doesn't automatically clear during the course of the game.