尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Jeu coop en ligne dans le navigateur : chasse, apprivoise et fais évoluer ta meute de monstres, à 4 joueurs par village.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Jeu coop façon Wild Tamer, jusqu'à 4 joueurs par village, directement dans le navigateur. On se réveille sur une île inconnue : on chasse, on apprivoise des monstres, on éveille des Alphas, on bâtit le village avec les autres, et on avance zone par zone jusqu'au bout de l'île, en affrontant les géants qui dorment au fond des grottes.
shared/) sont communs au client et au serveur.ws, autoritaire, 20 ticks/s ; un seul process sert le site et le WebSocket.node:test pour les règles, bots WebSocket pour le test de fumée ; CI/CD GitHub Actions vers un VPS.npm install
npm run dev
Ouvre http://localhost:5173, fonde un village, puis Menu › Paramètres › Village › Inviter des amis pour copier le lien
(?v=CODE) à envoyer à tes amis. Pour tester seul la coop, ouvre le lien dans un 2e onglet.
En npm run dev, F9 donne de l'or, du bois, de la pierre et des essences pour tester vite.
Pour que des amis te rejoignent hors de ton réseau, il faut héberger le serveur (voir plus bas)
ou exposer ton port (ex. cloudflared tunnel --url http://localhost:5173).
Un compte Google est requis pour jouer : le serveur refuse toute connexion sans session valide. La progression est rattachée au compte dans un village : en revenant dans son village, on retrouve or, bois, pierre, niveaux d'arme et d'armure, essences et Alphas (la meute ordinaire n'est pas sauvegardée). Rejoindre un autre village, c'est repartir de zéro là-bas. Un compte a au plus 3 villages : le lobby les liste (« Mes villages ») pour choisir où jouer, à côté de « Créer » et « Rejoindre ». Les villages gardent leur code et leur carte. « Quitter ce village » (bouton sous « Entrer ») efface sa progression dans le village choisi ; le village continue pour les autres (son fondateur passe la main au membre le plus récemment actif) et disparaît s'il n'y reste personne.
DATABASE_URL dans .env (Project Settings › Database › Connection string › URI) puis lance npm run db:migrate, qui applique les fichiers de supabase/migrations/ pas encore passés. À défaut, colle-les dans le SQL Editor, dans l'ordre.https://<ton-projet>.supabase.co/auth/v1/callback.http://localhost:5173, et ajoute dans
Redirect URLs http://localhost:5173/** (plus ton domaine de prod plus tard)..env.example en .env et remplis les 4 valeurs (Project Settings › API).
La clé service_role reste côté serveur : c'est lui seul qui écrit les profils.npm run dev : le bouton « Se connecter avec Google » apparaît dans le lobby.fangleaf.anathos.me vers le VPS./root/eanathos/Fangleaf) : .env rempli, npm ci, npm run db:migrate, puis npm run build
(les variables VITE_* sont figées au build : le .env doit être là avant).pm2 start ecosystem.config.cjs (ecosystem.config.cjs), ou deploy/fangleaf.service avec systemd./ws), étapes en tête du fichier.https://fangleaf.anathos.me/** aux Redirect URLs
(et mets-la en Site URL une fois en prod).Mise à jour : git pull && npm ci && npm run db:migrate && npm run build && pm2 reload ecosystem.config.cjs (ou sudo systemctl restart fangleaf). À l'arrêt, le serveur sauvegarde les progressions en cours.
main, se connecte en SSH au VPS, avance le clone sur le commit testé
et lance deploy/deploy.sh (npm ci, migrations, build, pm2 startOrReload, vérification du port).
Aussi lançable à la main depuis l'onglet Actions.VPS_HOST, VPS_USER, VPS_SSH_KEY (clé privée dédiée au déploiement), VPS_PORT (facultatif).| Commande | Rôle |
|---|---|
npm run dev | Serveur de jeu (port 3001, rechargement auto) + client Vite (5173) |
npm run build | Build du client dans dist/ |
npm start | Prod : un seul process sert dist/ et le WebSocket (PORT, défaut 3001) |
npm run typecheck | Vérification TypeScript |
npm run db:migrate | Applique les migrations Supabase manquantes (DATABASE_URL requis) |
npm run smoke | Test bot (autorise les invités via ALLOW_GUESTS=1, réservé aux tests) : création, 4 joueurs max, combat, or, forge, anti-téléportation |
npm run test:rules | Règles de la simulation, sans réseau (node:test) : un fichier par thème dans tests/rules/ (monde, combat, meute, Alphas, géants, faune, village, réseau). Un seul fichier : npx tsx --test tests/rules/geants.test.ts ; un seul test : --test-name-pattern="Marché" ; autre graine ou autre heure : TEST_SEED=…, TEST_NOW=… |
shared/ règles et équilibrage (config.ts), protocole réseau, maths
server/ HTTP + WebSocket + salons (index.ts), simulation d'un village (room.ts), sauvegarde Supabase (persist.ts)
supabase/ migrations SQL (npm run db:migrate)
client/ lobby, boucle de jeu, rendu Canvas procédural, HUD HTML, minicarte
scripts/ test de fumée multi-clients, migrations
tests/ tests de règles par thème (tests/rules/*.test.ts) et leurs outils communs (helpers.ts)
docs/ guide du jeu (GUIDE.md), architecture (ARCHITECTURE.md)
Le détail fichier par fichier est dans docs/ARCHITECTURE.md.
Tout l'équilibrage (PV, dégâts, zones, chance d'apprivoisement, coût de la forge…) est dans
shared/config.ts.
© 2026 EAnathos, tous droits réservés. Le code est visible mais ni libre ni open source : aucune copie, modification, redistribution ou mise en ligne sans autorisation écrite. Détails dans LICENSE.