CoOp:Anything
게임을 검색해 협동 플레이 가능한 모드·단계·품질·커뮤니티 평점을 확인합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗MMO spatial 3D dans le navigateur (Three.js + TypeScript + Vite). Version actuelle : v0.8, collisions physiques. Plusieurs pilotes partagent deux secteurs en temps réel, reliés par saut hyperspatial, avec un serveur Node.js autoritaire. On y mine, on commerce entre quatre stations, on remplit des contrats, on améliore son vaisseau ou on en achète un autre, et la progression est sauvegardée. Tout ce qui est solide se heurte vraiment. Le mode solo hors ligne reste disponible.
npm install
npm run server # serveur multijoueur sur http://localhost:8080 (sert aussi le client s'il est construit)
npm run dev # client de développement sur http://localhost:5173 (se connecte au serveur :8080)
Pour jouer à plusieurs en local : npm run build && npm run server, puis ouvrir http://localhost:8080 dans deux onglets ou sur deux ordinateurs du même réseau (http://<ip-de-la-machine>:8080).
Options d'URL :
?q=low : qualité réduite pour les petites configurations.?server=wss://… : autre serveur.?lag=120&jitter=20 : latence simulée en millisecondes.?autostart : démarrage direct en solo.?colliders : formes de collision dessinées par-dessus le décor.Mise en ligne : voir docs/DEPLOIEMENT.md. Le client reste sur Vercel, et le serveur WebSocket va sur Render, Fly.io ou un VPS.
J, bouton SAUT sur écran tactile) : à plus de 1,5 km des stations, 6 s de charge, la moitié du condensateur, puis 20 s de recharge.Amarrage aux stations Aurora-7 et Ferro-9, minage d'astéroïdes, commerce avec des prix qui suivent les stocks, réparations. Détails : docs/V03_ECONOMIE.md.
P) : deux pilotes ne peuvent s'affronter que si tous deux l'ont activé. Une élimination PvP ne rapporte pas de crédits.Entrée pour écrire, H pour masquer ou afficher.Tab), messages d'arrivée et de départ.Z), boost qui consomme l'énergie, translations latérales et verticales, roulis, joystick virtuel à la souris.Les touches correspondent à des positions physiques : sur un clavier AZERTY, W/A/S/D se jouent avec Z/Q/S/D, et Q/E avec A/E. Le menu du jeu affiche automatiquement les bonnes lettres dans Chrome et Edge.
| Touche | Action |
|---|---|
| Souris | Piloter (joystick virtuel) |
Clic gauche / F | Tirer |
W / S, molette | Poussée + / − |
A / D | Translation latérale |
Espace / C | Translation verticale |
Q / E | Roulis |
Maj | Boost |
X | Couper les gaz |
Z | Assistance de vol on/off |
T | Cible suivante |
V | Caméra (poursuite, proche, cinématique) |
| Flèches | Tangage / lacet au clavier |
M | Couper le son |
Entrée / H | Chat : écrire / masquer (en ligne) |
P | PvP on/off (en ligne) |
G | S'amarrer / décoller |
R, clic droit | Rayon de minage |
J | Saut hyperspatial vers l'autre secteur (encore : annuler) |
Tab (maintenir) | Liste des pilotes |
Échap | Pause : reprendre, commandes, options et son |
Toutes les touches se réaffectent dans Échap → Commandes (affichage AZERTY ou QWERTY au choix). Les réglages (touches, volumes, sensibilité, inversion verticale) sont enregistrés dans le navigateur.
Sur un écran tactile, le jeu affiche ses commandes à l'écran. Il se joue en mode paysage ; tenu à la verticale, un téléphone affiche « Tournez votre appareil ».
| Commande | Action |
|---|---|
| Pouce gauche, glisser | Piloter (le joystick apparaît sous le doigt) |
| Curseur GAZ | Poussée (en bas du trait blanc : marche arrière) |
| FEU / BOOST (maintenir) | Tirer / boost |
| CIBLE, STOP, ⟲ ⟳ | Cible suivante, couper les gaz, roulis |
| ASSIST., II | Assistance de vol, pause |
| CHAT, PVP, PILOTES | En ligne : écrire, PvP on/off, liste des pilotes |
| S'AMARRER, SAUT | Près d'un hangar : s'amarrer. Loin des stations : saut hyperspatial |
Sur mobile, la qualité graphique basse est choisie par défaut (?q=high pour la forcer). ?touch affiche les commandes tactiles sur un ordinateur.
Le tir et le boost consomment l'énergie du condensateur. Elle ne se recharge que 0,6 s après le dernier tir et hors boost ; si elle tombe à zéro, les armes et le boost restent hors ligne jusqu'à 30 % (« ÉNERGIE ÉPUISÉE · RECHARGE » dans le HUD, avec une alerte de bord).
src/
shared/ Code commun client + futur serveur (aucun DOM, aucun rendu)
sim/ World (simulation autoritaire à 60 Hz), physique, combat, IA, zone
net/protocol Messages client/serveur, snapshots, validation des entrées
server/ GameServer : sessions, IA, raids pirates, réapparitions, chat, PvP, économie (indépendant du transport)
accounts/ Comptes pilotes : mots de passe, jetons, limites, stockage mémoire ou PostgreSQL
node/ Serveur Node.js : HTTP + WebSocket /ws, configuration par variables d'environnement
client/
net/ Transport (frontière réseau), LocalTransport (solo), WebSocketTransport (en ligne), prédiction, interpolation
ui/ Menu (connexion / inscription, en ligne / solo, pause, commandes, options), chat, écran de station
render/ Ciel, planètes, astéroïdes, station, vaisseaux, lasers, effets, post-traitement
hud/ input/ camera/ audio/
tests/ Tests Vitest : simulation, serveur, réseau (vrais WebSockets), prédiction, comptes, sauvegardes, PostgreSQL
scripts/ Tests de bout en bout dans Chromium (WebGL logiciel)
Principes, détaillés dans docs/ARCHITECTURE.md :
ShipInput) ; toute la physique, les tirs et les dégâts sont calculés par World.src/shared tourne tel quel dans Node : le futur serveur multijoueur réutilisera GameServer derrière un transport WebSocket.Transport. Aujourd'hui LocalTransport exécute le serveur dans la page ; demain un WebSocketTransport le remplacera sans toucher au reste du jeu.npm run typecheck # TypeScript strict
npm test # tests : physique, collisions, combat, énergie, raids, réglages, serveur, réseau, prédiction, comptes, sauvegardes
TEST_DATABASE_URL=postgres://… npm test # en plus : le stockage PostgreSQL sur une base jetable (ses tables nf_* sont effacées)
npm run build # build de production
npm run preview & # puis :
npm run smoke # lance le jeu dans Chromium headless, pilote, tire et fait des captures
npm run ui-check # HUD à 3 tailles, menu pause, réaffectation, réglages, tirs, amarrage, commerce, minage, sauvegarde solo, chantier, contrats
node scripts/mp-check.mjs # navigateurs sur le vrai serveur : inscription, synchro, chat, combat commun, PvP, latence, reconnexion, connexion refusée puis acceptée
node scripts/mobile-check.mjs # téléphone et tablette émulés : commandes tactiles, mise en page, chat et PvP en ligne
node scripts/jump-check.mjs # saut hyperspatial en solo : HUD, charge, Kepler, retour, mémoire graphique, bouton tactile
node scripts/collision-check.mjs # collisions : mur, astéroïde, deux vaisseaux, faible et violent, aile et cockpit, caisse, puis deux navigateurs en ligne
node scripts/load-test.mjs 30 30 # 30 pilotes robots pendant 30 s : coût du tick et bande passante
Pour npm run smoke, définir CHROMIUM_PATH si Chromium n'est pas trouvé automatiquement.