Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

Nakama

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

Nakama : Comment lancer des serveurs dédiés Edgegap depuis votre système de matchmaking Nakama

Nakama : Comment lancer des serveurs dédiés Edgegap depuis votre système de matchmaking Nakama

Ce guide vous montre comment conserver Nakama de Heroic Labs pour vos comptes, vos fonctionnalités sociales et le matchmaking, et démarrer un serveur de jeu dédié Edgegap pour chaque partie : lorsque le matchmaker de Nakama regroupe des joueurs, Nakama déploie un serveur à proximité d'eux et envoie son adresse à chaque joueur.

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 en fonctionnement entre les parties. Pour les serveurs persistants à capacité réservée, Edgegap propose les Private Fleets.

Nakama et Edgegap se connectent via le plugin Nakama Fleet Manager d'Edgegap, une intégration vérifiée et co-maintenue avec Heroic Labs. Il s'exécute au sein de votre serveur Nakama, de sorte que votre jeton d'API Edgegap reste sur votre backend et n'atteint jamais un client de jeu.

Ce guide aborde les points suivants :

  1. Préparer une version fonctionnelle de l'application Edgegap et un serveur Nakama

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

  3. Ajouter l'Edgegap Fleet Manager à Nakama

  4. Le configurer

  5. Signaler l'état du serveur de jeu à Nakama

  6. Démarrer un serveur lorsque le matchmaker de Nakama trouve une partie

  7. Tester 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 Edgegap et à ses agent skills. L'agent rédige le module Nakama ainsi que les appels du serveur de jeu, et vérifie la version de votre application et vos déploiements. Vous gérez vos tableaux de bord Nakama et Edgegap, les secrets et les tests de jeu.

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

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. Nakama déploie cette version pour chaque match, il a donc besoin d'un serveur de jeu conteneurisé et fonctionnel pour fonctionner de bout en bout. Si vous n'en avez pas encore, utilisez nos guides : Unity Engine, Unreal Engine, Godot Engine ou Custom Engine. Notez le nom de son application, le nom de sa version et le nom de son port (généralement gameport).

  • Un serveur Nakama auquel vous pouvez ajouter un module d'exécution Go : auto-hébergé avec Docker, ou sur Heroic Cloud.

  • Un jeton d'API Edgegap, depuis Tableau de bord → Paramètres utilisateur → Jetons. Il s'intègre uniquement dans la configuration de votre serveur Nakama. Il s'applique à l'ensemble de l'organisation, donc ne le mettez jamais dans votre client de jeu, votre serveur de jeu, vos fichiers de projet 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 vérifier vos applications et versions, de déployer des serveurs de test et de consulter leurs journaux sur votre compte. La compétence d'agent edgegap-deployments-api lui fournit les règles testées pour les backends qui démarrent des serveurs Edgegap, Nakama inclus.

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

Installez ensuite 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, puis 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 et leurs versions, avec les ports de chaque version. »

3. Ajouter Edgegap Fleet Manager à Nakama

Le plugin implémente le Fleet Manager de Nakama : Nakama lui demande un serveur, et il en déploie un sur Edgegap tout en assurant son suivi dans le stockage de Nakama.

Nakama auto-hébergé : ajoutez le paquet Go à votre module runtime avec go get github.com/edgegap/nakama-edgegap, puis enregistrez-le dans le InitModule de votre module :

  • fleetmanager.NewEdgegapFleetManager(ctx, logger, db, nk, initializer), puis initializer.RegisterFleetManager(efm).

  • initializer.RegisterAfterAuthenticateCustom(fleetmanager.OnAuthenticateUpdateCustom) : stocke l'adresse IP publique de chaque joueur lors de sa connexion, afin qu'Edgegap puisse positionner le serveur à proximité de l'ensemble du groupe.

  • initializer.RegisterMatchmakerMatched(...) : votre rappel (callback) pour l'étape 6.

Pour un test local, le dépôt inclut un docker-compose.yml et un Dockerfile : docker compose up --build -d.

Heroic Cloud : créez un Builder à partir du dépôt nakama-edgegap (ou de votre fork contenant le code de votre propre module).

Avec votre agent :

« Charge la compétence edgegap-deployments-api. Ajoute github.com/edgegap/nakama-edgegap à mon module Go Nakama : enregistre le Fleet Manager d'Edgegap, le hook after-authenticate qui stocke les adresses IP des joueurs, ainsi qu'un rappel matchmaker-matched qui crée une instance Edgegap pour les utilisateurs appariés et les notifie. Lis chaque paramètre à partir des variables d'environnement. »

4. Configurer le gestionnaire de flotte

Définissez ces variables d'environnement sur votre serveur Nakama (sur Heroic Cloud, dans la configuration de votre instance) :

  • EDGEGAP_API_URL : https://api.edgegap.com

  • EDGEGAP_API_TOKEN : votre jeton d'API, y compris son préfixe token. Conservez-le dans votre gestionnaire de secrets.

  • EDGEGAP_APPLICATION : le nom de votre application Edgegap.

  • INITIAL_EDGEGAP_VERSION : la version de l'application à déployer, utilisée jusqu'à ce que vous en définissiez une autre.

  • EDGEGAP_PORT_NAME : le port auquel les joueurs se connectent, généralement gameport.

  • NAKAMA_ACCESS_URL : l'adresse publique https:// de votre serveur Nakama, que les serveurs de jeu rappellent.

Facultatif : EDGEGAP_POLLING_INTERVAL (15 minutes par défaut), NAKAMA_CLEANUP_INTERVAL (1 minute) et NAKAMA_RESERVATION_MAX_DURATION (30 secondes). Laissez les deux workers d'arrière-plan actifs en production.

Déployez un nouveau build de serveur sans redémarrer Nakama : appelez le RPC de serveur à serveur update_edgegap_version avec {"version": "..."}, à l'aide de votre clé HTTP Nakama. Il vérifie d'abord que la version existe sur Edgegap. Les clients de jeu ne peuvent pas l'appeler.

5. Signalez l'état du serveur de jeu à Nakama

Nakama suit chaque serveur qu'il démarre : s'il est prêt, qui est connecté et combien de places sont libres. Votre serveur de jeu le lui indique à l'aide de trois variables d'environnement que le plugin injecte dans chaque déploiement :

  • NAKAMA_INSTANCE_EVENT_URL : envoyez READY dès que le serveur accepte des joueurs, ERROR s'il ne peut pas démarrer la partie, et STOP lorsque la partie se termine. Sur STOP, Nakama arrête le déploiement Edgegap.

  • NAKAMA_CONNECTION_EVENT_URL : envoyez la liste complète des identifiants des utilisateurs connectés, regroupés par lots environ toutes les 5 secondes.

  • NAKAMA_INSTANCE_METADATA : les détails du match avec lesquels Nakama a créé le serveur, au format JSON.

Unity : le Plugin Nakama Edgegap Server pour Unity effectue ces appels pour vous. Autres moteurs : trois petits appels HTTP depuis le code de votre serveur.

Avec votre agent :

« Dans mon serveur de jeu, lire NAKAMA_INSTANCE_EVENT_URL, NAKAMA_CONNECTION_EVENT_URL et NAKAMA_INSTANCE_METADATA. Envoyer READY avec l'ID d'instance dès que le serveur est à l'écoute, envoyer les ID d'utilisateurs connectés toutes les 5 secondes, et envoyer STOP lorsque le match se termine. »

6. Démarrer un serveur lorsque Nakama trouve une partie

  1. Les joueurs rejoignent le matchmaker de Nakama depuis votre client de jeu, comme ils le font aujourd'hui (AddMatchmaker dans les SDK clients de Nakama).

  2. Lorsque Nakama les regroupe, votre rappel matchmaker-matched collecte les identifiants des utilisateurs associés et appelle la fonction Create du Fleet Manager avec la taille du match et ces utilisateurs.

  3. Le Fleet Manager déploie la version de votre application à proximité des joueurs et attend le statut READY du serveur.

  4. Chaque joueur reçoit une notification Nakama avec pour objet connection-info : IpAddress, DnsName, Port et InstanceId. Le client se connecte à cette adresse et à ce port. Si le serveur ne peut pas démarrer, les joueurs reçoivent à la place create-timeout ou create-failed : renvoyez-les dans la file d'attente.

Vous souhaitez que les joueurs rejoignent des serveurs déjà en cours d'exécution ? Le plugin propose également des exemples de RPC : instance_list (par exemple, les serveurs ayant au moins une place libre) et instance_join. Utilisez le matchmaker de Nakama pour la production, et ceux-ci pour les tests ou un navigateur de serveurs.

7. Tester avec deux joueurs

  1. Assurez-vous qu'aucun déploiement de test n'est toujours en cours d'exécution : l'offre gratuite n'exécute qu'un seul déploiement à la fois.

  2. Connectez deux clients à Nakama et rejoignez le matchmaker avec les deux.

  3. Dans le tableau de bord Edgegap, un déploiement de votre version apparaît dans un emplacement proche de chez vous.

  4. Les deux clients reçoivent connection-info et se connectent au même serveur.

  5. Terminez la partie : le serveur envoie STOP, Nakama arrête le déploiement et celui-ci disparaît du tableau de bord.

Si les joueurs obtiennent une adresse mais ne peuvent pas se connecter, le problème vient du serveur et non de Nakama : déployez votre version manuellement depuis le tableau de bord et rejoignez-la directement.

Étapes suivantes

Étapes suivantes

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. Pas encore de backend ? Le matchmaker hébergé d'Edgegap n'a besoin d'aucun code pour fonctionner.

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 des parties Nakama sur les serveurs dédiés d'Edgegap.

Nakama peut-il démarrer des serveurs de jeu dédiés ?

Oui. Le Fleet Manager de Nakama lui permet de demander un serveur pour chaque match. Le plugin Nakama d'Edgegap l'implémente : lorsque le matchmaker de Nakama regroupe des joueurs, il déploie un serveur Edgegap à proximité d'eux et envoie l'adresse à chaque joueur.

Le plugin Edgegap Nakama fonctionne-t-il sur Heroic Cloud ?

Oui. Créez un Builder à partir du dépôt nakama-edgegap, ou à partir de votre fork avec votre propre code de module, et définissez les variables d'environnement du plugin sur votre instance. Il fonctionne également sur Nakama auto-hébergé avec Docker.

Où dois-je renseigner mon jeton d'API Edgegap avec Nakama ?

Uniquement dans la configuration de votre serveur Nakama, sous EDGEGAP_API_TOKEN. Les clients de jeu et les serveurs de jeu ne le détiennent jamais : les serveurs de jeu signalent leur état à Nakama via les URL de rappel que le plugin injecte.

Comment les joueurs obtiennent-ils l'adresse du serveur depuis Nakama ?

Lorsque le serveur est prêt, Nakama envoie à chaque joueur mis en correspondance une notification d'informations de connexion contenant l'adresse IP, le nom d'hôte, le port et l'identifiant d'instance du serveur. Le client s'y connecte directement.

Quels moteurs de jeu fonctionnent avec Nakama et Edgegap ?

Tout moteur dont le serveur s'exécute dans un conteneur Linux : Unity, Unreal Engine, Godot ou le vôtre. Le plugin Unity d'Edgegap effectue les appels Nakama côté serveur à votre place ; les autres moteurs effectuent trois petits appels HTTP.

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.