Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Netcode pour GameObjects

Netcode pour 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 propriétaire d'Unity, sur les serveurs de jeu dédiés d'Edgegap, puis y ajouter du matchmaking pour regrouper et connecter automatiquement les joueurs à un serveur proche d'eux.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie à travers le monde 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 parties. Pour les serveurs persistants disposant d'une capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie sur cette base et est facultatif.

Ce guide aborde les points suivants :

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

  2. Connecter votre agent de programmation à Edgegap (facultatif)

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

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

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

  6. Ajouter du matchmaking (facultatif)

  7. Tester la boucle complète avec deux joueurs

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

  • Avec un agent de programmation. Connectez Claude Code, Cursor ou un autre agent au serveur MCP d'Edgegap et à ses compétences d'agent. L'agent modifie votre projet, génère le build et conteneurise le serveur, le déploie et rédige le code de matchmaking. Vous gérez les clics dans Unity et le tableau de bord Edgegap, puis effectuez les tests de jeu.

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

Pour générer le build et conteneuriser le serveur, le plugin d'outil de build de serveur de jeu automatisé pour Unity d'Edgegap est facultatif. Il génère le build de 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 développé sur NGO. Par défaut, Boss Room fonctionne selon un modèle hôte/client : un joueur héberge et les autres rejoignent via les sessions d'Unity. Les étapes marquées Boss Room traitent de ce qui lui est spécifique. N'importe quel 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 compilation 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 l'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.

    • Installez un client Git (2.14.0 ou plus récent) et ajoutez-le à votre PATH. Unity en a besoin pour installer des packages à partir d'une URL Git, comme le plug-in Edgegap.

    • Boss Room : installez également Git LFS et exécutez git lfs install avant le clonage. 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 la compilation.

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

  • Pour le chemin de l'agent : un jeton d'API Edgegap, accessible depuis Tableau de bord → Paramètres utilisateur → Jetons. Il s'applique à l'ensemble de l'organisation, traitez-le donc comme un mot de passe : ne l'incluez jamais dans votre projet, votre client de jeu ou une discussion instantanée.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous faites tout manuellement.

Le serveur MCP d'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 testé, les modèles C# (y compris l'adaptateur NGO), le Dockerfile et les pièges connus.

Claude Code (à exécuter dans votre propre terminal, afin que le jeton ne transite jamais par le chat) :

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user

Ensuite, installez les compétences : /plugin marketplace add edgegap/edgegap-agent-skills, puis /plugin install edgegap@edgegap. Redémarrez la session.

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/edgegap-agent-skills --skill "*".

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

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Une liste vide est tout à fait normale. 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 le match est terminé.

Avec votre agent :

« Charge la compétence edgegap-unity et prépare 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 retirés du flux serveur, et le serveur s'arrête de lui-même à la fin du match. Ajoute le cycle de vie du serveur Edgegap et les scripts clients de matchmaking avec l'adaptateur NGO. Vérifie 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 flux serveur ne doit attendre un menu ou un bouton.

  • Conservez le port d'Unity Transport, 7777/UDP par défaut, et faites en sorte que le serveur é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.

  • Retirez les appels à Unity Relay, Lobby ou aux sessions du flux 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 :

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

  • Ou partez du fork de Boss Room par 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 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 : un Éditeur (ou build) en tant que serveur, un 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 le build de votre serveur Linux dans un conteneur. Utilisez l'une ou l'autre des options, 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 d'effectuer un premier déploiement sur le cloud, le tout à l'aide de boutons. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous présente cette méthode sur le fork Boss Room d'Edgegap.

  1. Dans Unity, sélectionnez Window → Package Manager, cliquez sur +, puis sur Add package from git URL, et collez https://github.com/edgegap/edgegap-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 Build Settings. Pour Boss Room, Startup arrive en premier, puis MainMenu, puis les scènes de gameplay.

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

  5. Avec Docker en cours d'exécution, sélectionnez Validate, puis Containerize with Docker. Si vous le souhaitez, sélectionnez 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. Validez.

Option B : demandez à votre agent.

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

L'agent vous demande d'exécuter docker login registry.edgegap.com vous-même, avec le nom d'utilisateur et le jeton de la page Container Registry, afin que ces identifiants ne figurent pas dans le chat. Assurez-vous que les identifiants du registre sont définis pour la version de l'application : sans eux, les déploiements échouent avec le message « 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 30 secondes pour que je puisse tester seul. Enregistre-la sous matchmaker-config.json. »

Ensuite, dans le tableau de bord (cette étape n'a 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é sans risque dans votre client de jeu : il ne donne aucun accès à votre compte Edgegap.

De retour avec votre agent :

« Renseigne l'URL de l'API du matchmaker et l'Auth Token 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 du ConnectionManager de Boss Room, afin que la charge utile de connexion et la sélection de personnage de l'exemple fonctionnent toujours. 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 déployez une nouvelle version du serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les matchs continueront à déployer l'ancienne version.

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 Server Browser pour Unity.

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

Bloqué ? Demandez à votre agent de charger edgegap-troubleshoot, ou posez vos questions à notre équipe et aux 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

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,0282 $

/ 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,0282 $

/ 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 prix d'Eggegap : comparaison détaillée entre Edge Cloud et Private Fleets

Fonctionnalités et prix d'Eggegap : 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.