Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Netcode for GameObjects

/

Netcode for GameObjects

Déployer sur Edgegap

Publié

Publié

Publié

dernière vérification de l'exactitude

dernière vérification de l'exactitude

dernière vérification de l'exactitude

Netcode for GameObjects : comment intégrer et héberger des serveurs dédiés, et ajouter le Matchmaking à votre jeu multijoueur

Netcode for GameObjects : comment intégrer et héberger des serveurs dédiés, et ajouter le Matchmaking à votre jeu multijoueur

Ce guide vous montre comment héberger un jeu développé avec Netcode for GameObjects (NGO), le netcode propre à Unity, sur les serveurs de jeu dédiés d'Edgegap, puis ajouter du matchmaking afin que les joueurs soient automatiquement regroupés et connectés à un serveur proche d'eux.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie dans le monde entier sur plus de 615 emplacements Edge Cloud (à la demande) à partir d'un simple appel API, avec une facturation basée exclusivement sur l'utilisation : aucun serveur entier à louer, approvisionner ou maintenir actif entre les matchs. Pour les serveurs persistants à capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie là-dessus et reste optionnel.

Ce guide aborde les points suivants :

  1. Préparer Unity, votre compte Edgegap et un outil de conteneurisation

  2. Connecter votre agent de codage à Edgegap (optionnel)

  3. Préparer votre jeu NGO pour des serveurs dédiés

  4. Générer et conteneuriser votre serveur de jeu

  5. Déployer un serveur de test et s'y connecter

  6. Ajouter le matchmaking (optionnel)

  7. Tester la boucle complète avec deux joueurs

Vous pouvez procéder de deux manières, et les combiner :

  • Avec un agent de codage. Connectez Claude Code, Cursor ou un autre agent au serveur MCP d'Edgegap et à ses compétences d'agent. L'agent modifie votre projet, compile et conteneurise le serveur, le déploie et écrit le code de matchmaking. Vous vous chargez des clics dans Unity et le tableau de bord Edgegap, ainsi que des tests en jeu.

  • Manuellement. Chaque étape ci-dessous fonctionne également sans agent.

Pour la compilation et la conteneurisation du serveur, le plugin d'outil de build automatisé de serveur de jeu d'Edgegap pour Unity est facultatif. Il compile votre serveur, le conteneurise et le déploie dans le cloud à partir de boutons dans l'Éditeur Unity, ce qui constitue le moyen le plus rapide de voir votre serveur en ligne pour la première fois (étape 4, Option A).

Ici, nous utilisons l'exemple Boss Room d'Unity, un jeu coopératif basé sur NGO. Par défaut, Boss Room fonctionne en mode hôte/client : un joueur héberge la partie et les autres la rejoignent via les sessions d'Unity. Les étapes marquées Boss Room traitent de ce qui lui est spécifique. Tout projet NGO fonctionne de la même manière.

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.

Guide étape par étape

Étapes d'intégration détaillées

1. Avant de commencer

  • Un compte Edgegap gratuit. Vérifiez votre adresse e-mail. Aucune carte de crédit n'est requise pour tester.

  • Le moteur Unity avec les modules de build Linux installés. Edgegap recommande une version LTS.

    • Ajoutez ces modules depuis Unity Hub : Linux Build Support (Mono), Linux Build Support (IL2CPP) et Linux Dedicated Server Build Support. Redémarrez Unity après les avoir ajoutés.

    • Boss Room : utilisez Unity 6.0 LTS, la version sur laquelle le projet d'exemple est basé. Unity n'a pas mis à jour Boss Room pour Unity 6.3 LTS ou ultérieur, les versions plus récentes peuvent donc le corrompre. Votre propre projet NGO peut utiliser n'importe quelle version LTS.

    • Boss Room : installez également Git LFS et exécutez git lfs install avant de cloner. Sans cela, les ressources graphiques de l'exemple ne se téléchargent pas et le projet s'ouvre vide.

  • Un outil de conteneurisation en cours d'exécution. Nous recommandons Docker Desktop, installé et actif pendant que vous compilez.

    • D'autres outils de conteneur fonctionnent également avec Edgegap, mais ce guide ne couvre que Docker.

  • Pour la méthode agent : un jeton d'API Edgegap, accessible depuis Dashboard → User Settings → Tokens. Il est valable pour toute l'organisation, traitez-le donc comme un mot de passe : ne l'intégrez jamais dans votre projet, votre client de jeu ou une messagerie instantanée.

Git : Unity nécessite un client Git (2.14.0 ou plus récent) dans votre PATH pour installer des packages depuis une URL Git, comme le plugin Edgegap. macOS en possède généralement déjà un (Xcode Command Line Tools) ; sur Windows, installez Git.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous faites tout manuellement.

Le serveur MCP Edgegap permet à votre agent de créer des applications et des versions, de déployer des serveurs, de lire les journaux et de générer des configurations de matchmaker sur votre compte. Les compétences de l'agent lui fournissent le flux de travail Unity éprouvé, les modèles C# (y compris l'adaptateur NGO), le Dockerfile et les pièges connus.

Claude Code : installez le plugin Edgegap. Il ajoute à la fois le serveur MCP et les compétences, et demande votre jeton d'API lors de l'installation (stocké dans le gestionnaire d'identifiants de votre système) :

/plugin marketplace add edgegap/llm-agent-skills, puis /plugin install edgegap@edgegap. Redémarrez la session.

Vous souhaitez uniquement le serveur MCP, sans le plugin ? Exécutez plutôt ceci dans votre propre terminal : claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user. Ne faites pas les deux, sinon vous aurez deux serveurs edgegap.

Cursor, VS Code et autres clients qui envoient des en-têtes : ajoutez https://mcp.edgegap.dev/mcp avec l'en-tête Authorization: token YOUR_EDGEGAP_API_TOKEN, et installez les compétences avec npx skills add edgegap/llm-agent-skills --skill "*".

Claude Desktop : les connecteurs personnalisés ne peuvent pas envoyer l'en-tête, utilisez donc le serveur local à la place (Node 18+) : { "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }. Il vous demandera le jeton lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Une liste vide ne pose aucun problème. Une erreur concernant le jeton signifie généralement que l'en-tête indique token token ....

3. Préparez le serveur de votre ONG pour l'hébergement dédié

Sur Edgegap, aucun joueur n'héberge la partie. Un serveur dédié headless gère le jeu, le serveur dédié doit donc démarrer de manière autonome, écouter sur un port fixe et s'arrêter lorsque la partie est terminée.

Avec votre agent :

« Chargez la compétence edgegap-unity et préparez ce projet Netcode for GameObjects pour serveur dédié : les builds serveur appellent StartServer en mode headless sur 0.0.0.0, les joueurs apparaissent lorsque les clients se connectent, les appels Relay et Lobby sont supprimés du chemin du serveur, et le serveur s'arrête de lui-même lorsque la partie prend fin. Ajoutez le cycle de vie du serveur Edgegap et les scripts clients de matchmaking avec l'adaptateur NGO. Vérifiez ensuite que cela fonctionne toujours localement avec un serveur et un client. »

Manuellement, dans votre projet :

  • Dans les builds serveur, appelez NetworkManager.StartServer(), jamais StartHost(). Rien sur le chemin du serveur ne doit attendre un menu ou un bouton.

  • Conservez le port d'Unity Transport, 7777/UDP par défaut, et configurez le serveur pour qu'il écoute sur toutes les interfaces : SetConnectionData("0.0.0.0", port, "0.0.0.0").

  • Faites apparaître les joueurs lorsque les clients se connectent (le Player Prefab du Network Manager, ou OnClientConnectedCallback), et non un joueur local pour l'hôte.

  • Supprimez les appels Unity Relay, Lobby ou de session du chemin du serveur. Conservez une connexion IP directe pour les tests.

  • Assurez-vous que la scène contenant le Network Manager est activée dans les Build Settings. Seules les scènes activées sont compilées.

  • Définissez Application.targetFrameRate (30 à 60) sur le serveur, sinon le build headless fera tourner un cœur de processeur à 100 %.

Boss Room

L'exemple de base démarre l'hôte via les sessions d'Unity et son propre ConnectionManager, il ne peut donc pas fonctionner tel quel en tant que serveur dédié. Deux approches possibles :

  • Convertir l'exemple de base avec votre agent. Clonez Boss Room d'Unity avec Git LFS, puis utilisez l'invite ci-dessus et ajoutez : « Acheminez le démarrage du serveur et les connexions clients via le ConnectionManager de Boss Room (ses méthodes de connexion IP) au lieu d'appeler directement le NetworkManager. »

  • Ou partir du fork Boss Room d'Edgegap. Il est déjà prêt pour serveur dédié : le serveur appelle StartServer au lieu de StartHost, et un EdgegapServerStarter dans la scène MainMenu le démarre sur 0.0.0.0, sur le port qu'Edgegap transmet au conteneur. Le plugin Edgegap est déjà inclus. Le fork ajoute également un bouton Matchmake qui appelle UGS Matchmaker d'Unity : pour conserver UGS Matchmaker et lui faire déployer des serveurs sur Edgegap, suivez notre guide UGS Matchmaker. Ce guide utilise plutôt le matchmaker d'Edgegap (étape 6).

À la première ouverture, le fork peut démarrer en Mode sans échec (Safe Mode). Installez Multiplayer Services depuis Window → Package Manager → Unity Registry, puis vérifiez que la console n'affiche aucune erreur de compilation.

Testez d'abord localement : une instance de l'Éditeur (ou un build) en tant que serveur, une autre en tant que client, avec le Multiplayer Play Mode d'Unity. Ne conteneurisez pas un jeu qui ne fonctionne pas sur localhost.

4. Construisez et conteneurisez votre serveur

Edgegap exécute votre build de serveur Linux dans un conteneur. Utilisez l'une ou l'autre option, ou les deux : par exemple, le plugin pour votre premier déploiement et votre agent pour chaque build suivant.

Option A (facultative) : Le plugin de l'outil automatisé de build de serveur de jeu d'Edgegap pour Unity. Le moyen le plus rapide pour un premier déploiement dans le cloud, entièrement via des boutons. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous montre ce cheminement sur le fork Boss Room d'Edgegap.

  1. Dans Unity, sélectionnez Window → Package Manager, cliquez sur +, puis Add package from git URL, et collez https://github.com/edgegap/buildtool-unity-plugin.git. (Le fork Boss Room d'Edgegap l'inclut déjà.)

  2. Ouvrez Tools → Edgegap Server Hosting, connectez-vous, et collez le jeton fourni sous Connect your Edgegap Account. Sélectionnez Validate Token.

  3. Vérifiez vos scènes dans les Build Settings. Pour Boss Room, Startup arrive en premier, puis MainMenu, puis les scènes de gameplay.

  4. Sélectionnez Build Server. La build se trouve dans Builds/EdgegapServer/ServerBuild.

  5. Avec Docker en cours d'exécution, sélectionnez Validate, puis Containerize with Docker. Facultativement, cliquez sur Deploy Local Container et connectez-y un client.

  6. Sélectionnez Upload Image and Create App Version. Dans le navigateur, configurez le port pour qu'il corresponde à votre transport : 7777, UDP, nommé gameport. Soumettez.

Option B : demandez à votre agent.

« Construis le serveur dédié Linux, conteneurise-le avec le Dockerfile edgegap-unity pour linux/amd64, pousse-le vers mon registre de conteneurs Edgegap avec un nouveau tag, puis crée l'application et la version de l'application avec le port 7777 UDP nommé gameport. »

L'agent vous demande d'exécuter vous-même docker login registry.edgegap.com, avec le nom d'utilisateur et le jeton provenant de la page Container Registry, afin que ces identifiants ne restent pas dans la discussion. Assurez-vous que la version de l'application ait les identifiants du registre configurés : sans eux, les déploiements échouent avec « Unable to pull image from registry ».

Utilisez un nouveau tag d'image pour chaque build, jamais latest.

Voici notre tutoriel vidéo pour le plugin d'Edgegap pour Unity, utilisant le fork Boss Room d'Edgegap :

5. Déployez un serveur de test et connectez-vous

Démarrez un serveur manuellement pour vérifier que l'image, le port et votre netcode fonctionnent avant d'ajouter le matchmaking. L'une de ces méthodes convient :

  • Depuis le plugin : choisissez votre application et votre version, puis sélectionnez Deploy to Cloud.

  • Depuis le tableau de bord : ouvrez la version de votre application dans le tableau de bord Edgegap, sélectionnez Deploy, choisissez un emplacement proche de chez vous et déployez.

  • Depuis votre agent : « Déploie ma dernière version Edgegap près de chez moi, attends qu'elle soit prête, affiche les journaux et donne-moi l'adresse IP ainsi que le port externe. »

Lorsque le déploiement est Ready, copiez son Host IP et son External Port. Utilisez l'adresse IP, pas le nom d'hôte : Unity Transport attend une adresse IP. Définissez-les comme données de connexion du client sur Unity Transport, puis appuyez sur Play. Boss Room : sélectionnez Join with IP, puis saisissez l'IP et le port externe. Le port externe change à chaque déploiement, pensez donc à le vérifier à chaque fois. Le serveur peut mettre jusqu'à une minute après l'état Ready pour accepter les joueurs.

Arrêtez le déploiement lorsque vous avez terminé (Stop Last Deployment dans le plugin, ou demandez à votre agent). Le niveau gratuit permet d'exécuter un seul déploiement à la fois, et un serveur de test oublié bloque le matchmaking.

Ici, vous avez choisi l'emplacement et distribué l'adresse. Pour regrouper les joueurs et démarrer automatiquement un serveur près d'eux, ajoutez un matchmaker.

6. Ajouter le matchmaking

Le matchmaker d'Edgegap est un service hébergé : les joueurs envoient un ticket, il les regroupe selon vos règles (taille du match, équipes, latence, niveau, mode), déploie votre serveur à proximité d'eux et renvoie l'adresse à chaque client.

Avec votre agent :

« Génère une configuration de matchmaker Edgegap pour la version de mon application : une équipe de 2 à 4 joueurs, et permets à un joueur seul d'obtenir un serveur après 20 secondes afin que je puisse tester en solo. Enregistre-la sous le nom matchmaker-config.json. »

Ensuite, dans le tableau de bord (cette étape ne dispose pas d'API) :

  1. Ouvrez Matchmaker et sélectionnez Create Matchmaker.

  2. Nommez-le, téléversez matchmaker-config.json, et sélectionnez Create and Start.

  3. Lorsqu'il est ONLINE, copiez l'API URL et l'Auth Token. L'Auth Token peut être intégré en toute sécurité dans votre client de jeu : il ne donne aucun accès à votre compte Edgegap.

De retour avec votre agent :

« Mets l'API URL et l'Auth Token du matchmaker sur EdgegapMatchmakingClient, relie mon bouton Play à FindMatch, puis recompile et pousse le serveur, crée une nouvelle version de l'application et dis-moi ce qu'il faut mettre à jour dans le matchmaker. »

Boss Room : demandez à l'agent de connecter les joueurs associés via la connexion IP ConnectionManager de Boss Room, afin que la charge utile de connexion et la sélection de personnage de l'exemple continuent de fonctionner. Sur le fork d'Edgegap, il peut remplacer le bouton Matchmake d'UGS ou se placer à côté.

Manuellement : suivez le guide de matchmaking Unity dans notre documentation.

Lorsque vous publiez un nouveau build de serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les matchs continueront de déployer l'ancien build.

7. Testez la boucle complète avec deux joueurs

  1. Assurez-vous qu'aucun déploiement de test n'est encore en cours d'exécution.

  2. Lancez deux clients : l'Éditeur plus un build, ou deux joueurs en Multiplayer Play Mode.

  3. Sélectionnez Find Match sur les deux. Le statut passe de recherche à match trouvé, puis à hôte assigné, et les deux clients se connectent alors au même serveur.

  4. Quittez le match. Le serveur indique dans les journaux qu'il s'arrête, et le déploiement disparaît du tableau de bord. Cet arrêt automatique est ce qui maintient votre facture à zéro lorsque personne ne joue.

Avec le forfait gratuit, le matchmaker s'arrête 3 heures après chaque démarrage (redémarrez-le depuis le tableau de bord), les déploiements s'arrêtent après 60 minutes et un seul déploiement s'exécute à la fois.

Étapes suivantes

Étapes suivantes

Vous utilisez déjà Unity Gaming Services ? Conservez UGS Matchmaker et faites-lui déployer vos serveurs sur Edgegap : consultez notre guide UGS Matchmaker. Vous préférez les salons que les joueurs peuvent parcourir ? Consultez le navigateur de serveurs pour Unity.

Vous passez en production ? Demandez à votre agent d'exécuter la liste de contrôle de la compétence edgegap-launch : déploiements de versions, politique de redémarrage, durée maximale, contrôle des coûts.

Vous êtes bloqué ? Demandez à votre agent de charger edgegap-troubleshoot, ou posez vos questions à notre équipe et à d'autres studios sur le Discord d'Edgegap.

Questions Fréquemment Posées

Questions fréquentes sur l'hébergement d'un jeu Netcode for GameObjects sur les serveurs dédiés d'Edgegap, avec ou sans matchmaking.

Est-ce que Netcode for GameObjects prend en charge les serveurs dédiés ?

Oui. Effectuez un build pour Linux Dedicated Server, appelez StartServer() au lieu de StartHost() dans les builds serveur, et faites apparaître les joueurs lorsque les clients se connectent. Le serveur s'exécute alors en mode headless (sans interface graphique), sans hébergement par un joueur.

Quel port Netcode for GameObjects utilise-t-il sur Edgegap ?

Quel que soit le port sur lequel Unity Transport écoute, 7777 via UDP par défaut. Définissez le même port et le même protocole sur la version de votre application Edgegap, nommé gameport. Les joueurs se connectent à l'IP du déploiement et au port externe que Edgegap lui attribue.

L'échantillon Boss Room d'Unity peut-il fonctionner sur un serveur dédié ?

Pas clé en main : il fonctionne en hôte/client via les sessions d'Unity. Un agent de codage doté des compétences Edgegap peut le convertir, ou vous pouvez partir du fork Boss Room d'Edgegap, qui fonctionne déjà comme un serveur dédié. Utilisez Unity 6.0 LTS pour Boss Room.

Puis-je conserver le Matchmaker UGS d'Unity et héberger sur Edgegap ?

Oui. UGS Matchmaker peut appeler l'API d'Edgegap pour déployer un serveur dédié pour chaque match. Notre guide UGS Matchmaker l'explique en détail.

Combien coûte l'hébergement d'un serveur de jeu Netcode for GameObjects ?

L'essai est gratuit, sans carte de crédit. Ensuite, Edge Cloud facture par vCPU et par minute uniquement lorsque les serveurs fonctionnent, de sorte qu'un serveur qui s'arrête à la fin de chaque match ne coûte rien entre les matchs.

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.

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.

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.