CoOp:Anything
게임을 검색해 협동 플레이 가능한 모드·단계·품질·커뮤니티 평점을 확인합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.