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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Jeu de cartes Président vibecodé
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Le jeu de cartes Président, à la mexicaine, jouable à plusieurs en temps réel depuis téléphones et ordinateurs. Pas de compte : on crée une table, on partage le lien, chacun entre son nom et c'est parti.
@mentions
(autocomplétion ; la personne mentionnée est mise en évidence et son téléphone vibre).app/ pages (accueil, table /t/[code], galerie /cartes)
components/ écrans (salon, partie, résultats) et cartes SVG
lib/ client Supabase, synchronisation temps réel, helpers cartes
supabase/migrations/ schéma + logique de jeu en PL/pgSQL
tests/ tests de la logique de jeu (Postgres en mémoire via PGlite)
scripts/ backend local pour développer sans Supabase
create_lobby, join_lobby, start_round, play_cards, pass_turn,
give_cards, …) qui valident chaque coup côté serveur et renvoient l'état vu par le
joueur : chacun ne reçoit que sa propre main.{ version } sur le canal Realtime lobby:<id>
(realtime.send) ; les clients relisent alors leur état. Une relecture périodique sert
de filet de sécurité.private, jamais
exposé par l'API. Chaque onglet visible envoie un signe de vie (ping) toutes les 15 s,
et signale son passage en arrière-plan. Quand c'est au tour d'un joueur absent, la base
met une notification en file et réveille l'Edge Function supabase/functions/push
(pg_net), qui l'envoie en Web Push.claim_timeout), et une tâche pg_cron (toutes les 5 s)
l'applique même si plus personne n'a la page ouverte.npm install
npm test # logique de jeu : règles + parties complètes de 3 à 8 joueurs
# Jouer en local sans Supabase (Postgres en mémoire, sans temps réel) :
npm run dev:backend # http://localhost:54321
cp .env.example .env.local # puis pointer NEXT_PUBLIC_SUPABASE_URL sur http://localhost:54321
npm run dev # http://localhost:3000
Pour tester à plusieurs en local, ouvrez la table dans des fenêtres de navigation privée différentes (chaque fenêtre a son propre jeton).
supabase/migrations/ dans l'ordre (SQL Editor
ou supabase db push), déployer l'Edge Function push (sans vérification JWT), puis
renseigner la configuration des notifications (clés VAPID générées pour le projet,
jamais commitées) :
insert into private.config (key, value) values
('vapid_public', '<clé publique>'), ('vapid_private', '<clé privée>'),
('vapid_subject', 'https://<votre-domaine>'),
('push_url', 'https://<projet>.supabase.co/functions/v1/push');
NEXT_PUBLIC_SUPABASE_URL et NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY (voir
.env.example). La branche main est déployée en production.Free tier : un projet Supabase gratuit est mis en pause après une semaine sans activité ; il se réactive depuis le tableau de bord Supabase.