Ce guide vous montre comment conserver PlayFab pour vos comptes de joueurs et vos files d'attente de matchmaking, et lancer un serveur de jeu dédié Edgegap pour chaque partie : lorsque PlayFab trouve une partie, une fonction Azure déploie un serveur à proximité des joueurs, et une seconde 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 API, avec une facturation exclusivement basée 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.
PlayFab regroupe les joueurs ; Edgegap héberge la partie. Les deux fonctions s'exécutent dans votre abonnement Azure en tant que CloudScript utilisant Azure Functions de PlayFab, de sorte que votre jeton d'API Edgegap et votre clé secrète PlayFab y restent : le client de jeu ne conserve que votre identifiant de titre, et le serveur de jeu ne détient aucun secret.
Ce guide aborde :
La préparation d'une version d'application Edgegap fonctionnelle, d'un titre PlayFab et d'un abonnement Azure
La connexion de votre agent de programmation à Edgegap (facultatif)
La configuration d'une file d'attente de matchmaking PlayFab
L'ajout de la fonction Azure qui déploie le serveur
La transmission de l'adresse du serveur aux joueurs
Le matchmaking des joueurs depuis votre client de jeu
Le test 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 compétences d'agent. La compétence
edgegap-playfabfournit les Azure Functions testées, les scripts de configuration et un client Unity, et l'agent vérifie la version de votre application ainsi que vos déploiements. Vous gérez vos tableaux de bord PlayFab, Azure et Edgegap, les secrets, et les sessions de test.Manuellement. Chaque étape ci-dessous fonctionne également sans agent.
Vous souhaitez d'abord le voir fonctionner ? L'exemple SpaceEdge exécute l'ensemble de cette configuration dans un petit jeu de tir spatial Unity.
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 opérationnelle 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, elle nécessite donc un serveur de jeu conteneurisé et fonctionnel pour fonctionner de bout en bout. Si vous n'en avez pas encore, consultez nos guides : Unity Engine, Unreal Engine, Godot Engine ou Custom Engine. Nommez son port de jeu
gameport, et notez les noms de l'application et de la version. Le serveur n'a besoin d'aucun paramètre ni secret PlayFab.Un titre PlayFab avec Matchmaking, ainsi que l'accès à son Game Manager : vous aurez besoin de son Title ID et d'une clé secrète.
Un abonnement Azure et l'Azure CLI, pour les deux Azure Functions. Les tests sont couverts par l'allocation mensuelle gratuite du forfait Flex Consumption.
Un jeton d'API Edgegap, accessible depuis Tableau de bord → Paramètres utilisateur → Jetons. Il se configure uniquement dans les paramètres de votre Function App. Il s'applique à l'ensemble de l'organisation, vous ne devez donc jamais l'inclure dans votre client de jeu, votre serveur de jeu, vos fichiers de projet ou une discussion.
Facultatif : l'exemple PlayFab d'Edgegap, un projet Unity 2021.3 comprenant les deux Azure Functions, ainsi que le code client et serveur ci-dessous.
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-playfab lui fournit la configuration PlayFab testée : les deux Azure Functions, les scripts qui les déploient et créent la file d'attente, un client Unity, ainsi que les correctifs pour les pièges connus de PlayFab.
Claude Code : installez le plugin Edgegap. Il ajoute à la fois le serveur MCP et les compétences, et demande votre jeton d'API lors de l'installation (stocké dans le gestionnaire d'identifiants de votre système) :
/plugin marketplace add edgegap/llm-agent-skills, puis /plugin install edgegap@edgegap. Redémarrez la session.
Vous souhaitez uniquement le serveur MCP, sans le plugin ? Exécutez plutôt ceci dans votre propre terminal : claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user. Ne faites pas les deux, sinon vous aurez deux serveurs edgegap.
Cursor, VS Code et 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/llm-agent-skills --skill "*".
Claude Desktop : les connecteurs personnalisés ne peuvent pas envoyer l'en-tête, utilisez donc le serveur local à la place (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
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 taille de partie de 2 sans règles permet d'associer deux joueurs quelconques.
Désactivez Enable server allocation sur la file d'attente : PlayFab crée uniquement la partie, et Edgegap héberge le serveur.
Si votre jeu connecte les joueurs avec
LoginWithCustomIDou un ID d'appareil, ouvrez Title settings → API Features et décochez Disable player creation using Client/LoginWithCustomId. Les nouveaux titres l'ont cochée, et les connexions échouent avecPlayerCreationDisabled.Dans Title settings → Secret Keys, créez une clé secrète pour les Azure Functions.
Vos règles de partie restent dans PlayFab. Edgegap démarre le serveur uniquement après que PlayFab a trouvé la partie.
Vous déplacez une file d'attente existante hors des serveurs PlayFab Multiplayer ? Les clients que vous avez déjà déployés lisent le serveur à partir de
GetMatch, qui cesse de le renvoyer une fois l'allocation désactivée. Testez sur une copie de la file d'attente et déployez le nouveau client avant de basculer.
4. Ajoutez la fonction Azure qui déploie le serveur
L'application de fonction (Function App). Créez un groupe de ressources, un compte de stockage et une Function App Flex Consumption sous Node.js 22, dans une région US West (recommandation de PlayFab). Dans ses paramètres, ajoutez PLAYFAB_TITLE_ID, PLAYFAB_SECRET_KEY, EDGEGAP_API_TOKEN (sans le préfixe token), EDGEGAP_APP_NAME, EDGEGAP_APP_VERSION, EDGEGAP_PORT_NAME (facultatif, valeur par défaut : gameport) et EDGEGAP_READY_WEBHOOK_URL (étape 5). Facultatif : FALLBACK_LATITUDE / FALLBACK_LONGITUDE, utilisés lorsque PlayFab ne parvient à localiser aucun joueur.
La fonction. StartEdgegapDeployment :
Lit le
MatchIdet leQueueNameà partir de l'événement de partie trouvée (match-found).Obtient les membres du match, ainsi que l'emplacement de chaque joueur avec
Server/GetPlayerProfile(PlayFab géolocalise leur adresse IP de connexion).Appelle
POST https://api.edgegap.com/v2/deploymentsavec votreapplicationet votreversion, les joueurs sous forme deusers("user_type": "geo_coordinates"), un tag avec l'ID du match (ses 20 premiers caractères),PLAYFAB_MATCH_IDetPLAYFAB_QUEUE_NAMEcommeenvironment_variables, etwebhook_on_ready/webhook_on_errorpointant vers la deuxième fonction.Renvoie une réponse immédiatement, en environ une seconde. Elle n'attend jamais le serveur : l'appel de PlayFab expire après 10 secondes, et un serveur met 5 à 30 secondes pour être prêt.
Edgegap choisit le meilleur emplacement disponible pour l'ensemble du groupe et répond avec un request_id. Enregistrez-le dans les journaux avec l'ID du match.
match_found se déclenche pour chaque file d'attente de votre titre. Pour n'attribuer des serveurs Edgegap qu'à certaines files d'attente, listez-les dans EDGEGAP_QUEUES.
Enregistrez-la et ajoutez la règle. Dans Automation → CloudScript → Functions, enregistrez StartEdgegapDeployment avec son URL et sa clé de fonction. Ensuite, dans Automation → Rules, ajoutez une règle : type d'événement playfab.matchmaking.match_found, action Execute Azure Function, fonction StartEdgegapDeployment.
Avec votre agent :
« Charge la compétence edgegap-playfab. Déploie ses deux Azure Functions sur une nouvelle Function App Flex Consumption dans US West, définis les paramètres de l'application à partir de mon fichier env local sans les afficher, enregistre StartEdgegapDeployment dans mon titre PlayFab et exécute le test de chaîne avant que j'ajoute la règle. »
Gardez les secrets hors de vue : le jeton Edgegap et la clé secrète PlayFab ne doivent résider que dans les paramètres de la Function App. Les clés de fonction sont également des secrets : elles font partie des URL, veillez donc à ne pas commettre ou partager ces URL.
5. Donnez l'adresse du serveur aux joueurs
Lorsque le serveur est prêt, Edgegap appelle la deuxième fonction, EdgegapDeploymentReady, via le webhook ready. C'est Edgegap qui l'appelle, et non PlayFab, ne l'enregistrez donc pas dans PlayFab.
Elle ne fait pas confiance au corps du webhook : elle lit le déploiement depuis l'API Edgegap et vérifie qu'il porte bien le tag de ce match.
Elle lit à nouveau les membres du match depuis PlayFab.
Elle écrit
{"matchId", "status", "host", "port"}dans les données en lecture seule de chaque joueur, sous la cléEdgegapServer. Les clients peuvent le lire mais ne peuvent pas le modifier.Si le serveur a échoué, elle écrit
status: "error", afin que les clients cessent d'attendre.
Le serveur de jeu doit uniquement écouter sur son port et s'arrêter lui-même lorsque le match est terminé : il appelle l'ARBITRIUM_DELETE_URL qu'Edgegap attribue à chaque déploiement, avec ARBITRIUM_DELETE_TOKEN. L'exemple s'arrête si personne ne rejoint dans les 120 secondes, ou 30 secondes après le départ du dernier joueur.
Pour la production, transmettez les identifiants de joueur du match au serveur (par exemple en tant que variable d'environnement depuis StartEdgegapDeployment) et rejetez les joueurs qui ne font pas partie du match.
6. Associez des joueurs depuis votre client de jeu
Le client connecte le joueur à PlayFab (l'exemple utilise
LoginWithCustomID; utilisez la connexion de votre jeu). Il ne contient que l'identifiant de votre titre.Il crée un ticket de matchmaking dans votre file d'attente (
CreateMatchmakingTicket) et le vérifie avecGetMatchmakingTickettoutes les 6 secondes jusqu'à ce que le statut soitMatched. PlayFab autorise 10 vérifications par minute et par ticket.Il lit ensuite
EdgegapServeravecGetUserReadOnlyDatatoutes les 2 à 3 secondes, et ignore toute valeur dont lematchIdne correspond pas à ce match.Il se connecte à
host:port. En cas destatus: "error", il affiche une erreur et permet au joueur de se remettre dans la file d'attente.
Le client Unity de l'exemple effectue cela uniquement avec UnityWebRequest et JsonUtility, sans aucun SDK PlayFab. Si votre jeu utilise déjà le SDK, effectuez les mêmes appels par son intermédiaire.
7. Tester avec deux joueurs
Assurez-vous qu'aucun déploiement de test n'est encore en cours d'exécution : le niveau gratuit n'exécute qu'un seul déploiement à la fois.
Connectez deux clients en tant que deux joueurs PlayFab différents et lancez le matchmaking sur les deux. Sur une seule machine, attribuez à chacun son propre identifiant de joueur : l'exemple prend
-playfabCustomId player-aet-playfabCustomId player-b.Lorsque PlayFab les associe, la règle exécute
StartEdgegapDeployment. Dans le tableau de bord Edgegap, un déploiement apparaît avec une balise contenant le début de l'ID de match, dans un emplacement proche de vous.Les deux clients lisent l'adresse à partir de leurs données en lecture seule et se connectent au même serveur.
Quittez les deux clients : le serveur s'arrête de lui-même et disparaît du tableau de bord.
Match trouvé, mais pas d'adresse ? Vérifiez les journaux de la Function App (Application Insights ou l'onglet Monitor de chaque fonction) et assurez-vous que le type d'événement de la règle est exactement playfab.matchmaking.match_found. Une erreur 401 d'Edgegap signifie que le jeton est incorrect ou contient toujours son préfixe token. Un déploiement démarre mais personne ne se connecte ? Le problème vient du serveur : déployez votre version manuellement et rejoignez-la directement.
Vous passez en production ? Demandez à votre agent d'exécuter la liste de vérification de la compétence edgegap-launch : déploiements de versions, politique de redémarrage, durée maximale, contrôle des coûts. Vous préférez un matchmaker hébergé sans scripts ? Consultez 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 d'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, puis désactivez l'allocation de serveur. Lorsque PlayFab trouve une partie, une fonction Azure déclenchée par l'événement de partie trouvée déploie un serveur Edgegap à proximité des joueurs, et une seconde fonction écrit son adresse dans les données en lecture seule 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 la fonction Azure lit depuis leur profil PlayFab et envoie sous forme de coordonnées. Edgegap choisit le meilleur emplacement disponible pour l'ensemble du groupe.
Où dois-je renseigner mon jeton d'API Edgegap avec PlayFab ?
Uniquement dans les paramètres de votre Azure Function App, avec votre clé secrète PlayFab. Les clients de jeu ne détiennent que l'ID de titre, et les serveurs de jeu ne détiennent aucun secret.
Comment les joueurs obtiennent-ils l'adresse du serveur auprès de PlayFab ?
Lorsque le serveur est prêt, Edgegap appelle une fonction webhook qui vérifie le déploiement et écrit son hôte et son port dans les données en lecture seule de chaque joueur correspondant. Chaque client les lit et se connecte.
Puis-je utiliser l'ancien CloudScript au lieu d'Azure Functions ?
La même règle et le même événement régissent les deux, mais Microsoft qualifie JavaScript CloudScript d'« hérité » (Legacy) et oriente les nouveaux travaux vers CloudScript à l'aide d'Azure Functions. Azure Functions permet également à l'appel de déploiement de répondre immédiatement et de recevoir le webhook de disponibilité d'Edgegap.

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.

Un lancement mondial impeccable pour Rivals of Aether 2
Aether Studios
Découvrez comment Aether Studios a rapidement ajouté Edgegap et a offert un lancement et un post-lancement sans faille à sa communauté.
Étude de cas

Surmontez la latence introduite par l'utilisation de WiFi par la réalité virtuelle dans les jeux multijoueurs compétitifs.
Halfbrick Studios
Découvrez comment Halfbrick a réussi à lancer et à maintenir un accès anticipé axé sur le multijoueur sur la plateforme VR META Quest.
Étude de cas

L'application sociale de MENA ajoute des jeux en ligne
WOLF
Découvrez comment l'application sociale très populaire de la région MENA a facilement ajouté des jeux de matchmaking et d'orchestration multijoueur à WOLF Qanawat.
Étude de cas

L'orchestration hybride maintient Kickoff Tactics prêt pour tout type de trafic
Birch Games
Comment l'orchestration hybride d'Edgegap pour gérer tant le le trafic prévisible et imprévisible, grâce aux flottes "egress-free" et le cloud.
Étude de cas

Lunes de sang de 7 jours
The Fun Pimps & iLLOGIKA
Découvrez comment Illogika a considérablement réduit ses coûts de serveur et garanti l'expérience en ligne attendue par la franchise 7 Days to Die.
Étude de cas

La guerre en ligne authentique nécessite l'orchestration ultime
Highwire Games
Découvrez comment le besoin de performance de Highwire nécessite une orchestration que seul Edgegap peut fournir.
Étude de cas

22 000 avis, 4,8 étoiles et une infrastructure qui s'est adaptée automatiquement
Sinn Studios
Comment une intégration simple, prise en charge par Slack, a permis au titre VR à succès de Sinn Studio d'être mis en ligne rapidement et de s'y maintenir.
Étude de cas

Orchestration de Serveurs Dynamiques
Under NDA - AAA Studio
Découvrez comment l'un des plus grands studios AAA du monde a amélioré son expérience multijoueur pair à pair grâce à l'informatique en périphérie.
Étude de cas

Latence presque nulle pour un jeu de combat AAA
AAA Studio - Under NDA
Comment un projet non annoncé a permis d'obtenir le délai d'attente le plus bas possible et d'améliorer l'équité dans son jeu 1v1.
Étude de cas

Jouez aux dieux avec la physique multiplayer
Squido Studio
Découvrez comment Squido utilise les serveurs de jeu optimisés par Edgegap pour offrir un gameplay VR époustouflant et chaotique.
Étude de cas

Des solutions entièrement gérées qui font gagner du temps à un jeu VR
Dirty Pearl Studios
Découvrez comment Dirty Pearl Studios a gagné du temps de développement grâce à l'intégration facile d'Edgegap et à l'orchestration automatisée de son intégration avec Nakama.
Étude de cas

Déploiement instantané de serveurs globaux pour l'éducation médicale en XR
AlensiaXR
Comment AlensiaXR utilise Edgegap pour offrir des sessions d'anatomie partagées à faible latence et toujours disponibles aux étudiants en médecine du monde entier.
Étude de cas

The Lightkeepers : un jeu coopératif social en VR avec des serveurs dédiés
Spectral Games
Comment Spectral Games a utilisé Edgegap Matchmaking et Server Browser pour lancer des serveurs dédiés pour son salon social VR, sans aucune expérience préalable des serveurs.
Étude de cas

Déploiements rapides & fiables dans le monde pour le PvPvE Gravebound
Crater Studios
Comment l'orchestration et le matchmaking d'Edgegap ont aidé Crater Studios à se concentrer sur le gameplay plutôt que sur l'infrastructure.
Étude de cas

Échelle rapide du métavers web
Hiber
Découvrez comment Hiber a éliminé les incertitudes de sa planification de capacité serveur avec Edgegap.
Étude de cas

Exigences matérielles élevées et pools de serveurs de jeux personnalisés
Alderon Games
Découvrez comment Alderon Games utilise instantanément une pool personnalisée de serveurs de jeux à travers plusieurs fournisseurs dans le monde pour son MMO populaire.
Étude de cas

Intégration facile pour les développeurs indépendants
WhaleFood Games
Découvrez comment WhaleFood Games a "chassé" ses problèmes de netcode avec Edgegap.
Étude de cas

Une technologie qui propulse le premier jeu eSports de l'Asie du Sud-Est.
Anantarupa Studios
Découvrez comment Edgegap a transformé le paysage du jeu en Asie du Sud-Est en démocratisant des infrastructures complexes avec sa solution.
Étude de cas

Une frappe. Portée mondiale.
Triple Hill Interactive
Comment Triple Hill Interactive tire parti de l'orchestration d'Edgegap pour offrir une faible latence et améliorer l'équité dans un genre où chaque milliseconde compte.
Étude de cas

Un Battle Royale en équipe au rythme effréné... avec des peluches d'animaux armées jusqu'aux dents !
SANDYFLOOR
Découvrez comment un studio indépendant basé en Corée a lancé son jeu multijoueur dans le monde entier.
Étude de cas

Les courses de chevaux sur mobile disponible mondialement grâce à Edgegap.
Mirai Labs
Comment Mirai Labs propulse les courses multijoueurs mondiales de Pegaxy Blaze grâce au déploiement de serveurs juste-à-temps et au vCPU fractionné pour maintenir un coût bas.
Étude de cas

Gestion et distribution des serveurs
Matrioshka Games
Lisez comment Matrioshka Games a réussi à expédier un Battle Royale en accès anticipé avec des ressources limitées.
Étude de cas

À mon signal, déchaînez l'enfer !
TyGames
Découvrez comment le studio indépendant TyGames immerge les joueurs dans un combat multijoueur de gladiateurs à la troisième personne.
Étude de cas

Orchestration Instantanée Mondiale
Soliton Interactive
Découvrez comment Soliton Interactive a réalisé l'impossible… Livrer son premier jeu jouable en mode multijoueur !
Étude de cas

Le jeu de hockey avec une physique côté serveur & une latence sous les 50ms
NS7
Découvrez pourquoi seul Edgegap pourrait permettre à un studio indépendant de réaliser sa vision d'un gameplay sportif F2P de qualité AAA grâce à la physique côté serveur et à l'autorité.
Étude de cas

Déploiements régionaux pour les jeux en ligne
X1 Contra 1
X1 Contra 1 propose des jeux PvP décontractés en temps réel à sa base de joueurs brésilienne grâce à un hébergement économique et à des déploiements régionaux
Étude de cas

Payez uniquement lorsque les joueurs jouent : une infrastructure abordable
Meltdown Interactive
Comment Edgegap a aidé le développeur indépendant Meltdown Interactive Media à résoudre la mise à l’échelle rentable et le matchmaking sans complexité
Étude de cas

Une plateforme Edgegap, trois profils réseau très différents
Warped Games
Comment Warped Games gère un hub social, du coopératif en temps réel et du coopératif au tour par tour, le tout sur la même API de déploiement Edgegap et le même pipeline de conteneurs.
Étude de cas

Pool Live Tour Max
RETA Games
Étude de cas

Le tireur d'extraction POP Web3 de Corée devient mondial, instantanément
NDUS Entertainment
Comment XOCIETY a facilement ajouté l'orchestration Edgegap et intégré un matchmaking personnalisé en travaillant aux côtés des Edgegap Ping Beacons pour optimiser la latence.
Étude de cas

Multijoueur dans chaque dimension
Arcadia.tv
Découvrez comment Arcadia.tv utilise le réseau edge d'Edgegap pour offrir un sport VR innovant basé sur l'équipe et la localisation.
Étude de cas

Un jeu mobile F2P réduit ses coûts d'infrastructure grâce aux serveurs JIT
Game Changers Worldwide
Comment Game Changer Worldwide a hébergé le PvP 3v3 en temps réel de Rumble Rush à l'échelle mondiale sur mobile.
Étude de cas
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.









