Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Moteur Unity

Moteur Unity

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

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

Unity : 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 multijoueur conçu avec Unity sur les serveurs de jeu dédiés d'Edgegap, quel que soit le netcode utilisé, 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 d'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 nécessitant une capacité réservée, Edgegap propose des Private Fleets. Le Matchmaking d'Edgegap s'appuie sur cette base et est facultatif.

Unity ne gère pas le réseau de votre jeu tout seul : vous avez besoin d'une bibliothèque de netcode. Heureusement, Edgegap propose une intégration pour chacune des plus populaires : Netcode for GameObjects, Mirror, Fish-Networking, Photon Fusion 2 et PurrNet. Cette page traite des éléments communs à tous les projets Unity ; la page de chaque netcode détaille ses spécificités.

Ce guide aborde :

  1. La préparation d'Unity, de votre netcode, de votre compte Edgegap et d'un outil de conteneurisation

  2. La connexion de votre agent de programmation à Edgegap (facultatif)

  3. La préparation de votre jeu pour les serveurs dédiés, quel que soit le netcode utilisé

  4. La compilation et la conteneurisation de votre serveur de jeu

  5. Le déploiement d'un serveur de test et la connexion à celui-ci

  6. L'ajout du matchmaking (facultatif)

  7. Le test de la boucle complète avec deux joueurs

Vous pouvez procéder de deux manières et 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, compile et conteneurise le serveur, le déploie et écrit le code de matchmaking. Vous gérez les clics dans Unity et le tableau de bord Edgegap, et effectuez les tests de jeu.

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

Pour la compilation et la conteneurisation du serveur, le plugin d'outil de compilation automatisée de serveur de jeu pour Unity d'Edgegap est facultatif. Il compile votre serveur, le conteneurise et le déploie sur le cloud à l'aide 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).

La vidéo de l'étape 4 utilise l'exemple Tanks de Mirror sur Unity 6.3 LTS. Tout projet Unity qui s'exécute en tant que serveur dédié 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.

    • Nous utilisons Unity 6.3 LTS. Les versions non-LTS les plus récentes peuvent casser les packages de netcode, restez donc sur une version LTS pour tout ce que vous publiez.

    • Sous Windows, Unity 6 peut également demander le package de chaîne d'outils Linux (com.unity.toolchain.win-x86_64-linux) la première fois que vous compilez pour Linux.

    • 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 plugin Edgegap.

  • Un netcode, fonctionnant sur localhost. Deux joueurs doivent pouvoir rejoindre et jouer avec une instance servant de serveur. Pas encore de netcode ? Le propre Netcode for GameObjects d'Unity est une bonne option par défaut ; pour un jeu sur navigateur (WebGL), utilisez Mirror.

  • 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'échelle de l'organisation, traitez-le donc comme un mot de passe : ne le placez jamais dans votre projet, votre client de jeu ou un chat.

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 logs et de générer des configurations de matchmaking sur votre compte. Les compétences de l'agent lui fournissent le flux de travail Unity testé, les modèles C#, les adaptateurs de netcode, le Dockerfile et les pièges connus.

Claude Code (exécutez-le 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 les autres clients envoyant 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"] } } }. Le jeton sera demandé lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Une liste vide est normale. Une erreur concernant le jeton signifie généralement que l'en-tête indique token token ....

3. Préparez votre jeu pour l'hébergement dédié

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

Trouvez votre netcode. Chacun dispose de sa propre intégration Edgegap, avec ses paramètres, son port et son exemple :

Avec votre agent :

« Chargez la compétence edgegap-unity et préparez ce projet pour serveur dédié selon son netcode : les builds serveur démarrent le serveur en mode headless sur 0.0.0.0 et un port fixe, les joueurs apparaissent lorsque les clients se connectent, et le serveur s'arrête de lui-même à la fin du match. Ajoutez les scripts Edgegap de cycle de vie du serveur et de client de matchmaking avec le bon adaptateur de netcode. Vérifiez ensuite que cela fonctionne toujours localement avec un serveur et un client. »

La compétence dispose d'adaptateurs testés pour Netcode for GameObjects et Mirror, et redirige les projets FishNet vers sa compétence edgegap-fishnet. Pour les autres netcodes, l'agent écrit l'adaptateur à partir de la documentation de la bibliothèque.

Manuellement, quel que soit le netcode :

  • Dans les builds serveur, démarrez le serveur, jamais un hôte. Rien dans le code du serveur ne doit attendre un menu ou un bouton.

  • Écoutez sur toutes les interfaces (0.0.0.0) sur un port fixe : la valeur par défaut de votre transport dans la liste ci-dessus.

  • Faites apparaître les joueurs lorsque les clients se connectent, et non un joueur local pour l'hôte.

  • Supprimez les appels de relais, de salon ou de code de connexion (join-code) du chemin du serveur. Conservez une connexion IP directe pour les tests.

  • Assurez-vous que la scène contenant votre gestionnaire réseau 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 %.

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 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) : plugin de l'outil de build automatisé de serveur de jeu d'Edgegap pour Unity. Le moyen le plus rapide d'effectuer un premier déploiement dans le cloud, entièrement à l'aide de boutons. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous présente cette méthode.

  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.

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

  3. Sélectionnez Build Server. Le build est généré dans Builds/EdgegapServer/ServerBuild.

  4. Docker étant lancé, sélectionnez Validate, puis Containerize with Docker. Si vous le souhaitez, cliquez sur Deploy Local Container et connectez-y un client.

  5. Sélectionnez Upload Image and Create App Version. Dans le navigateur, définissez le port sur le port et le protocole de votre netcode (étape 3), nommé gameport. Le plugin préremplit 7770/UDP sous le nom « Game Port » : modifiez les deux si votre transport diffère. 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 et le protocole de mon netcode, 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 de la page Container Registry, afin que ces identifiants ne figurent pas dans le chat. Assurez-vous que la version de l'application a bien les identifiants du registre configurés : 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 Edgegap pour Unity, sur Unity 6.3 LTS avec l'exemple Tanks de Mirror :

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. N'importe laquelle de ces options 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 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, montre-moi les logs et donne-moi l'adresse ainsi que le port externe. »

Lorsque le déploiement est Ready, copiez son Host URL (ou son Host IP) et son External Port, saisissez-les dans les paramètres de connexion de votre client, puis appuyez sur Play. Certains transports, tels que Unity Transport, attendent l'IP plutôt que le nom d'hôte ; les clients de navigateur (WebGL) se connectent avec wss:// au nom d'hôte. Le port externe change à chaque déploiement, pensez donc à le relever à chaque fois. Le serveur peut prendre jusqu'à une minute après l'état Ready pour accepter des joueurs.

Arrêtez le déploiement lorsque vous avez terminé (Stop Last Deployment dans le plugin, ou demandez à votre agent). L'offre gratuite n'exécute qu'un seul déploiement à la fois, et un serveur de test oublié bloque le matchmaking.

Ici, vous avez choisi l'emplacement et transmis l'adresse manuellement. 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 de la partie, é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. Sauvegarde-la sous le nom 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, puis 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'API URL et l'Auth Token du matchmaker sur EdgegapMatchmakingClient, relie mon bouton Jouer à 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. »

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

Jeux par navigateur (WebGL) : pas de règle de latence dans le matchmaker (les navigateurs ne peuvent pas envoyer de pings de latence), et listez chaque origine qui héberge votre build dans allowed_cors_origins.

Lorsque vous déployez une nouvelle version du serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les parties 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 développez pour le navigateur ? Consultez Jeux Web (Unity). Vous préférez des salons que les joueurs parcourent ? Consultez le Navigateur de serveurs pour Unity. Déjà sur Unity Gaming Services ? Consultez notre guide UGS Matchmaker.

Prêt pour le lancement ? 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.

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

Questions Fréquemment Posées

Questions fréquentes sur l'hébergement d'un jeu multijoueur Unity sur les serveurs dédiés d'Edgegap, quel que soit le netcode utilisé.

Unity peut-il exécuter un serveur dédié ?

Oui. Compilez votre jeu pour la cible Linux Dedicated Server, une version sans affichage (headless) sans graphismes ni joueur. Votre code réseau le lance ensuite en tant que serveur, et Edgegap l'exécute dans un conteneur, à raison d'un par match.

Quel netcode devrais-je utiliser pour un serveur dédié Unity ?

Netcode for GameObjects, la solution propriétaire d'Unity, constitue un bon choix par défaut pour ordinateur de bureau et mobile. Le chemin WebGL de Mirror est celui qui a été vérifié de bout en bout avec le matchmaker d'Edgegap. Fish-Networking, Photon Fusion 2 et PurrNet fonctionnent également, et chacun dispose d'un guide d'intégration Edgegap.

Ai-je besoin du plugin Edgegap pour héberger un jeu Unity ?

Non. Le plugin est le moyen le plus rapide de compiler, conteneuriser et déployer depuis l'éditeur Unity. Un agent de codage connecté au serveur MCP d'Edgegap, ou votre propre build Docker, fonctionne également.

Quelle version d'Unity fonctionne avec Edgegap ?

Toute version récente avec les modules de compilation Linux Dedicated Server. Edgegap recommande une version LTS ; ce guide utilise Unity 6.3 LTS. Installez également un client Git pour ajouter des packages à partir d'une URL Git.

Combien coûte l'hébergement d'un serveur de jeu Unity ?

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.