Learn JavaScript concepts by solving puzzles where your code changes the game world in real time
Play progressively harder levels that introduce new API functions and programming patterns
Create and share custom levels using the documented level file format
Run the game locally for offline play or to experiment with the source code
Untrusted is a browser-based puzzle game where the challenge is to write actual JavaScript code to progress through levels. The story follows a character called Dr. Eval who is trapped in a computer world and can only escape by modifying the program that generates his reality. Each level presents you with two things side by side: a grid-based map you navigate as a player character, and the actual JavaScript source code that created that level. Most of the code is locked from editing, but small sections are deliberately left open. Your job is to figure out which parts you can change and what to write there to open a path to the exit. You are not just playing the game, you are editing the game code while it is running. The levels start simple and get progressively more complex, introducing new programming concepts and API functions along the way. You can only use the functions and variables that the game exposes, so part of the challenge is understanding what tools are available to you and what they do. There is a reference panel in the game that lists the available commands. The game runs in a web browser and requires no installation. Developers who want to run it locally can use the included build setup, which merges the source files and optionally starts a local server. There is also support for creating custom levels and mods, documented in the README with details about the level file format. Untrusted was made by Alex Nisnevich and Greg Shuflin. The game and its soundtrack are licensed under Creative Commons Attribution-NonCommercial-ShareAlike, allowing non-commercial use with attribution.
← alexnisnevich on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.