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 ↗Quiz de culture générale multijoueur en temps réel, façon Popsauce — 100% gratuit, sans compte, sans serveur à payer.
Tout le monde répond en même temps aux mêmes questions, à l'écrit (pas de QCM), avec une correction exacte (accents/casse/ponctuation ignorés) qui accepte aussi les titres partiels et les acronymes — pas de tolérance aux fautes de frappe, pour éviter les faux positifs entre réponses proches mais différentes. Comme dans Popsauce, une question peut être accompagnée d'un élément visuel à deviner : image, GIF, courte vidéo (fichier ou lien YouTube, intégré automatiquement) ou citation. Chaque bonne réponse rapporte entre 1 et 20 points : le premier à trouver a toujours le maximum, puis les points des suivants diminuent avec le temps écoulé depuis cette première bonne réponse, sans jamais descendre sous 1 point. Un tableau des scores en direct (à droite pendant la question) montre qui a trouvé et la dernière tentative fausse de chacun, avec un badge 🔥 pour les séries de bonnes réponses. La partie n'est pas limitée à un nombre fixe de questions : l'hôte fixe, dans le lobby, un score à atteindre, un temps de réponse (commun à toutes les questions) et les catégories à inclure (une sélection précise, ou "Toutes"), et la partie s'arrête dès qu'un joueur atteint le score (ou s'il n'y a plus de questions avant que quelqu'un y arrive).
Le tout avec une bonne dose de "juice" : sons synthétisés (zéro fichier audio, bouton 🔊/🔇 pour couper), chiffres qui défilent au lieu de sauter, secousse sur une mauvaise réponse, et confettis au podium final.
main et le dossier / (root).https://<ton-pseudo-github>.github.io/<nom-du-repo>/. Partage cette URL à tes amis.Aucune autre étape : pas de build, pas de variables d'environnement, pas de carte bancaire.
Comme le jeu charge questions/questions.json via fetch, il faut le servir via un petit serveur local (pas juste double-cliquer sur index.html, qui serait bloqué par le navigateur). Par exemple :
npx serve .
ou, si tu as Python :
python -m http.server 8080
Puis ouvre l'URL affichée dans deux onglets différents pour tester le multijoueur (un onglet crée la partie, l'autre la rejoint avec le code affiché).
Deux façons de faire :
editor.html : un éditeur visuel à ouvrir dans le navigateur (en local ou via l'URL déployée) pour créer/modifier/supprimer des questions sans toucher au JSON — formulaire avec aperçu en direct (rendu exactement comme dans le jeu) et un testeur de réponse pour vérifier qu'une forme raccourcie ou un acronyme serait bien accepté. Réservé aux comptes admin : il faut donc avoir configuré le mode "en ligne" ci-dessous. Il charge automatiquement les questions actuellement en ligne à l'ouverture, et chaque sauvegarde/suppression est publiée automatiquement et instantanément dans le jeu — rien à exporter, rien à committer. La liste se tient aussi à jour toute seule en cours de session dès qu'un admin (toi ou quelqu'un d'autre) ajoute/modifie/supprime une question ailleurs, sans jamais avoir à recharger la page. Les questions y sont regroupées par catégorie (sections repliables, pour éviter de faire défiler une longue liste), et la catégorie du formulaire se choisit dans un menu déroulant des catégories déjà utilisées — avec une option pour en créer une nouvelle. La page se recharge aussi toute seule si une nouvelle version du site a été déployée entre-temps (sans jamais couper un formulaire en cours de remplissage) — pour ne jamais rester bloqué sur une vieille version en cache.questions/README.md — il suffit d'éditer questions/questions.json, puis de pousser le fichier modifié sur GitHub. Ne nécessite aucune configuration.editor.html a aussi un mode en ligne, pour laisser d'autres personnes proposer des questions sans qu'elles touchent directement au fichier, avec validation par un·e admin avant qu'elles soient ajoutées. C'est 100% optionnel — sans configuration, l'éditeur fonctionne exactement comme avant (local, questions.json).
Important sur la sécurité des comptes : la connexion se fait uniquement via Google (bouton "Se connecter avec Google") — aucun mot de passe ne transite ni n'est stocké par ce projet, à aucun moment. C'est Google qui gère entièrement l'authentification ; nous n'avons techniquement aucun moyen de voir ou récupérer le mot de passe de qui que ce soit. Le rôle « admin » est juste une liste d'identifiants Google autorisés dans la base, et cette liste n'est modifiable que depuis la console Firebase (jamais depuis le site) — personne ne peut se nommer admin lui-même.
Ce mode a besoin d'un projet Firebase gratuit (aucune carte bancaire requise) :
firestore.rules à la racine du projet, puis publie.js/firebase-config.js (remplace les "REMPLACE-MOI"). Ce n'est pas un secret, tu peux le commiter.js/auth.js et remplace la valeur de SUPER_ADMIN_EMAIL par ta propre adresse Gmail, puis fais pareil dans firestore.rules (la fonction isSuperAdmin()) — republie les règles mises à jour comme à l'étape 3.6. Cette adresse est codée en dur dans les règles : elle seule obtient automatiquement tous les droits à sa première connexion, sans manipulation dans Firestore.Une fois configuré : n'importe qui de connecté peut proposer une question (bouton "Proposer en ligne" dans le formulaire) ; les comptes admin voient la file d'attente avec des boutons Approuver/Rejeter. Approuver une proposition, ou enregistrer/supprimer une question directement dans l'éditeur en tant qu'admin, la publie immédiatement dans le jeu — aucune étape manuelle, aucun token, aucun commit. Le compte super-admin a en plus un panneau "Ajouter/retirer un admin" (juste une adresse email à saisir) pour donner les droits admin à d'autres comptes, sans jamais toucher à la console Firebase.
Comment ça marche techniquement : les questions publiées de cette façon vivent dans une collection Firestore (/questions), lue par le jeu sans connexion requise (sinon les joueurs non connectés ne pourraient pas charger les questions) et fusionnée à chaque partie avec le fichier statique questions/questions.json, qui reste le socle de départ. Une question éditée remplace sa version statique du même id ; une suppression pose un repère "supprimée" plutôt que d'effacer le fichier (impossible à faire depuis le navigateur sans backend) — invisible pour les joueurs, filtré à la fusion.
À la première connexion (sur le jeu comme dans l'éditeur), chacun choisit un pseudo public — c'est lui qui est affiché partout (propositions, liste des comptes), jamais le nom ou l'email du compte Google. Il reste modifiable à tout moment (icône ✏️ à côté du nom affiché).