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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Carnival Dozer: a co-op 3D coin pusher for Discord and the web. Flick to drop, shake together to topple the prizes.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A multiplayer 3D carnival coin pusher for the web and Discord. Everyone plays one shelf as a team:
Shake together to topple the prize tower, but watch the TILT alarm. Play coins only: no real money, no real prizes.
| Play in a browser | https://coins.housetandem.com |
| In Discord | Coming once the Discord application is set up (see below) |
Built with:
It's the sibling of 7, 11, Doubles and Roulette and shares their networking and Discord plumbing. See PLAN.md for the design.
No motion sensors? In Discord or on a desktop, you can:
Or use 📱 Play with your phone (PHONE-REMOTE.md): scan the QR code and your phone becomes your coin hand.
npm install
npm test # unit tests (Vitest), including the physics
npm run typecheck # app + worker
npm run build # type-check + Vite build to dist/
npm run preview # build, then serve app + Worker + Durable Object at http://127.0.0.1:8787
npm run dev starts Vite with hot reload and proxies /api to wrangler dev on :8787.
DeviceMotion, WebCrypto and WebRTC need HTTPS, so test on phones with the deployed site (or an HTTPS tunnel).
With npm run preview running:
node scripts/e2e.mjs http://127.0.0.1:8787 relay 2 # or: peerjs 3
node scripts/e2e-remote.mjs http://127.0.0.1:8787 relay # or: peerjs
node scripts/e2e-deploy.mjs http://127.0.0.1:8787
e2e.mjs has headless players play a whole 20-coin game. They drop, do a synchronized shake, and shake until TILT locks the shelf. It then checks that everyone agrees on the count, and that coins add up (in hand = start − dropped + won back).e2e-remote.mjs pairs a phone that aims, drops and shakes with synthetic motion. It also covers a host leaving mid-game (the shelf carries over) and New link revoking the old phone.e2e-deploy.mjs checks that a page caught mid-deploy reloads itself (public/boot-guard.js).Screenshots go to scripts/out/. Add these to a table URL:
&nomotion for the no-motion layout&t=relay for the relay transport&debug to expose window.dozerThe Worker serves the static build, /api/* and the relay on the custom domain coins.housetandem.com. Wrangler creates the DNS record on deploy, since the housetandem.com zone is on the same Cloudflare account.
npm run deploy
npx wrangler secret put DISCORD_CLIENT_SECRET # once the Discord app exists
The same steps as the dice app (its README), with this app's domain:
/ → coins.housetandem.com (and /peerjs → 0.peerjs.com only if forcing t=peerjs).https://127.0.0.1.wrangler.jsonc (vars.DISCORD_CLIENT_ID) and .env.production (VITE_DISCORD_CLIENT_ID). Set the secret with npx wrangler secret put DISCORD_CLIENT_SECRET, then run npm run deploy.applications.commands. Under Supported Platforms, tick iOS and Android.src/
main.ts boot: identity, transport, wiring
ui.ts, style.css DOM overlay: lobby, players, score + tilt HUD, pad, shake button, callouts
audio.ts synthesised clinks, tray cascade, prize fanfare, shelf thump, tilt alarm
game/ rules and numbers, the pure game reducer (dozer.ts), host authority (shakes, tilt, frames)
sim/ Rapier shelf (host only), the packed frame format, prize sizes
input/ roll-to-aim, flick and shake detection, pointer and keyboard fallback
net/ protocol, transports (PeerJS, relay), room coordination and the host's physics loop
platform/ environment, identity/rooms, Discord SDK, motion detection
remote/ the 📱 phone remote page (remote.html, served at /remote)
render/scene.ts Three.js cabinet, coins (instanced), prizes, chutes; blends between frames
worker/src/ Worker: assets, /api/token, /api/ice, RelayRoom Durable Object, Discord room tickets
test/ Vitest unit tests
scripts/ Playwright end-to-end tests