Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
A Vim-learning game wrapped in a cyberpunk spy-thriller. Play in the browser, no install.
Translation pending
GamesTypeScript · JavaScriptGitHub @johannes-kaindlOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Learn Vim disguised as a cyberpunk spy thriller — an AI handler hands you missions that are really Vim exercises. One core, three targets: Obsidian plugin, web app, and Tauri desktop.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Learn Vim by playing a cyberpunk spy-thriller.
▶ Play in the browser
·
Desktop downloads
A handler named CIPHER assigns you "missions" that are really Vim
exercises — restore CORP-corrupted documents, fix glitched transmissions, beat
the clock. You end up learning Vim almost by accident; the spy-thriller is the
hook. Same game ships three ways from one codebase: a web app, an Obsidian
plugin, and a native desktop app.
Welcome — CIPHER intro
NEXUS — mission picker + status
Briefing — story before each mission
Editor — CodeMirror 6 + VimRead the full README ↗A handler named CIPHER assigns you "missions" that are really Vim exercises — restore CORP-corrupted documents, fix glitched transmissions, beat the clock. You end up learning Vim almost by accident; the spy-thriller is the hook. Same game ships three ways from one codebase: a web app, an Obsidian plugin, and a native desktop app.
.dmg, Windows .exe/.msi, Linux .AppImage/.deb/.rpm). The macOS
.dmg is Developer ID-signed + notarized (opens without a Gatekeeper warning); the
Windows installer is currently unsigned. Installers are attached per release; if none
fits, build the desktop app from source.npm install
npm run dev # web app → http://localhost:5173/
npm run build # full build (content → web)
npm test # test suite
npm run build:dmg # native desktop app + macOS DMG (needs Rust + Xcode CLT)
Contributor guide: CONTRIBUTING.md · architecture & internals
for agents/maintainers: AGENTS.md.
New players start with the Player Manual — a Diátaxis-structured guide:
npm run build:manual).Contributors and maintainers: the Developer docs follow the same four-part structure.
TypeScript · Preact · CodeMirror 6
A small monorepo (npm workspaces): a platform-neutral core (game logic, Web
Audio, Preact UI) with thin adapters for the web, Obsidian, and desktop. No
UI kit, no CSS framework. See AGENTS.md for the architecture.
Why there is a build step: the editor is the product here, and CodeMirror 6 only exists as an npm module graph — there is no single-file drop-in. On top of that, one source tree has to come out as three different artifacts: a lazy-loading web bundle and static assets for the Tauri desktop shell — and the same core is vendored by the Obsidian plugin in its own repo. A bundler is what keeps that one codebase instead of three.
This repository is the upstream for every NeuroVim target. The vendor surface is
packages/core/src (game logic, engines, ports) plus packages/content/src
(missions and lore). Everything else — the web app, the Tauri project, the scripts —
is a consumer of that surface, not part of it.
To build on it: copy the surface into <your-repo>/src/vendor/neurovim/ and pin the
origin in a VENDOR.json next to it (source, tag, sha, version). Never edit
the copy — change it here and re-vendor. A copy that is edited in place is silently
discarded by the next re-vendor.
Current consumers and how far their pins lag: CONSUMERS.md.
Issues and PRs welcome on git.jkaindl.de.
Please read CONTRIBUTING.md first.
NeuroVim is dual-licensed — see LICENSING.md.
LICENSING.md; contributions are covered by the CLA.Documentation and narrative text (docs, missions, lore) are licensed under CC BY-SA 4.0. The bundled JetBrains Mono font is under the SIL Open Font License.