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.