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
Jouer à un jeu de stratégie tactique au tour par tour avec figurines, seul ou contre l'IA
Translation pending
AI summary · revised during review
GamesJavaScript · HTMLGitHub @DeGraciaMathieuOnlineOwner 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.
Jeu d'escarmouche tactique au tour par tour sur un plateau continu (positions en pouces), rendu sur canvas. Deux escouades — la Garde de Fer et les Écumeurs — s'affrontent sur quatre tours en activation alternée : déplacement, visée et tir résolu aux dés. Le jeu est maintenant découpé en modules ESM. Les modules natifs ne se chargent pas via file:// : ouvrir index.html par double-clic laissera une page vide. Il faut le servir en HTTP. Puis ouvre l'URL indiquée (par défaut http://localhost:3000) et clique sur index.html.Read the full README ↗
Jeu d'escarmouche tactique au tour par tour sur un plateau continu (positions en pouces), rendu sur canvas. Deux escouades — la Garde de Fer et les Écumeurs — s'affrontent sur quatre tours en activation alternée : déplacement, visée et tir résolu aux dés.
Le jeu est maintenant découpé en modules ESM. Les modules natifs ne se chargent pas via
file:// : ouvrir index.html par double-clic laissera une page vide. Il faut le servir
en HTTP.
npm run dev # sert le dossier (npx serve .) puis ouvre l'URL affichée
Puis ouvre l'URL indiquée (par défaut http://localhost:3000) et clique sur index.html.
Les règles pures (géométrie, ligne de vue, mouvement, tour, combat) sont testées avec le lanceur intégré de Node — aucune dépendance.
npm test # node --test
npm run test:watch
Node ≥ 22 requis.
index.html markup + <script type="module" src="./src/main.js">
src/
config.js valeurs de jeu et constantes de réglage
canvas.js cv / ctx / conversion pouces→pixels
rules/ règles pures et testées (aucun DOM, aucun aléa direct, aucun temps)
rng.js geometry.js squad.js sight.js movement.js turn.js combat.js
state/game.js données (escouades, décor), fabrique des figurines, état mutable
render/ tout ce qui écrit à l'écran (fx, plateau, panneau latéral)
input/controls.js souris, clavier, boutons
loop/ orchestration : boucle de rendu, déroulé du tour, séquence de tir
main.js câblage, graine du hasard, démarrage
tests/ un fichier de tests par module de règles
docs/decisions.md choix de refactor, aléa/temps, points laissés en l'état
Les règles ne dépendent que de config.js (et d'autres règles). Le hasard est un RNG à
graine injecté ; seul main.js choisit la graine.