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