Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

Netcode for GameObjects

Boss Room

Déployer sur Edgegap

Publié

Publié

Publié

Boss Room : Exécutez l'exemple de jeu coopératif d'Unity sur les serveurs dédiés d'Edgegap, avec Matchmaking

Boss Room : Exécutez l'exemple de jeu coopératif d'Unity sur les serveurs dédiés d'Edgegap, avec Matchmaking

Boss Room est l'exemple de donjon coopératif d'Unity pouvant accueillir jusqu'à 8 joueurs, conçu sur Netcode for GameObjects (NGO). Le fork d'Edgegap l'exécute sur un serveur de jeu dédié et ajoute un matchmaking facultatif qui réunit les joueurs dans le même donjon.

Boss Room lui-même change à peine : mêmes scènes, mêmes prefabs, même sélection de personnage (Character Select), même connexion directe par IP (Direct IP join). Tout ce dont le matchmaker a besoin se trouve dans Assets/Edgegap/ et s'ajoute automatiquement au moment de l'exécution.

Aucun joueur n'héberge la partie. Un serveur Boss Room sans interface graphique (headless) gère le donjon, ne nécessite aucun service Unity Gaming Services, Relay ou Lobby, et met fin à son propre déploiement dès que la partie est vide.

Le réseau d'Edgegap s'étend sur plus de 615 emplacements Edge Cloud (en savoir plus). Chaque serveur est déployé dans le meilleur emplacement disponible pour ses joueurs et n'est facturé que pendant la durée de la partie.

Plateformes : clients de bureau Windows, macOS et Linux (UDP). Testé avec des clients Windows. Exemple original par Unity Technologies, sous licence Unity Companion License.

Comment ça fonctionne

  1. Les joueurs cliquent sur Trouver une partie (Find Match) dans le panneau du menu principal. Chaque client envoie un ticket au Matchmaker Edgegap.

  2. Le matchmaker regroupe de 2 à 8 joueurs et lance un déploiement Edgegap pour eux.

  3. Le serveur démarre, s'initialise via le propre ConnectionManager de Boss Room sur 0.0.0.0 et sur le port gameport, et consigne le nombre de joueurs associés attendus.

  4. Lorsque le ticket indique HOST_ASSIGNED, chaque client rejoint l'adresse IP publique et le port externe du serveur via ConnectionManager.StartClientIp. Tout le monde arrive dans la sélection de personnage sur le même serveur, puis entre ensemble dans le donjon.

  5. Quand il ne reste plus personne (30 s après le départ du dernier joueur, ou si personne ne se connecte dans un délai de 120 s), le serveur arrête son propre déploiement.

Ce que le fork a modifié :

Chemin

Ce que ça fait

Assets/Edgegap/EdgegapBootstrap.cs

S'exécute avant la première scène et ajoute les composants ci-dessous. Aucune modification de scène.

Assets/Edgegap/EdgegapMatchmakingClient.cs, EdgegapMatchmakingDTOs.cs

Le panneau Trouver une partie : ticket, attente de HOST_ASSIGNED, connexion via le ConnectionManager de Boss Room.

Assets/Edgegap/EdgegapServerLifecycle.cs

Builds serveur : consigne les joueurs associés et connectés, arrête le déploiement lorsque la partie est vide.

Assets/Edgegap/Resources/EdgegapSettings.asset

Activation/désactivation du matchmaker, URL, jeton d'authentification (Auth Token), profil, port local, délais d'expiration (timeouts).

Assets/Scripts/EdgegapServerStarter.cs

Démarre le serveur avec StartHostIp("SERVER", "0.0.0.0", port) sur le port Edgegap, ou 9998 en local.

Modifications dans ConnectionManagement/

Serveur au lieu de l'hôte (StartServer), suppression du payload de l'hôte, vérification du type de build retirée (détaillé dans le README du fork).

matchmaker-config.json, Dockerfile

Profil du matchmaker à téléverser et image du serveur.

Aucune carte de crédit requise. L'offre gratuite inclut les ressources nécessaires pour déployer un véritable serveur de jeu.

Aucune carte de crédit requise. L'offre gratuite inclut les ressources nécessaires pour déployer un véritable serveur de jeu.

Two Boss Room heroes, Brave Healer and Silly Rusher, in a blue-lit dungeon in Unity's co-op sample.

Deux joueurs dans le donjon de Boss Room, sur un serveur Netcode for GameObjects hébergé par Edgegap.

Guide étape par étape

Exécuter l'exemple

1. Avant de commencer

  • Un compte Edgegap gratuit.

  • Unity 6000.0.54f1 (Unity 6.0 LTS) avec Linux Build Support (Mono) et Linux Dedicated Server Build Support, ainsi que le module correspondant à la plateforme de votre client.

  • Docker Desktop, en cours d'exécution.

  • Git LFS : exécutez git lfs install avant de cloner, sinon les ressources graphiques et l'asset de paramètres Edgegap ne seront pas téléchargés.

  • Clonez le fork.

Git : Unity a besoin d'un client Git (2.14.0 ou plus récent) dans votre PATH pour installer des paquets depuis une URL Git, comme le plugin Edgegap. macOS en possède généralement déjà un (Outils en ligne de commande Xcode) ; sur Windows, installez Git.

2. Obtenir un serveur Boss Room sur Edgegap

Le Matchmaking nécessite un serveur qui fonctionne déjà sur Edgegap. Les étapes 4 et 5 du guide Netcode for GameObjects couvrent sa création, sa conteneurisation et son déploiement. Ce qui est spécifique à ce fork :

  • Générez le serveur avec Tools → Edgegap → Build Linux Dedicated Server. Le Dockerfile du fork situé à la racine du dépôt empaquette Builds/EdgegapServer/.

  • Sur la version de l'application, un seul port : nom gameport, 7777, UDP. Le nom doit être gameport : le serveur lit son port à partir de celui-ci.

  • En local (et dans docker run), le serveur écoute plutôt sur le port 9998.

  • Pour vérifier manuellement un déploiement : Start with Direct IP → Join dans deux clients, avec l'adresse IP publique du déploiement (pas le nom d'hôte) et le port externe de gameport.

Pour exécuter l'image du serveur localement :

docker run --rm -p 9998:9998/udp ngo-bossroom:local

Deux instances sur un même PC nécessitent leur propre profil, sinon le serveur rejettera la seconde en la considérant comme le même joueur :

Game.exe -AuthProfile p1

Game.exe -AuthProfile p2

3. Ajoutez-le à votre propre jeu d'ONG

Le fork est une référence fonctionnelle : votre agent de codage peut copier ses fichiers testés au lieu de les écrire à partir de zéro. Quatre modifications permettent d'exécuter un jeu NGO sur Edgegap avec le matchmaking :

  1. Le serveur démarre lui-même. Dans les builds serveur, appelez StartServer, jamais StartHost, sur 0.0.0.0 et le port gameport (Assets/Scripts/EdgegapServerStarter.cs, StartingHostState.cs).

  2. Le serveur s'arrête lui-même. Il interrompt son déploiement lorsque personne ne rejoint à temps ou que le dernier joueur quitte la partie, ce qui arrête la facturation (Assets/Edgegap/EdgegapServerLifecycle.cs).

  3. Le client trouve une partie. Il envoie un ticket, attend HOST_ASSIGNED, puis rejoint l'IP et le port assignés (Assets/Edgegap/EdgegapMatchmakingClient.cs). Si votre jeu possède son propre flux de connexion comme le ConnectionManager de Boss Room, rejoignez via celui-ci afin que les charges utiles et l'approbation continuent de fonctionner.

  4. Rien ne change dans vos scènes. Assets/Edgegap/EdgegapBootstrap.cs ajoute les composants au démarrage, configurés par EdgegapSettings.asset.

Avec votre agent :

« Charge la compétence edgegap, puis edgegap-ngo. En utilisant github.com/edgegap/netcode-game-sample-unity-ngo-bossroom comme référence, fais en sorte que mon jeu Netcode for GameObjects démarre un serveur dédié headless sur le port gameport, arrête son déploiement lorsque la partie est vide, et ajoute un bouton Trouver une partie qui rejoint le serveur attribué par le Matchmaker Edgegap, via le flux de connexion propre à mon jeu. »

Pour chaque étape détaillée, manuellement, consultez le guide d'intégration de Netcode for GameObjects.

4. Activer le matchmaking dans la salle du boss

Le Matchmaking est désactivé par défaut. Activez-le dès qu'une connexion directe fonctionne :

  1. Dans le fichier matchmaker-config.json du fork, définissez application.name et version avec le nom et la version de votre application.

  2. Dans le tableau de bord, ouvrez Matchmaker → Create Matchmaker, importez le fichier, puis cliquez sur Create and Start. Copiez son API URL et son Auth Token. Le jeton d'authentification (Auth Token) peut être utilisé en toute sécurité dans les clients de jeu : il n'autorise que les appels de matchmaking.

  3. Sélectionnez Assets/Edgegap/Resources/EdgegapSettings.asset. Cochez Use Edgegap Matchmaker, puis collez l'Matchmaker Url et l'Matchmaker Auth Token.

  4. Recompilez le client et lancez-le deux fois. Cliquez sur Find Match dans le panneau situé à gauche du menu principal sur les deux instances. Le statut passe de recherche (searching) → match trouvé (match found) → connexion (joining), puis les deux joueurs arrivent sur l'écran de sélection des personnages (Character Select) sur le même serveur.

Le profil casual crée des parties de 2 à 8 joueurs, ce qui correspond aux 8 places de héros de Boss Room. Il remplit jusqu'à 8 joueurs lorsqu'il le peut ; après 15 secondes, il démarre avec au moins 2 joueurs. Conservez cette étape d'extension : sans elle, une partie de moins de 8 joueurs ne démarre qu'à l'expiration des tickets, au bout de 5 minutes.

Pour tester sans clics, transmettez les paramètres via la ligne de commande (<url> et <token> de l'étape 2), avec -AuthProfile p2 et -edgegapAutoReady 1 pour le second client :

Game.exe -AuthProfile p1 -edgegapMatchmaker true -edgegapMatchmakerUrl <url> -edgegapAuthToken <token> -edgegapFindMatch -edgegapAutoReady 0

Lorsque vous déployez une nouvelle version du serveur : nouveau tag d'image → nouvelle version de l'application → dans le matchmaker, Stop, modifiez application.version, Start. Sinon, les parties continueront de déployer l'ancienne version.

Limites connues

  • Clients de bureau uniquement. Boss Room se connecte via UDP, ce que les navigateurs ne peuvent pas ouvrir. Une version WebGL nécessiterait les WebSockets d'Unity Transport et un port WS avec mise à niveau TLS : cela ne fait pas partie de cet exemple.

  • Le panneau Trouver un match est une simple superposition, ne faisant pas partie du menu de Boss Room. Pour un vrai jeu, appelez EdgegapMatchmakingClient.FindMatch() et CancelMatchmaking() depuis votre propre bouton et désactivez ShowGUI.

  • Aucune vérification de ticket sur le serveur. Toute personne disposant de l'IP et du port peut rejoindre via IP directe. Vérifier l'ID de ticket de chaque client par rapport à MM_TICKET_IDS lors de l'approbation de connexion est une étape suivante.

  • Impossible de rejoindre une partie en cours. Les joueurs qui appuient sur Trouver un match plus tard obtiennent un nouveau serveur ; le backfill n'est pas configuré.

  • Erreurs de serveur sans danger. Le serveur headless enregistre des erreurs NullReferenceException dans ClientCharacter.OnAnimEvent et Transform child out of bounds, provenant des éléments visuels côté client de Boss Room. Elles n'affectent pas le jeu.

  • Niveau gratuit : un seul déploiement à la fois, et le matchmaker redémarre toutes les 3 heures (mêmes URL et jeton).

Ce qui a été testé

Testé de bout en bout sur Edgegap le 19 octobre 2026, avec Unity 6000.0.54f1, Netcode for GameObjects 1.13.0, Unity Transport 2.5.2 (UDP) et le SDK Edgegap Unity 3.5.6 :

  • Connexion directe : deux clients Windows ont rejoint le même serveur Edgegap par IP et ont joué dans le donjon.

  • Matchmaker : deux clients Windows ont cliqué sur Find Match, ont été associés, se sont connectés et ont atteint la sélection de personnage sur le même serveur en moins de 40 secondes après le lancement, puis ont joué dans le donjon.

  • Arrêt automatique : à chaque fois, le serveur a arrêté son propre déploiement après le départ des joueurs.

Les clients macOS et Linux devraient fonctionner, non testé. Les options de ligne de commande de test du fork (-edgegapConnect, -edgegapFindMatch, -edgegapAutoReady, -edgegapScreenshots, -edgegapQuitAfter) sont répertoriées dans EDGEGAP.md.

Questions Fréquemment Posées

Questions concernant l'exécution de Boss Room d'Unity avec les serveurs dédiés et le matchmaking d'Edgegap.

Boss Room peut-il utiliser le matchmaking sans Unity Gaming Services ?

Oui. Le fork d'Edgegap ajoute un panneau optionnel « Trouver une partie » qui utilise le Matchmaker d'Edgegap. Il ne nécessite aucun Matchmaker, Relay ou Lobby d'UGS : le matchmaker lance un serveur Edgegap et chaque client apparié le rejoint.

Combien de joueurs peuvent participer à une partie Boss Room sur Edgegap ?

Le profil de matchmaking du fork crée des parties de 2 à 8 joueurs, soit autant que les 8 places de héros de Boss Room. Il attend jusqu'à 15 secondes pour compléter la partie, puis commence avec au moins 2 joueurs.

De quelle version d'Unity le fork de Boss Room a-t-il besoin ?

Unity 6000.0.54f1 (Unity 6.0 LTS), avec les modules de compilation Linux Dedicated Server. Unity n'a pas mis à jour Boss Room pour les versions ultérieures, les versions plus récentes peuvent donc le corrompre.

Le serveur de la Boss Room continue-t-il de fonctionner lorsque personne ne joue ?

Non. Le serveur arrête son propre déploiement Edgegap 30 secondes après le départ du dernier joueur, ou si personne ne le rejoint dans les 120 secondes, les serveurs inactifs ne coûtent donc rien.

Clients

Découvrez les témoignages de clients qui ont intégré Edgegap

31 études de cas sont disponibles auprès de studios ayant migré d'une autre plateforme vers Edgegap.

Principales raisons pour lesquelles ils ont choisi Edgegap

Découvrez l’impact de l’orchestration automatisée des serveurs de jeu d’Edgegap pour une expérience multijoueur impeccable.

Coût

Prix

Prix

Optimisez les coûts et les performances grâce à l'orchestration hybride

Optimisez les coûts et les performances grâce à l'orchestration hybride

Optimisez les coûts et les performances grâce à l'orchestration hybride

Cloud de périphérie

À la demande

0,00115 $

/ vCPU

/ MINUTE

Facturé à la minute, uniquement à l'utilisation

Payez quand les joueurs jouent. 0 serveur actif = 0 $

Déployez des serveurs de jeu dans le monde entier, par instance, dans plus de 615 emplacements edge cloud. Sans engagement.

Ajoutez simplement une carte de crédit.

Cloud de périphérie

À la demande

0,00115 $

/ vCPU

/ MINUTE

Facturé à la minute, uniquement à l'utilisation

Payez quand les joueurs jouent. 0 serveur actif = 0 $

Déployez des serveurs de jeu dans le monde entier, par instance, dans plus de 615 emplacements edge cloud. Sans engagement.

Ajoutez simplement une carte de crédit.

Private Fleet (Bare Metal)

Capacité réservée

0,0261 $

/ vCPU

/ HEURE

Facturé mensuellement, toujours actif

280 $ par hôte/mois (tarif sur 12 mois), ou 350 $ par mois

Optimisez la rentabilité de votre serveur de jeu grâce à l'hébergement sans frais de transfert de données sortantes (egress-free) des flottes privées (Private Fleets).

Permanent, disponible 24h/24 et 7j/7, exclusif à votre studio.

Private Fleet (Bare Metal)

Capacité réservée

0,0261 $

/ vCPU

/ HEURE

Facturé mensuellement, toujours actif

280 $ par hôte/mois (tarif sur 12 mois), ou 350 $ par mois

Optimisez la rentabilité de votre serveur de jeu grâce à l'hébergement sans frais de transfert de données sortantes (egress-free) des flottes privées (Private Fleets).

Permanent, disponible 24h/24 et 7j/7, exclusif à votre studio.

Votre facture varie selon le tarif et l'utilisation, qui peuvent varier en fonction
du type de jeu, du nombre de joueurs et plus encore.

Votre facture varie selon le tarif et l'utilisation, qui peuvent varier en fonction
du type de jeu, du nombre de joueurs et plus encore.

Modélisez votre utilisation avec notre calculateur d'estimation ->

Modélisez votre utilisation avec notre calculateur d'estimation ->

Fonctionnalités et tarifs d'Edgegap : comparaison détaillée entre Edge Cloud et Private Fleets

Fonctionnalités et tarifs d'Edgegap : comparaison détaillée entre Edge Cloud et Private Fleets

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.

COMPARER

Essai gratuit

Cloud de périphérie

Flottes privées

FONCTIONNALITÉS

Analyses et surveillance

Alertes de facturation

Cliquer pour agrandir

28 lignes de plus

Déverrouille

Les fonctionnalités sont débloquées lorsqu'une carte de crédit est ajoutée au compte.