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
Shattered Pixel Dungeon, ported onto the mwg framework (dedicated fork)
Translation pending
GamesJavaScript · TypeScriptGitHub @datamocOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
A genuine, block-by-block TypeScript port of Shattered Pixel Dungeon
(SPD), built on top of the mwg game
framework and running entirely client-side in the browser.
This is an independent, unofficial port. It is not affiliated with or endorsed by Evan
Debenham, SPD's author, who does not accept code contributions or suggestions of any kind
for the original project (see CLAUDE.md's "Upstream contributions" section) - this repo
exists precisely so that work here has somewhere to live on its own.Read the full README ↗A genuine, block-by-block TypeScript port of Shattered Pixel Dungeon
(SPD), built on top of the mwg game
framework and running entirely client-side in the browser.
This is an independent, unofficial port. It is not affiliated with or endorsed by Evan
Debenham, SPD's author, who does not accept code contributions or suggestions of any kind
for the original project (see CLAUDE.md's "Upstream contributions" section) - this repo
exists precisely so that work here has somewhere to live on its own.
spd-on-mwg-<version>-standalone.html - the whole game in one file. Works from an
email attachment or a USB stick; open it directly, no server needed.spd-on-mwg-<version>-debug.apk - Android, debug-signed, sideloadable as-is.spd-on-mwg-<version>-desktop.zip - Windows (.NET WebView2 host): unzip and run
MwgDesktopHost.exe.v0.2 - the first version this project calls complete: a hero can take any class from
sewer to Yog and win, on real Java numbers. Every deviation from the real Java behavior -
simplification, deliberate divergence, or outright gap - is tracked honestly in
PORT_COVERAGE.md, and outstanding work is tracked in
ROADMAP.md. Broadly:
PORT_COVERAGE.md for
the specifics.ROADMAP.md.npm install
npm run dev # local dev server
npm run build # produces dist/index.html, openable directly via file:// - no server needed
npx tsc --noEmit # type-check
npm run build # full build
npm run test:simulation # combat/turn/buff simulation suite
npm run test:items # item workflow suite
npm run test:lua # MWG Lua AI compatibility suite
npm run test:mwg # MWG SaveSystem/facade compatibility suite
npm run verify # all of the above, including the build
Browser verification (visual, in-game behavior) is a separate manual step - type-checking
and a clean build are not evidence a feature actually works. See CLAUDE.md's "Browser
verification workflow" section for the details.
GPL-3.0-or-later, matching SPD - see LICENSE. This port legitimately reuses
SPD's real Java source values and formulas (translated into TypeScript, never copied
verbatim as Java text) and SPD's real art assets (copied byte-for-byte into src/assets/,
with provenance noted in src/images.ts). The mwg framework it's built on is a separate,
generic, MPL-2.0 project maintained independently - see CLAUDE.md's licensing-boundary
section for how the two are kept apart.
The Java asset registry can be audited and extracted with the repository tool below. It reports referenced assets missing from this port and can copy missing binary files explicitly; it never embeds binary asset data in TypeScript.
node tools/extract-spd-assets.mjs --spd-root <path-to-spd-checkout> --check
node tools/extract-spd-assets.mjs --spd-root <path-to-spd-checkout> --copy
node tools/extract-spd-assets.mjs --spd-root <path-to-spd-checkout> --check --strict
CLAUDE.md - working rules for this repo: the licensing boundary, the
mwg dependency, verification requirements, and the browser-testing workflow.PORT_COVERAGE.md - the authoritative, per-system record of what's
ported, simplified, or not ported, and why.ROADMAP.md - outstanding work, organized by system.RELEASING.md - release targets and how to cut one.SIMULATION_ARCHITECTURE.md - how the sprite-free
combat/turn simulation layer is structured and tested.MWG_EXTRACTION.md - notes on the framework/consumer split and the
local-checkout integration tools, relevant only when developing mwg itself alongside
this port.