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 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A browser arcade game with a deterministic simulation, replay tests, and switchable 2D and 3D renderers.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
FUSE/GRID is a single-player, deterministic bomb-grid arcade you play in the browser. Flip REAL 3D ⇄ CLASSIC 2D from the cabinet menu, pick your Heat on LEVEL SELECT, and clear every enemy to advance.
Share that URL with the trailing slash so chat apps load the preview card (og.png, 1200×630). The no-slash redirect drops Open Graph tags.查看完整 README ↗INSERT COIN. Light the fuse, clear the room, don't stand in the blast.
Fusegrid is a single-player bomb-grid arcade you play right in your browser. Flip REAL 3D ⇄ CLASSIC 2D (or hand-pixelled PIXEL) whenever you like, dial the Heat to CORE, PLUS or MAX, and blow your way through eight rooms of bricks, foes and chiptune.
No install needed, no account, no server. Just press start.
Sharing the link? Keep the trailing slash:
https://hmarzban.github.io/fusegrid/. The no-slash redirect drops the Open Graph tags, so chat apps show no preview card (og.png, 1200×630).
The one rule: clear every enemy in the room to advance.
| Input | Action |
|---|---|
| WASD / arrows | Move |
| Space (or J / X) | Place bomb |
| Shift + Space | Throw (needs THROW) |
| Q | Detonate remote (needs REMOTE) |
| Walk into a bomb | Kick it so it slides (needs KICK) |
| R (in a run) | Reset the camera and zoom |
| P / Esc | Pause (RESUME / RESTART / OPTIONS / QUIT TO MENU); ↑↓ + Enter pick a row |
| M (paused) | Quit to menu |
| Space / Enter (end screen) | Next room, back to the menu after the finale, or a new run after GAME OVER |
| C (end screen or STATS) | Copy your result or your stats as text (both say COPIED, or COPY FAILED) |
| B (end screen) | Copy the board's challenge link (the end screen says BOARD LINK COPIED) |
| T (STATS) | Open the MEDALS page |
| R, R (STATS) | Reset my cabinet (two presses; any other key cancels) |
Menus run on the arrows, Enter and Esc. Powers marked * in the in-game
HOW TO need their pickup first.
On a phone or tablet, a virtual D-pad and bomb button sit off the board. In portrait they dock low in the thumb zone (the board centres on the menus and slides up under the pause button during a run). In landscape they sit in the side gutters, with pause above. Holding THROW or REMOTE? A matching button pops up beside the bomb button (in the right gutter in landscape). STATS's MEDALS, Copy and Reset labels are tappable too.
Want the full cast of pickups and foes? Open GUIDE → ITEMS / ENEMIES in the game. The cabinet explains itself, and its wording comes straight from the game's own item table, so it's never out of date.
| Room | Look | Notes |
|---|---|---|
| 1 | JUNGLE | Bright grass, gold stumps |
| 2 | ICE | White cubes, navy cliffs |
| 3 | FACTORY | Amber crates, steel |
| 4 | WATER | Teal sewer / ruins |
| 5 | ARENA | Night court, rose bricks. Finale on your first run |
| 6 | SAND | Ochre dunes (unlocks after your first CLEAR) |
| 7 | VOID | Violet dark, tall cliffs (unlocks after your first CLEAR) |
| 8 | CROWN | Gold court. Finale after unlock (unlocks after your first CLEAR) |
Every room has its own chiptune theme and its own blast tint. Fresh installs show rooms 1–5 only. That's the gate, not a bug: beat room 5 and the map grows.
On LEVEL SELECT, ←/→ picks the room, ↑/↓ picks Heat and [/] picks pace
(EASY / NORM / HARD). Enter starts, Esc backs out.
| Heat | What changes |
|---|---|
| CORE | The baseline run (baseline v6, the replay reference) |
| PLUS | Harder spawns and a tighter fuse |
| MAX | Highest pressure |
The attract demo always runs CORE with every MODE off, whatever you picked last.
Clear room 5 once and LEVEL SELECT also offers four optional MODES, each a voluntary handicap:
| Key | Mode | Rule |
|---|---|---|
1 | IRON | Start with one life |
2 | BARE | No walkable floor cubes |
3 | THIN | One fewer buried cube under breakables |
4 | SHRINK | Arena walls close inward over time |
5 adds TIME: a play-only stopwatch with a per-room best. A CORE run
with every MODE off is bit-identical to baseline v6.
The live HUD shows raw points. HIGH SCORES saves Heat-scaled totals: CORE ×1, PLUS ×2, MAX ×3.
FLAME 4, MAX, or replaces … on a bomb swap) and pulses its HUD chip.
An ability bar along the bottom of the board lists the powers you hold.B copies a twelve-character board
code (seed, Heat, MODES, pace and which board maker built it, never a score;
F2 codes are the new mazes, F1 codes keep the original boards). Open
…/fusegrid/?code=XXXXXXXXXXXX to play that same board.Everything the game remembers lives in your browser's local storage. There is no account, no server and no global ranking. The game asks once whether to share play stats through Google Analytics; nothing is sent unless you allow it, and OPTIONS → ANALYTICS changes your mind (privacy).
No bundler, no build step and zero npm runtime dependencies. It's plain ES modules, and Three.js r160 is vendored for REAL 3D only. You need Node.js 26.
git clone https://github.com/HMarzban/fusegrid.git rollblock
npm start
Then open http://127.0.0.1:8080/index.html. Run the whole test suite with:
npm test
Under the hood the simulation is deterministic: same seed, same inputs, same outcome, in Node and in the browser. Read on:
| You want to… | Go to |
|---|---|
| Set up, use URL flags, send a pull request | CONTRIBUTING.md |
| Understand how the game works and why | docs/architecture.md |
| Find any doc (and which one owns which fact) | docs/README.md |
| See what changed in each release | CHANGELOG.md |
| Read the story of how it was built | docs/diary.md |
| Grab store art or zip the game for itch | media/README.md (listing art lives in media/) |
| Report a security issue | SECURITY.md |
Everyone in the arcade follows the Code of Conduct.
MIT. See LICENSE. Three.js r160 is vendored under MIT in
vendor/three.module.js.
Source: github.com/HMarzban/fusegrid.
The public game is Fusegrid; a local checkout is conventionally named
rollblock.
GAME OVER? Press Space. One more run.
C (or a tap on C COPY MY STATS)
copies it as text. HIGH SCORES carries four local plaques.T (or a tap on
T MEDALS) on STATS opens the MEDALS page.R twice (or tap R RESET, then
R AGAIN) to wipe progress and reload. Settings and pace are kept. Anything
else cancels (C, or a tap on C COPY, cancels and copies your stats).U) on the menus or after a finished run,
never in the middle of one. LATER hides it until your next run ends or
the next time you open the game.v183), so you can tell when an update has landed.