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
Jeu de course de voitures 2D sur circuit, dans le navigateur.
Translation pending
GamesTypeScript · CSSGitHub @yourimeradOnlineOwner 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
Jeu de course 2D en canvas (Next.js) — circuits, voitures, garage et bots
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Jeu web de course 2D (canvas), voir AGENTS.md pour l'architecture. Prod : https://racerz-jet.vercel.app Sans configuration, le jeu fonctionne comme avant : progression sauvegardée dans le navigateur (localStorage). Pour activer les comptes (inscription / connexion, progression sauvegardée par compte) :Read the full README ↗
Jeu web de course 2D (canvas), voir AGENTS.md pour l'architecture. Prod : https://racerz-jet.vercel.app
Sans configuration, le jeu fonctionne comme avant : progression sauvegardée dans le navigateur (localStorage).
Pour activer les comptes (inscription / connexion, progression sauvegardée par compte) :
Créez un projet sur supabase.com (Authentication → Providers → Email activé).
Dans SQL Editor, exécutez le contenu de supabase/schema.sql (rejouable sans risque).
Renseignez les deux variables suivantes (Project Settings → API), en local dans .env.local et sur Vercel
(Project → Settings → Environment Variables), puis redéployez :
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ... # clé « anon » publique, jamais la clé service_role
Sécurité : les mots de passe ne sont jamais gérés par le jeu (Supabase Auth). La table profiles est protégée par
Row Level Security : chaque joueur ne lit que sa ligne et aucun client ne peut l'écrire. Achats, gains, paliers
et niveaux passent par des fonctions SQL (buy_car, buy_skin, settle_race…) qui recalculent l'argent côté
serveur (prix, solde, gains par place). Limite connue : le résultat d'une course est rapporté par le navigateur
(pas de simulation serveur) ; il est borné par un ticket start_race à usage unique et une durée minimale de 20 s.
Si vous changez des prix, des gains ou la règle de la victoire propre (contacts barrière : 4 en Campagne, 2 ailleurs) dans src/game/garage.ts, reportez-les dans supabase/schema.sql ; après une mise à jour de ce fichier, rejouez-le dans le SQL Editor (le jeu continue de marcher avant : il retombe sur l'ancienne fonction settle_race, avec la règle à 2 contacts).
À la première connexion, une progression locale existante peut être reprise sur le compte (une seule fois, vérifiée et plafonnée à 500 000 € côté serveur).
Bouton « 🌌 Multivers » du lobby (le nom est dans src/game/net/label.ts) : partie rapide contre de vrais joueurs (même environnement, 2 à 4 pilotes) ou
salle entre potes (code à 4 caractères ou lien ?room=CODE, l'hôte choisit l'environnement et lance). C'est le même
jeu, les mêmes 4 environnements, les mêmes gains.
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY que les comptes. Sans elles, le bouton explique
que le mode en ligne n'est pas activé. Le plan gratuit limite le débit (≈ 100 messages par seconde pour tout le projet, soit une seule course à quatre à la fois) : chaque joueur envoie 15 instantanés par seconde à deux, 10 à trois, 6 à quatre ; le plan Pro porte la limite à 500./?net=local (les onglets se parlent par
BroadcastChannel).AGENTS.md pour le détail.pnpm check:net vérifie le protocole, les salles, la partie rapide et une course complète sur un réseau simulé (délai,
gigue, pertes), sans serveur ni navigateur.pnpm install
pnpm dev # http://localhost:3000
pnpm lint
pnpm check:tracks # contrôle des tracés (Node 22.18+ / 25)
pnpm check:net # mode en ligne : protocole, salles, partie rapide, course sur réseau simulé
pnpm sim # courses simulées pour régler les bots
This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.