Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

PlayFab

PlayFab

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

PlayFab : Comment démarrer des serveurs dédiés Edgegap depuis le Matchmaking de PlayFab

PlayFab : Comment démarrer des serveurs dédiés Edgegap depuis le Matchmaking de PlayFab

Ce guide vous montre comment conserver PlayFab pour vos comptes de joueurs et vos files d'attente de matchmaking, et démarrer un serveur de jeu dédié Edgegap pour chaque partie : lorsque PlayFab trouve un match, un Cloud Script déploie un serveur à proximité des joueurs, et le serveur transmet 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 et facturé exclusivement à 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.

PlayFab regroupe les joueurs ; Edgegap héberge la partie. L'appel qui démarre le serveur s'exécute dans le Cloud Script de PlayFab, du côté de PlayFab, car il nécessite votre jeton d'API Edgegap, qui ne doit jamais être intégré dans un client de jeu.

Ce guide aborde les points suivants :

  1. Préparer une version fonctionnelle de l'application Edgegap et un titre PlayFab

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

  3. Configurer une file d'attente de matchmaking PlayFab

  4. Ajouter le Cloud Script qui déploie le serveur

  5. Transmettre l'adresse du serveur aux joueurs

  6. Mettre en relation les joueurs depuis votre client de jeu

  7. Tester avec deux joueurs

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

  • Avec un agent de codage. Connectez Claude Code, Cursor ou un autre agent au serveur MCP Edgegap et à ses compétences d'agent. L'agent rédige le Cloud Script ainsi que le code client et serveur, et vérifie la version de votre application et vos déploiements. Vous gérez vos tableaux de bord PlayFab 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 fonctionnelle de l'application Edgegap de votre serveur de jeu : un serveur que vous avez déployé et rejoint au moins une fois. PlayFab lance 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 titre PlayFab avec Matchmaking, et l'accès à son Game Manager (ID de titre et une clé secrète de titre).

  • Un jeton d'API Edgegap, depuis Tableau de bord → Paramètres utilisateur → Jetons. Il doit uniquement être placé dans la configuration de votre Cloud Script. 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.

  • Facultatif : l'exemple PlayFab d'Edgegap, un projet Unity (2021.3, FishNet 3) avec le code du client, du serveur et du Cloud Script ci-dessous.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous faites tout manuellement.

Le serveur MCP d'Edgegap permet à votre agent de vérifier vos applications et versions, de déployer des serveurs de test et de lire 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 les serveurs Edgegap, y compris PlayFab Cloud Script.

Claude Code (à exécuter dans votre propre terminal, afin que le jeton ne passe 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, 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 et leurs versions, avec les ports de chaque version. »

3. Configurer une file d'attente de matchmaking PlayFab

  1. Dans le Game Manager de PlayFab, ouvrez Multiplayer → Matchmaking et créez une file d'attente, ou réutilisez la vôtre. Pour un premier test, une règle associant deux joueurs quelconques suffit.

  2. Sous Players, créez deux joueurs de test (par exemple avec des identifiants personnalisés) afin que deux clients puissent se connecter.

Vos règles de match restent dans PlayFab. Edgegap ne démarre le serveur qu'une fois que PlayFab a trouvé le match.

4. Ajoutez le Cloud Script qui déploie le serveur

La fonction. Dans Automation, déployez une révision de Cloud Script avec un gestionnaire (handler), par exemple StartEdgegapDeployment, qui :

  1. Lit le MatchId et le QueueName à partir de l'événement match-found.

  2. Récupère les membres du match avec multiplayer.GetMatch, ainsi que l'emplacement de chaque joueur avec server.GetPlayerProfile (ShowLocations: true).

  3. Appelle POST https://api.edgegap.com/v2/deployments avec l'en-tête Authorization: token <votre jeton API>, et un corps contenant votre application et version, les joueurs en tant que users ("user_type": "geo_coordinates" avec latitude et longitude), une balise avec l'ID du match, ainsi que les détails du match en tant que environment_variables : PLAYFAB_MATCH_ID et PLAYFAB_MATCH_PLAYERS_ID_LIST (les ID des joueurs, séparés par des virgules).

Edgegap sélectionne l'emplacement offrant le meilleur ping pour l'ensemble du groupe et renvoie 202 avec un request_id. Enregistrez-le dans les logs avec l'ID du match.

La règle. Dans Automation → Rules, ajoutez une règle : type d'événement playfab.matchmaking.match_found, action Execute Entity Cloud Script, fonction StartEdgegapDeployment.

Avec votre agent :

« Charge la compétence edgegap-deployments-api et écris un gestionnaire PlayFab Cloud Script, StartEdgegapDeployment, pour l'événement playfab.matchmaking.match_found : récupère les membres du match et leurs emplacements, déploie la version de mon application Edgegap avec POST /v2/deployments en utilisant geo_coordinates, associe-lui l'ID du match en tag, transmets l'ID du match et les ID des joueurs en tant que variables d'environnement, et enregistre le request_id dans les logs. »

Gardez le jeton hors de portée : le Cloud Script s'exécute sur les serveurs de PlayFab, pas dans le jeu, de sorte que le jeton n'atteint jamais les joueurs. Stockez-le dans la configuration interne de votre titre plutôt que dans le code source du script, et jamais dans le code client.

5. Donnez l'adresse du serveur aux joueurs

Le serveur indique à chaque joueur où se connecter, par le biais des données de joueur PlayFab (Player Data) :

  1. Au démarrage, le serveur lit ARBITRIUM_PUBLIC_IP et ARBITRIUM_PORT_GAMEPORT_EXTERNAL (injectés par Edgegap) ainsi que PLAYFAB_MATCH_PLAYERS_ID_LIST.

  2. Pour chaque joueur, il écrit ip:port dans les Player Data de ce joueur à l'aide de Server/UpdateUserData de PlayFab, en utilisant l'ID de match comme clé.

  3. Lorsque le match se termine, le serveur arrête son propre déploiement : il appelle l'ARBITRIUM_DELETE_URL qu'Edgegap attribue à chaque déploiement, avec ARBITRIUM_DELETE_TOKEN.

Server/UpdateUserData nécessite votre clé secrète de titre PlayFab. Si votre serveur la détient, transmettez-la en tant que variable d'environnement masquée sur la version de l'application (is_hidden: true), jamais dans l'image, et ne la consignez jamais dans les journaux. Pour la version finale, une option plus restreinte consiste en une fonction PlayFab que le serveur appelle pour écrire l'adresse à sa place.

6. Associez des joueurs depuis votre client de jeu

  1. Le client connecte le joueur à PlayFab (l'exemple utilise LoginWithCustomID ; utilisez la connexion de votre jeu).

  2. Il crée un ticket de matchmaking dans votre file d'attente (CreateMatchmakingTicket, par exemple avec GiveUpAfterSeconds réglé sur 90) et le vérifie avec GetMatchmakingTicket jusqu'à ce que le statut soit Matched.

  3. Il lit ensuite ses Données de joueur (GetUserData) pour obtenir la clé d'ID de match toutes les quelques secondes, jusqu'à ce que le serveur ait inscrit son adresse.

  4. Il se connecte à cette adresse IP et à ce port. Le serveur peut prendre jusqu'à une minute après son démarrage pour accepter des joueurs, réessayez donc la connexion pendant un certain temps.

  5. Une fois connecté, il supprime la clé de ses Données de joueur (UpdateUserData avec KeysToRemove), afin que les anciennes adresses ne s'accumulent pas.

7. Tester avec deux joueurs

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

  2. Connectez deux clients en tant que deux joueurs de test et lancez le matchmaking sur les deux.

  3. Lorsque PlayFab les associe, la règle exécute votre Cloud Script. Dans le tableau de bord Edgegap, un déploiement étiqueté avec l'ID du match apparaît, dans un emplacement près de chez vous.

  4. Les deux clients lisent l'adresse depuis leurs données de joueur (Player Data) et se connectent au même serveur.

  5. Terminez le match : le serveur s'arrête de lui-même et disparaît du tableau de bord.

Rien ne se déploie ? Vérifiez d'abord les journaux du Cloud Script dans PlayFab. Un déploiement démarre mais personne ne se connecte ? Cela vient du serveur : déployez votre version manuellement 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, maîtrise des coûts. Vous préférez un matchmaker hébergé sans scripts ? Découvrez le matchmaker d'Edgegap.

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

Puis-je utiliser PlayFab Matchmaking avec les serveurs Edgegap ?

Oui. Conservez vos files d'attente et vos règles PlayFab. Lorsque PlayFab trouve un match, un Cloud Script déclenché par l'événement de correspondance trouvée déploie un serveur Edgegap à proximité des joueurs, et le serveur écrit son adresse dans les Données de joueur de chaque joueur.

Ai-je encore besoin de PlayFab Multiplayer Servers ?

Non. Edgegap héberge les serveurs dédiés. PlayFab conserve vos comptes, les données des joueurs et le matchmaking, et Edgegap ne démarre un serveur que lorsqu'un match est trouvé, facturé à la minute pendant qu'il fonctionne.

Comment Edgegap choisit-il l'emplacement du serveur pour un match PlayFab ?

À partir de l'emplacement de chaque joueur, que le Cloud Script lit depuis leur profil PlayFab et envoie sous forme de coordonnées. Edgegap choisit l'emplacement offrant le meilleur ping pour l'ensemble du groupe.

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

Uniquement dans la configuration de Cloud Script, qui s'exécute sur les serveurs de PlayFab. Les clients et serveurs de jeu ne la conservent jamais.

Comment les joueurs obtiennent-ils l'adresse du serveur auprès de PlayFab ?

Le serveur de jeu écrit son adresse IP et son port dans les données de joueur PlayFab (Player Data) de chaque joueur sous l'ID du match. Chaque client les lit, se connecte, puis supprime l'entrée.

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.