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。 以下為已儲存的摘錄。
Un coach de draft pour League of Legends. Indiquez votre rôle et les champions déjà verrouillés en face : DraftForMe propose trois picks classés, et montre pour chacun le détail du calcul.檢視完整 README ↗
Un coach de draft pour League of Legends. Indiquez votre rôle et les champions déjà verrouillés en face : DraftForMe propose trois picks classés, et montre pour chacun le détail du calcul.
Le moteur de recommandation (src/lib/recommendation/) classe les champions d'un rôle selon trois critères :
| Critère | Ce qu'il mesure |
|---|---|
| Force dans le patch | Le classement du champion à votre poste, d'après son taux de victoire |
| Lecture du matchup | Les counters connus face aux champions déjà pickés en face |
| Votre aisance | Votre pool de champions (à venir) |
Le poids de chaque critère s'adapte à la situation (par exemple, le matchup ne compte qu'une fois un pick adverse connu) et il est affiché à côté du résultat.
Les données portent sur l'EUW, en Emerald et au-dessus. Les statistiques actuelles proviennent d'OP.GG (patch 16.3). Leur remplacement par des statistiques calculées à partir de l'API Riot, sur le patch en cours, est en préparation (spec).
Le dossier ml/ contient deux projets menés pour savoir si un modèle pouvait faire mieux que les règles écrites à la main.
ml/collect/). Des parties classées EUW du patch en cours sont récupérées via l'API officielle de Riot, à parts égales entre les dix rangs, dans une base SQLite reprise automatiquement après une interruption. Objectif : 30 000 parties.ml/win/). Un modèle prédit le vainqueur d'une draft. Il est comparé une seule fois, sur des parties mises de côté, à trois références : le moteur du site, les winrates des parties collectées, et les statistiques publiques seules.Premier résultat, sur un essai de 11 000 parties : les statistiques publiques prédisent le vainqueur aussi bien que tout ce qui a été appris sur les drafts, et le modèle ne les bat pas. Toutes les approches restent proches du pile ou face (log loss d'environ 0,69), ce qui confirme qu'une composition seule en dit peu sur l'issue d'une partie. La conclusion pratique : garder les statistiques du site à jour vaut plus qu'un modèle. Le verdict officiel sera rendu sur les 30 000 parties.
Le détail est dans les specs : collecte et modèle de victoire.
Prérequis : Node.js 22 ou plus, npm, et un projet Supabase (ou supabase start en local). Python 3.11 seulement pour le dossier ml/.
npm install
Créez un fichier .env.local à la racine avec l'URL et la clé publique (anon) de votre projet Supabase :
NEXT_PUBLIC_SUPABASE_URL=https://<projet>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<clé anon>
Appliquez le schéma (supabase/migrations/) et les données de départ (supabase/seed.sql). Avec une base Supabase locale (Docker requis), une seule commande fait les deux :
supabase db reset
Pour un projet hébergé, appliquez les migrations avec supabase db push, puis exécutez supabase/seed.sql dans l'éditeur SQL.
Puis lancez le site sur http://localhost:3000 :
npm run dev
| Commande | Rôle |
|---|---|
npm run dev | Serveur de développement |
npm run build puis npm run start | Version de production |
npm test | Tests du site |
npm run lint | Lint |
npm run seed:build | Régénère supabase/seed.sql à partir de data/ |
python -m pytest test/ml -q | Tests du dossier ml/ |
ml/)pip install -r ml/requirements.txt
La collecte demande une clé de l'API Riot, à saisir dans la session sans jamais l'écrire dans un fichier :
$env:RIOT_API_KEY = [Net.NetworkCredential]::new("", (Read-Host "Cle Riot" -AsSecureString)).Password
python -m ml.collect.run --target 30000 --db "$env:LOCALAPPDATA\DraftForMe\matches.sqlite"
L'entraînement et l'évaluation du modèle sont décrits dans ml/README.md.
| Dossier | Contenu |
|---|---|
src/app/ | Pages et routes API (Next.js) |
src/components/ | Composants : page d'accueil, outil de draft, interface |
src/lib/recommendation/ | Le moteur de recommandation |
src/lib/data/, src/lib/supabase/ | Accès aux données |
supabase/ | Migrations et données de départ |
data/, scripts/ | Données sources et génération du seed |
ml/ | Collecte Riot, modèle de victoire, ancien pipeline |
test/ml/ | Tests Python |
docs/superpowers/ | Specs et plans de chaque chantier |
Chaque chantier commence par une spec (docs/superpowers/specs/) et un plan d'implémentation (docs/superpowers/plans/). Ils expliquent les décisions prises et pourquoi.
DraftForMe n'est pas approuvé par Riot Games et ne reflète pas les opinions de Riot Games ni de quiconque officiellement impliqué dans la production ou la gestion des propriétés de Riot Games. Riot Games et toutes les propriétés associées sont des marques commerciales ou déposées de Riot Games, Inc.