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。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A multiplayer football drinking game for watching matches with friends. Join a room Kahoot-style with a 6-character PIN, a link, or a QR code, then play football betting, trivia, and party games — either tied to a live matchday fixture or as general games built from season data.
Competitions: Premier League, La Liga, Serie A, Bundesliga, Ligue 1, UEFA Champions League.
Built to be dropped into a larger football hub app as a feature: the game engine and data layer are standalone packages, and identity, football data, realtime state, and presentation are all adapter seams. See docs/ARCHITECTURE.md.
npm install
npm run dev
No API key is needed to develop or play: the data layer defaults to a recorded-fixture provider that can replay a
real match timeline at any speed. Add an API-Football key to go live — see packages/football-data/README.md.
| Command | What it does |
|---|---|
npm run dev | Runs the API and the web client together |
npm run typecheck | Project-wide TypeScript build |
npm run lint | ESLint, including the rules that keep the engine platform-agnostic |
npm test | Vitest unit + integration suites |
npm run format | Prettier |
packages/game-core Pure-TypeScript game engine: room state machine, game modules, scoring, penalties
packages/football-data Provider interface + API-Football adapter + offline fixture/replay provider
apps/api Fastify REST + Socket.IO realtime + Prisma persistence + auth
apps/web Next.js + Tailwind client (mobile-first)
Copy in the client is alcohol-explicit. Signup carries an 18+ confirmation and a responsible-drinking notice, and penalties are capped per round and per session. Internally the engine emits neutral penalty events rendered through a single copy module, so wording can be changed — or softened for a given market — in one file.