Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Navigateur de serveurs Unity

Navigateur de serveurs 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

Navigateur de serveurs Unity : Comment ajouter des salons en ligne à votre jeu multijoueur Unity avec Edgegap

Navigateur de serveurs Unity : Comment ajouter des salons en ligne à votre jeu multijoueur Unity avec Edgegap

Ce guide vous montre comment ajouter des salons en ligne à la demande à un jeu multijoueur Unity qui fonctionne déjà sur les serveurs de jeu dédiés d'Edgegap, grâce au Server Browser d'Edgegap : chaque joueur réserve une place et se connecte automatiquement à un serveur prêt, sans que personne n'ait à saisir d'adresse.

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 en fonctionnement entre les matchs. Pour les serveurs persistants à capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie sur cette base et est facultatif.

Le Server Browser est un service hébergé situé entre vos joueurs et vos serveurs. Les clients du jeu y réservent des places (1). Chaque serveur s'enregistre, signale ses places disponibles et reste visible grâce à un heartbeat (2). Les joueurs se connectent ensuite directement au serveur via votre netcode (3). Une politique de mise à l'échelle (scaling policy) démarre des serveurs afin de garantir qu'il y ait toujours de la capacité (4).

Server Browser call flow: game clients reserve seats through the Server Browser, dedicated servers register and send keep-alives, players connect to the server with their netcode, and a scaling policy deploys servers

Ce guide couvre :

  1. La préparation d'une version d'application Edgegap fonctionnelle pour votre jeu

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

  3. L'installation du SDK Unity d'Edgegap

  4. L'ajout du code d'intégration

  5. L'ajout des scripts à votre scène

  6. La création de votre Server Browser

  7. Le déploiement de votre serveur avec une politique de mise à l'échelle

  8. Le test avec deux joueurs

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

  • Avec un agent de programmation. N'importe quel assistant de programmation IA peut écrire le code d'intégration à partir des deux invites de l'étape 4. Connecté au serveur MCP Edgegap, il peut également compiler, pousser (push) et déployer votre serveur. 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.

Ici, nous utilisons l'exemple Billiards de Mirror. Tout netcode Unity 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.

  • Une version d'application Edgegap fonctionnelle de votre serveur de jeu : un serveur que vous avez déployé et rejoint au moins une fois. Le Server Browser déploie et remplit ce serveur, il nécessite donc un serveur de jeu conteneurisé et fonctionnel pour fonctionner de bout en bout. Si vous n'en avez pas encore, utilisez nos guides :

  • Le plugin de l'outil de build de serveur de jeu d'Edgegap pour Unity, issu de ces guides, pour rebuilder votre serveur à l'étape 7.

  • Pour le chemin de l'agent : un jeton d'API Edgegap, 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 le placez jamais dans votre projet, votre client de jeu ou une messagerie.

Git : Unity nécessite un client Git (2.14.0 ou supérieur) dans votre PATH pour installer des packages à partir d'une URL Git, comme le SDK Edgegap. macOS en possède généralement déjà un (Outils en ligne de commande Xcode) ; sur Windows, installez Git.

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 et de lire les journaux sur votre compte. Les compétences d'agent d'Edgegap ne couvrent pas encore le Server Browser, le code d'intégration provient donc des deux invites de l'étape 4 ; les compétences aident tout de même pour la compilation et le déploiement.

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"] } } }. Le jeton sera demandé lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Votre application et sa version devraient apparaître dans la liste.

3. Installez le SDK Unity d'Edgegap

Le Server Browser fait partie du SDK Unity d'Edgegap, un package distinct du plugin qui compile et déploie votre serveur.

  1. Dans Unity, sélectionnez Window → Package Management → Package Manager, cliquez sur +, puis sur Add package from git URL, collez https://github.com/edgegap/edgegap-unity-sdk.git et sélectionnez Add.

  2. Dans l'onglet Samples du SDK, importez Server Browser - Auto-Assign. Cela ajoute deux scripts : un gestionnaire client qui réserve une place et transmet l'adresse du serveur à votre jeu, et un gestionnaire serveur qui enregistre votre serveur auprès du Server Browser et signale ses places libres.

Le SDK s'occupe de presque tout. Trois parties spécifiques au netcode vous incombent : les lignes qui connectent le joueur au serveur assigné, une courte initialisation (handshake) qui indique au serveur quel joueur l'a rejoint, et la libération de la place du joueur lorsqu'il quitte la partie. L'étape 4 les ajoute.

4. Ajoutez le code d'intégration

Deux invites (prompts) pour n'importe quel assistant de codage IA afin d'écrire ce code pour votre netcode. La vidéo ci-dessous les présente sur l'exemple Billiards de Mirror.

Invite 1, auditer votre projet (lecture seule) :

« Lecture seule, aucune modification de code. J'intègre l'Edgegap Server Browser (Auto-Assign) dans mon projet Unity : au moment de l'exécution, il fournit à mon client l'adresse d'un serveur réservé (un FQDN) et un port externe, et mon serveur doit confirmer chaque joueur à l'aide d'un ID de joueur. Trouvez et indiquez-moi, avec les chemins d'accès aux fichiers et les numéros de ligne : 1) la méthode qui démarre une connexion client, et les champs exacts où l'adresse du serveur et le port sont définis, ainsi que le transport utilisé ; 2) la manière dont mon netcode envoie un petit message personnalisé du client vers le serveur et enregistre un gestionnaire (handler) pour celui-ci sur le serveur ; 3) l'événement qui se déclenche sur le client lorsqu'il termine sa connexion, et s'il est réinitialisé au démarrage du client (pour savoir si je dois m'y abonner après le démarrage du client) ; 4) l'événement qui se déclenche sur le serveur lorsqu'un joueur se déconnecte, et comment il identifie la connexion. Examinez en premier lieu la classe de type NetworkManager et son transport. Confirmez chaque point par rapport au projet. »

Invite 2, écrire l'intégration :

« En vous basant sur l'audit, effectuez trois modifications pour l'intégration de l'Edgegap Server Browser Auto-Assign, sans créer de sous-classe ni remplacer le gestionnaire de mon netcode. 1) Créez un MonoBehaviour autonome EdgegapPlayerConnector dans Assets/Scripts/ (Instance statique, DontDestroyOnLoad) avec un petit message réseau transportant une chaîne playerId. Sur le serveur, enregistrez son gestionnaire dans Start() : stockez le mappage connexion-playerId et appelez ServerBrowserServerHandler.Instance.OnPlayerJoined(playerId). Exposez SubscribeClientConnected(), qui envoie ServerBrowserClientHandler.Instance.LocalPlayerId une fois le client connecté, pouvant être appelée en toute sécurité après le démarrage du client. 2) Dans le fichier d'exemple ServerBrowserClientHandler.cs, générez LocalPlayerId à l'exécution (un nouveau GUID) et utilisez-le dans la réservation de place ; lorsque les places sont réservées, définissez le FQDN assigné comme adresse réseau, convertissez le port externe dans le type attendu par mon transport et définissez-le, démarrez le client, puis appelez SubscribeClientConnected(). 3) Sur le serveur, abonnez-vous à l'événement de déconnexion identifié lors de l'audit ; recherchez le playerId de la connexion qui se déconnecte, appelez ServerBrowserServerHandler.Instance.OnPlayerAbandoned avec la signature lue dans le code source du SDK, et supprimez l'entrée. Prévoyez une protection contre les entrées manquantes et l'absence de gestionnaire. Renvoyez les fichiers complets. »

Connect flow: read and set the address, read and set the external port, then start the client; with Mirror, the network address on the Network Manager, the port on the active PortTransport, and StartClient()Disconnect flow: detect the disconnect, look up the player, release the reservation; with Mirror, OnDisconnectedEvent and the connection ID to player ID mapping on NetworkServer, then OnPlayerAbandoned on the server handler

L'audit repère les particularités du netcode pour vous. Avec Mirror, par exemple, l'événement client-connected est réinitialisé au démarrage du client, de sorte que le connecteur s'abonne après le démarrage du client. Sans la libération des places, celles-ci restent bloquées et le serveur finit par signaler qu'il n'y a plus de places libres.

Voici notre tutoriel vidéo sur le Server Browser d'Edgegap pour Unity, utilisant l'exemple de billard de Mirror :

5. Ajoutez les scripts à votre scène

Dans Unity, un script ne fait rien tant qu'il n'est pas associé à un objet de jeu. Dans la scène de votre jeu, sélectionnez GameObject → Create Empty trois fois :

  1. Edgegap Player Connector : ajoutez le script de connecteur créé par votre assistant.

  2. Server Browser Server Handler : ajoutez le composant Server Browser Server Handler.

  3. Server Browser Client Handler : ajoutez le composant Server Browser Client Handler.

Laissez les champs des gestionnaires vides pour le moment : ils proviennent de l'étape 6.

6. Créez votre navigateur de serveurs

  1. Dans le tableau de bord Edgegap, ouvrez Server Browser et créez-en un, nommé par exemple quickstart, avec la configuration Simple Example.

  2. Démarrez-le et attendez qu'il soit en ligne. Avec le niveau gratuit, il fonctionne pendant 3 heures sur un cluster de test partagé après chaque démarrage, ce qui est suffisant pour les tests.

  3. Ouvrez ses détails et copiez l'API URL, le server token et le client token.

  4. Dans Unity, collez l'URL de l'API et le server token dans le gestionnaire de serveur, ainsi que la même URL de l'API et le client token dans le gestionnaire de client. Échanger les jetons entraîne des erreurs de connexion. Enregistrez la scène.

Le jeton de serveur (server token) a tous les droits sur votre Server Browser, il ne doit donc se trouver que sur le serveur exécuté sur Edgegap, et jamais sur la machine d'un joueur. Le coller dans le composant simplifie ce test ; en production, définissez-le plutôt comme une variable sur la version de votre application, ce qui remplace la valeur de l'inspecteur et l'exclut de votre projet. Le jeton client (client token) permet uniquement de réserver des places et de lire les statuts.

Two setups: with player services, the game client authenticates with your player services, which reserve the seat; without player services, the game client reserves the seat with the Server Browser directly; in both, the game server polls the Server Browser and the client connects to it

En production, de nombreux studios demandent d'abord aux joueurs de se connecter à leurs propres services de joueurs, qui réservent ensuite la place pour eux.

7. Déployez votre serveur avec une stratégie de mise à l'échelle

Votre serveur lit désormais l'URL et le jeton du Server Browser, il nécessite donc une nouvelle version d'application : les builds antérieures ne les ont pas.

  1. Compilez, conteneurisez et téléversez votre serveur avec le plugin d'Edgegap, exactement comme dans votre guide de serveur (ou utilisez Build from source pour exécuter les trois étapes à la fois). Avec votre agent : « Build the Linux server, push it with a new tag and create a new app version with the same port. »

  2. Sur votre Server Browser, créez une politique de mise à l'échelle nommée on-demand : Minimum Active Instances défini sur 1, votre application et la nouvelle version, et Private Hosts vide afin qu'il se déploie sur le cloud d'Edgegap. Enregistrez-la comme active.

  3. En moins d'une minute, la politique déploie votre serveur. Ses journaux indiquent qu'il s'enregistre auprès du Server Browser, qu'il signale être en bon état et qu'il est détectable avec des places libres. Votre salon à la demande est en ligne.

Un minimum d'une instance active maintient un serveur en fonctionnement à tout moment, prêt pour les joueurs. N'oubliez pas qu'il est en cours d'exécution lorsque vous avez terminé vos tests : désactivez la politique pour l'arrêter.

8. Tester avec deux joueurs

  1. Lancez deux joueurs avec le Multiplayer Play Mode de Unity, ou l'Éditeur plus un build.

  2. Appuyez sur Play. Chaque joueur réserve une place, obtient l'adresse du serveur et se connecte, puis le serveur confirme chaque joueur et prend une place.

  3. Les deux joueurs se retrouvent sur le même serveur cloud, les actions de chacun étant répliquées dans la fenêtre de l'autre.

Logs of two players: each reserves a seat on the same Edgegap server, then joins it

Un serveur fraîchement attribué peut être encore en cours de démarrage pendant un court instant, donc pour la production, ajoutez une nouvelle tentative de connexion : deux ou trois essais, espacés de quelques secondes.

Étapes suivantes

Étapes suivantes

Laissez les joueurs choisir. Au-delà de l'attribution automatique, les joueurs peuvent rechercher et parcourir les serveurs par région, places libres, mode de jeu ou toute autre métadonnée signalée par votre serveur, et en choisir un. Les politiques de mise à l'échelle peuvent également maintenir des serveurs de réserve prêts pour les lancements, ou associer des serveurs à une Private Fleet en ajoutant ses identifiants d'hôte.

Vous préférez des règles strictes au choix des joueurs ? Consultez le Unity Matchmaking SDK. Sur Unreal Engine, le Server Browser fonctionne via le kit d'intégration Edgegap de Betide Studios.

Bloqué ? Posez vos questions à notre équipe et à d'autres studios sur le Discord Edgegap.

Questions Fréquemment Posées

Questions fréquentes sur l'ajout du navigateur de serveurs d'Edgegap à un jeu multijoueur Unity.

Qu'est-ce qu'un navigateur de serveurs dans un jeu multijoueur ?

Une liste de serveurs de jeu en direct que les joueurs peuvent rejoindre, avec leurs places libres et leurs paramètres tels que la région ou le mode de jeu. Le Server Browser d'Edgegap est un service hébergé : les serveurs s'enregistrent et indiquent leurs places, les joueurs réservent une place et se connectent, et les politiques de mise à l'échelle démarrent des serveurs selon les besoins.

Dois-je utiliser un navigateur de serveurs ou le matchmaking ?

Utilisez un navigateur de serveurs lorsque les joueurs doivent choisir un serveur ou rejoindre un salon en cours d'exécution, et le matchmaking lorsque vos règles doivent décider qui joue ensemble, comme le niveau de compétence ou l'équilibre des équipes. Edgegap propose les deux, et ils peuvent fonctionner ensemble : le matchmaking démarre les serveurs et le navigateur de serveurs les remplit.

Le navigateur de serveurs d'Edgegap fonctionne-t-il avec Mirror, Netcode for GameObjects et Fish-Networking ?

Oui. Le navigateur de serveurs ne dépend pas de votre netcode. Seules trois parties changent : la connexion à l'adresse et au port attribués, l'envoi de l'identifiant du joueur au serveur, et la libération de la place lorsque le joueur quitte.

Quelle est la différence entre le jeton serveur et le jeton client ?

Le jeton de serveur peut utiliser toutes les méthodes de Server Browser et n'a sa place que dans votre serveur de jeu, idéalement sous la forme d'une variable de version d'application. Le jeton client ne fait que réserver des places et lire le statut, pour les clients de jeu ou vos services de joueurs. Aucun des deux n'est votre jeton d'API Edgegap.

Combien coûte le Server Browser d'Edgegap ?

Les tests sont gratuits, sur un cluster partagé qui fonctionne pendant 3 heures après chaque démarrage. Les serveurs déployés par votre politique de mise à l'échelle sont facturés par vCPU et par minute lorsqu'ils sont en cours d'exécution ; ainsi, un minimum d'une instance active signifie qu'un serveur fonctionne en permanence.

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.