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 mobile-first 3D racing game built as a Nimiq Pay Mini App.
Race three AI rivals point-to-point through zombie-infested streets: drag to
steer, tap to fire nitro, splat everything green for combo points, and grab
coins along the way.
Built with Three.js + Vite + TypeScript. No frameworks, targets 60 fps inside
the Nimiq Pay WebView.檢視完整 README ↗🔗 Play now: minirush.site · mini-rush.vercel.app
A mobile-first 3D racing game for the web. Race three AI rivals point-to-point through zombie-infested streets: drag to steer, tap to fire nitro, splat everything green for combo points, and grab coins along the way.
Built with Three.js + Vite + TypeScript. No frameworks, targets 60 fps on a phone browser.
npm install
npm run dev # → http://localhost:5173 (already --host for phone testing)
npm run build # typecheck + static bundle in dist/ — deploy anywhere
Desktop testing: ↑ or W to accelerate, ← → or A/D to steer, ↓ or S to brake, quick tap / Space for nitro, C to cycle camera (chase / low bumper / high TV — also the 📷 button). Mobile: hold the gas pedal (bottom-right) to accelerate, drag to steer, hold the brake pedal (bottom-left), tap for nitro. Release the gas and the car coasts down to a roll.
Query params for testing: ?len=500 (lap length in metres, default 1800),
?seed=7 (deterministic circuit), ?laps=4, ?map=beijing (city id or index),
?mode=burnout (mode id or index).
src/modes.ts):
?laps=). Zombies and pickups respawn every lap. The
circuit previewed on the menu/tour page is the exact circuit you race.src/style.ts) — near-misses, drifts
and takedowns fill one gauge, and a full gauge pays out a nitro tank as
well as stepping the score multiplier. Risk buys speed, speed makes everything
riskier. Contact wipes the chain. Style and boost used to be separate
currencies, which meant a player could ignore either one.src/traffic.ts) — a recycled pool of civilian cars fills
the lap. It is what near-misses are measured against and what makes speed read
as speed. Rows are spaced and never block adjacent lanes, so there is always a
line through; clipping one costs speed and your chain, and only a fast closing
hit does damage.
Lagos mixes four yellow-and-black danfo minibuses into the ten-vehicle pool,
with passenger windows and route boards. Their procedural model shares geometry
and materials across the fleet (src/danfo.ts).
Traffic keeps its distance across laps, waits in the spawn queue until it comes
into view, and avoids starting lane changes beside an approaching player or
into another vehicle. Danfos have a longer contact zone. Gentle clips retain
88% of speed; hard impacts retain 72%. A near miss pays once the player has
fully cleared the vehicle, and only if the pass stayed clear of contact.src/city/passenger.ts),
then the GPS routes you along the roads to the drop-off against the clock
(src/city/fares.ts, src/city/roads.ts). Free roam: hidden tokens
unlock garage cars and street races start from the map
(src/city/activities.ts). Civilian traffic loops the grid, and the east
freeway crosses a bridge to a second island. Races elsewhere carry a round,
heading-up minimap (src/raceMap.ts).src/maps.ts). Each city has its own cel palette, fog mood, track
shape (flowing vs technical) and three districts along the lap — e.g.
Hutongs → Temple Gardens → CBD. A shared lighting/material palette stays
consistent across the lap while the local architecture and vegetation change.npm run build && npm run preview # serve dist on :4173
node scripts/smoke.mjs [shotsDir] # Playwright: full race → results → retry
Exits non-zero on console errors or if the results screen never appears.
Screenshots (menu, countdown, mid-race, results) land in shotsDir.
Everything in the game is bought with coins earned by racing: cars in the
garage, upgrades, paint and workshop parts. Coins are banked on the device
(src/economy.ts) and have no cash value. The driver chip on the menu opens
the driver card, where a player can pick the username the boards show.
contracts/ still holds the Foundry project for MiniRushTracker,
the Celo tracker the game used earlier. Nothing in src/
references it any more; it is kept for history and is not part of the build.
Cel-shaded PS2-era arcade style with real 3D models (CC0/free asset packs,
credits in public/assets/models/CREDITS.txt), procedural fallback art where
kits aren't loaded, and hot-swappable models/sounds by filename — see
public/assets/README.md for the full asset list and credits.
Browser checks (with the dev server running): scripts/check-presentation.mjs,
scripts/check-driving.mjs, scripts/check-danfo.mjs, scripts/visual-world.mjs
and scripts/visual-cars.mjs. They save screenshots under output/ and are not a
substitute for profiling on a physical phone.
Source code is MIT — see LICENSE.
The art and audio under public/assets/ are third-party and keep their own
licences, recorded with their packs and terms in CREDITS.md.
Every asset slot has a procedural fallback, so the game runs complete without
any of them.