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
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A calm 3D browser game that teaches Dr. Rulin Xiu's teaching on how to manifest.
Chapter 1 is "Receive": one small grey valley, a breath rhythm, three springs,
one soft fog, one seed and a bridge. No enemies, no score, no timers.
Built with TypeScript, Vite and Babylon.js. Every shape, texture and sound is
generated in code; there are no model, image or audio files.
• CLAUDE.md — the content, stack, performance and art rules for every chapter
• REPORT.md — what was built, test results, measured sizes and frame rates
Any static host works. There is no server and no network call.查看完整 README ↗A calm 3D browser game that teaches Dr. Rulin Xiu's teaching on how to manifest.
Chapter 1 is "Receive": one small grey valley, a breath rhythm, three springs, one soft fog, one seed and a bridge. No enemies, no score, no timers.
Built with TypeScript, Vite and Babylon.js. Every shape, texture and sound is generated in code; there are no model, image or audio files.
CLAUDE.md — the content, stack, performance and art rules for every chapterREPORT.md — what was built, test results, measured sizes and frame ratesnpm install
npm run dev # http://localhost:5173
npm run check # typecheck, lint, unit tests
npm run build # production build into dist/
npm run e2e # browser tests, writes screenshots/
Any static host works. There is no server and no network call.
vercel.json sets the build and the
cache headers; nothing else to configure.netlify.toml does the same.npm run build and upload dist/. Paths are
relative, so it works from a subfolder too.A real URL is the only way to check the performance budget: 60 fps on a
mid-range laptop and 30 fps on a mid-range Android phone. Open it with
?debug=1 and read the fps and tier lines in the panel. If the tier drops
on its own, the watchdog decided the device could not keep up at that tier.
| Keyboard | Touch | |
|---|---|---|
| Walk | WASD or arrows | Joystick, bottom left |
| Breathe in | Hold space | Breathe in button |
| Breathe out | Hold shift | Breathe out button |
| Turn the camera | Drag the mouse | Drag the screen |
| Push | E | Push button |
| Plant | Enter | Plant button |
| Pause | Esc | Pause button |
You can walk from the first second. Your stride is short until your first finished breath, then it opens up and stays open.
A light travels with you. She names what you have just met and, at a blockage, opens a teaching. She never talks over a breath and she never says the same thing twice. A teaching that waits for you is closed with its own button; everything else goes on its own.
Teaching films, when there are any, live in public/teachings and are fetched
at the blockage they belong to, never at the start. Every one of them has the
same words written underneath it, so a muted phone or a screen reader loses
the picture and nothing else.
| Parameter | What it does |
|---|---|
?debug=1 | Debug panel with calm, light, scene, fps, tier, learning checks and an export button |
?scene=N | Start at scene 1 to 6 with the right amount of light |
?autobreathe=1 | Breathe automatically with calm breaths, for the browser tests |
?nopaint=1 | Turn the painting filter off |
?quality=low|medium|high | Pin a quality tier instead of measuring one, and turn the watchdog off |
Code in this repository is the project's own. The three fonts in public/fonts
are under the SIL Open Font License; their licence files sit next to them.