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
Build a football legend: locker rooms, press zones, clutch moments and 8-zone penalties.
Translation pending
GamesTypeScript · SwiftGitHub @Ben34110OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Mobile-first career sim built with Next.js 14 (App Router), TypeScript, Tailwind, Framer Motion, Lucide and Zustand (LocalStorage persistence).Read the full README ↗Mobile-first career sim built with Next.js 14 (App Router), TypeScript, Tailwind, Framer Motion, Lucide and Zustand (LocalStorage persistence).
npm install
npm run dev # http://localhost:3000 (best viewed at phone width)
npm run build && npm start
app/ — routes: / title, /create FTUE, (game)/ home · match · calendar · transfers · profilecomponents/match/ — locker-room talk, live ticker + momentum, clutch sheet, 8-zone GoalTarget, shootout, press zone, summarylib/engine/ — pure, testable logic: match, kick (keeper dive), shootout, season, transfers, playerlib/data/ — mock data: clubs, nationalities, speeches, press questions, clutch decklib/store.ts — Zustand store persisted to LocalStorage (fcs-save-v1)/shop: personal coach (more performance XP),
nutritionist (less fatigue), media advisor (fewer scandals), agent (better contracts) and a yearly charity gala.
Attributes themselves only grow through performance on the pitch — never through purchases.lib/payments.ts.
NEXT_PUBLIC_IAP_TEST=1) a test provider grants lives instantly, without any payment.registerPaymentProvider({ name: 'storekit', isReal: true, purchase }) at start-up.localStorage), so hosting costs no server CPU.The game also ships as an iPhone app (Capacitor + Xcode, with in-app purchases). See IOS.md: npm run ios.