Writing a tool for web-based puzzles part. 1 : The Need
I have yet again gained interest in playing web-based puzzle games. I recently rediscovered Joey Muller’s 2014 Not The Future, which is one of the easier ones(except for the Super Hard Mode) and decided to move on to the big scary boss: David Münnich’s 2004 notpr0n, from the same David Münnich who released Supraland. How scary is it? Well, in 2015, Clinton Nguyen at VICE (of course it’s VICE) reported that only 34 people have ever beaten notpr0n. And frankly? Understandable. It is 140 levels long, requires obscure trivia and requires to be quite knowledgeable about computers too. There does exist one or two complete walkthroughs, but most of the answer lists you’ll find only cover up to about 10 levels. I’ve only decided to tackle it because Not The Future’s super hard mode has for its first level a hint that the answer is linked to notpr0n level 66.
What would be useful for a game like this?
I’d quite appreciate having a tool with which I could take notes on my current playthrough, including branching paths. I’d also appreciate it if I was able to go back to where I was, with it automatically entering the password I had found for the puzzle.
About branching paths, I do not think notpr0n uses them, but I know for a fact Not The Future does. Slight spoiler: it calls them simulations, which are linear and you receive a password at the end to write down. It would be useful to know what the password for a given branch is, or to have notes about what resources I might have used during the solve of a branch so that I can maybe reuse them for another puzzle.
The best way to go about branching paths is a tree, where you have a root point which has children points who themselves have children points. This can go down an infinite amount of layers, or rather as many layers as your RAM and swap will allow.
Also, notpr0n has some challenges like Not The Future where the goal is to find another URL, but it also has a lot of challenges where you need to enter a username and a password. The way these work is with HTTP authentication, and these can be nicely automated by this structure:
https://USERNAME:[email protected]/example
What I decided to make
Meet Ariadne. Ariadne is basically a way to take notes about what you’re doing in a tree. It relies on raylib for windowing and inputs and ImGui for, well, GUI. It has two keyboard shortcuts: Ctrl+Shift+R to reset the layout, Escape to unselect the current step you’ve selected. It’ll also feature Ctrl+O and Ctrl+S, but that’s for the next devlog. It can already load XML files with pugixml, but it can’t save them yet.
What is(n’t) implemented
You can navigate a tree and write some stuff in. The XML for one step is this:
<step name="" url="" description="" username="" password=""></step>
and it can contain other steps to form a tree of paths to take. Unfortunately, you can neither save your progress to a file or choose a specific file yet, so it isn’t really usable. The example XML provided in the repo is an incomplete but very spoilery map of Not The Future. It also doesn’t have much in the way of customization, but custom colors and fonts will probably soon come as well.
Is it portable?
I develop on Windows and I don’t really have a chance to test on things like Macs, but as far as I can tell, all specifics here are abstracted by the libraries I’m using. Presumably, yes. Will there be builds for those platforms? Probably not.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.