Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Photon Fusion 2

/

Photon Fusion 2

Déployer sur Edgegap

Publié

Publié

Publié

Photon Fusion 2 : Comment intégrer et héberger des serveurs dédiés pour votre jeu multijoueur

Photon Fusion 2 : Comment intégrer et héberger des serveurs dédiés pour votre jeu multijoueur

Ce guide vous montre comment héberger un jeu conçu avec Photon Fusion 2 sur les serveurs de jeu dédiés d'Edgegap. Le serveur fonctionne en mode headless dans GameMode.Server, aucun joueur n'héberge donc la partie.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie à la demande à partir d'un simple appel API, vers le meilleur emplacement disponible pour ses joueurs parmi plus de 615 emplacements Edge Cloud (en savoir plus), facturé exclusivement à l'utilisation : aucun serveur complet à louer, à provisionner ou à maintenir actif entre les parties. Pour les serveurs persistants à capacité réservée, Edgegap propose des Private Fleets.

Votre configuration Photon ne change pas : les joueurs recherchent et rejoignent toujours les parties via Photon Cloud, avec votre propre App ID. Edgegap exécute uniquement le serveur.

La documentation de Fusion 2 de Photon liste Edgegap comme fournisseur d'hébergement de sessions de jeu (page des serveurs dédiés de Photon). Un abonnement Photon Public Cloud suffit pour exécuter un jeu en mode Serveur avec un serveur de jeu dédié.

Ce guide aborde :

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

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

  3. La préparation de votre jeu Fusion pour les serveurs dédiés

  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. La façon dont les joueurs trouvent le serveur

  7. Le test avec deux joueurs

Vous pouvez procéder de deux manières différentes, et même les combiner :

  • Avec un agent de code. 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, puis le déploie. Vous gérez les clics dans Unity, les tableaux de bord de Photon et d'Edgegap, ainsi que 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 de serveur de jeu automatisé pour Unity d'Edgegap est facultatif. Il compile votre serveur, le conteneurise et le déploie sur le cloud à partir 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).

Ici, nous utilisons la version d'Edgegap de l'échantillon Asteroids Simple (Host) de Photon, déjà configuré pour fonctionner comme serveur dédié. Tout projet Fusion 2 fonctionne de la même manière. Pour les jeux de plus grande envergure, consultez les échantillons BR200 et Simple FPS dans les Prochaines étapes.

Échantillon : Unity 6.0 LTS (le projet est sauvegardé avec 6000.0.41f1), Fusion 2.0.6, serveur sous Linux, clients dans l'Éditeur Unity. Le code d'échantillon de Photon reste soumis aux conditions de licence de Photon.

Photon Fusion 2

x

Edgegap

Entièrement approuvé par

Entièrement approuvé par

Fusion 2 de Photon

Fusion 2 de Photon

La documentation de Fusion 2 de Photon mentionne Edgegap comme fournisseur d'hébergement de sessions de jeu pour serveurs dédiés, avec cet exemple Asteroids.

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.

  • Un compte Photon et votre propre ID d'application Fusion 2. Dans le tableau de bord Photon, créez une application (Multiplayer Game, Fusion SDK, Fusion 2) et copiez son ID d'application. Chaque développeur a besoin du sien.

  • Unity Engine 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.

  • Asteroids : utilisez Unity 6.0 LTS, la version avec laquelle l'exemple est enregistré (6000.0.41f1). Lorsque vous ajoutez le projet dans Unity Hub, installez cette version ou un correctif 6000.0 ultérieur. Les versions plus récentes d'Unity n'ont pas été testées avec cet exemple. Votre propre projet Fusion peut utiliser n'importe quelle version LTS : la compétence Fusion d'Edgegap a été testée avec Unity 6.3 LTS.

  • Un outil de conteneurisation en cours d'exécution. Nous recommandons Docker Desktop, installé et en cours d'exécution pendant la compilation.

  • D'autres outils de conteneurisation 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'ensemble de l'organisation, traitez-le donc comme un mot de passe : ne l'intégrez jamais dans votre projet, votre client de jeu ou un chat.

Git : Unity nécessite un client Git (2.14.0 ou plus récent) sur votre PATH pour installer des paquets à partir d'une URL Git, comme le plug-in Edgegap. macOS en possède généralement déjà un (Xcode Command Line Tools) ; sous Windows, installez Git.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous effectuez 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 de l'agent lui confèrent le flux de travail Fusion testé (la compétence edgegap-fusion), le Dockerfile et les pièges connus.

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/edgegap-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 les 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 demandera le jeton 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 serveur Fusion pour l'hébergement dédié

Sur Edgegap, aucun joueur n'héberge la partie. Un serveur Fusion headless gère le jeu : il démarre de manière autonome en GameMode.Server, enregistre une session auprès de Photon Cloud, et les clients rejoignent cette session par son nom. Trois éléments doivent correspondre entre le serveur et les clients, sinon les clients reçoivent l'erreur « Game Does Not Exist » : l'App ID, l'App Version et la région Photon.

Asteroids : La version d'Edgegap est déjà prête pour un serveur dédié. Ouvrez-la dans Unity Hub (Add → Add project from disk), puis :

  1. Ouvrez Tools → Fusion → Realtime Settings et collez votre propre App ID dans App Id Fusion. Enregistrez le projet (File → Save Project) pour que la modification soit conservée.

  2. Vérifiez Tools → Fusion → Network Project Config : le Peer Mode doit être sur Single. C'est déjà le cas dans l'exemple.

  3. Vérifiez File → Build Profiles (Build Settings) : les deux scènes de Assets/Asteroids-Host-Simple/Scenes sont activées, AsteroidsSimple-Menu en premier.

Ce que l'exemple ajoute, c'est un script, Assets/EdgegapHelpers/EdgegapServerManager.cs, sur un GameObject dans la scène Menu. Dans un build serveur, il lit les variables d'environnement d'Edgegap, nomme la session d'après le déploiement ({request_id}.pr.edgegap.net), lie 0.0.0.0:7777, fournit à Fusion l'adresse IP publique et le port externe du déploiement, et lance la scène de jeu. Le bouton Start Edgegap du menu rejoint cette session en tant que client.

Votre propre jeu Fusion, avec votre agent. Le fork sert de référence fonctionnelle : votre agent de codage part de fichiers qui ont déjà tourné sur Edgegap, s'appuyant ainsi sur une configuration testée plutôt que de faire des suppositions.

« Charge la compétence edgegap-fusion et rends ce projet Photon Fusion 2 compatible avec un serveur dédié, en utilisant https://github.com/edgegap/netcode-game-sample-photon-fusion2-asteroid comme référence : le build serveur lance un NetworkRunner en GameMode.Server en mode batch, lie 0.0.0.0 sur le port 7777, nomme la session d'après le déploiement Edgegap et utilise une région Photon que les clients utiliseront. Les clients rejoignent cette session par son nom. Lorsque la partie se termine, le serveur arrête le runner et se ferme. Vérifie ensuite que cela fonctionne toujours localement avec un serveur et deux clients. »

Manuellement, dans votre projet :

  • Démarrez le serveur en mode batch avec GameMode.Server, et Address = NetAddress.Any(7777). Ne liez pas l'adresse IP publique du déploiement : le conteneur ne la possède pas, et le serveur échouera à démarrer.

  • Nommez la session d'après le déploiement : {ARBITRIUM_REQUEST_ID}.pr.edgegap.net.

  • Conservez Peer Mode sur Single dans la Network Project Config.

  • Compilez le serveur avec la plateforme Dedicated Server (la sous-cible Server), afin qu'il s'exécute en mode headless.

  • Lorsque la partie se termine, arrêtez le runner et quittez l'application, afin que le déploiement s'interrompe et que la facturation cesse.

  • N'affichez jamais l'environnement au démarrage : il contient le jeton de suppression du déploiement.

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.

Option A (facultative) : le plugin de l'outil de build de serveur de jeu automatisé d'Edgegap pour Unity. Le moyen le plus rapide d'effectuer un premier déploiement dans le cloud, entièrement à partir de boutons. Il utilise Docker pour conteneuriser votre serveur. L'exemple Asteroids l'inclut déjà.

  1. Pour votre propre projet : sélectionnez Window → Package Manager, sélectionnez +, puis Install package from git URL, et collez https://github.com/edgegap/edgegap-unity-plugin.git.

  2. Ouvrez Tools → Edgegap Server Hosting. Sous 1. Connect your Edgegap Account, sélectionnez Sign in with Edgegap (ou Get token), collez votre jeton et sélectionnez Validate token.

  3. Sous 2. Build Your Game Server, sélectionnez Build server.

  4. Avec Docker en cours d'exécution, sous 3. Containerize Your Server, sélectionnez Containerize with Docker. Facultativement, sous 4. Test Your Server Locally, sélectionnez Deploy local container.

  5. Sous 5. Upload to Edgegap, sélectionnez Upload image and Create app version. Dans le navigateur, définissez le port sur 7777, UDP, nommé gameport. Soumettez.

Le Dockerfile par défaut du plugin affiche l'environnement du conteneur au démarrage. C'est acceptable pour un test ; avant la mise en production, utilisez le Dockerfile de la compétence edgegap-fusion ou le vôtre.

Option B : demandez à votre agent.

« Construis le serveur dédié Linux, conteneurise-le pour linux/amd64 avec un Dockerfile qui n'affiche pas l'environnement, pousse-le vers mon registre de conteneurs Edgegap avec un nouveau tag, puis crée l'application et la version de l'application avec le port 7777 UDP 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 provenant de la page Container Registry, afin que ces identifiants restent hors du 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.

5. Déployez un serveur de test et connectez-vous

Démarrez un serveur manuellement pour vérifier que l'image, le port et vos paramètres Photon fonctionnent. L'une de ces méthodes convient :

  • Depuis le plugin : sous 6. Deploy a Server on Edgegap, 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'URL de l'hôte. »

Lorsque le déploiement est Ready, copiez son Host URL ({request_id}.pr.edgegap.net). Avec Fusion, il s'agit du nom de la session, pas d'une adresse : Photon connecte le client au serveur.

Asteroids : ouvrez la scène AsteroidsSimple-Menu, appuyez sur Play, collez l'Host URL dans Room Name, puis sélectionnez Start Edgegap. Le serveur peut prendre jusqu'à une minute après l'état Ready pour enregistrer sa session.

Si le client indique « Game Does Not Exist (32758) » alors que le serveur fonctionne, le client se trouve sur une autre région Photon. Ouvrez Tools → Fusion → Realtime Settings et définissez Fixed Region sur la région Photon la plus proche de l'emplacement du déploiement (par exemple us pour Newark, cae pour Montréal ou Toronto, eu pour Amsterdam ; voir la liste des régions de Photon). Enregistrez le projet, puis réessayez.

Arrêtez le déploiement lorsque vous avez terminé : Stop last deployment dans le plugin, sur la page du déploiement dans le tableau de bord, ou demandez à votre agent. Le serveur Asteroids ne s'arrête pas automatiquement lorsqu'une partie se termine, et l'offre gratuite n'exécute qu'un seul déploiement à la fois.

6. Comment les joueurs trouvent le serveur

Avec Fusion, le matchmaking reste sur Photon Cloud. Chaque déploiement Edgegap correspond à un serveur Fusion et à une session, nommée d'après le déploiement. Un client ayant les mêmes App ID, App Version et région la rejoint grâce à ce nom.

Votre jeu a donc besoin d'un mécanisme qui lance un déploiement pour un match et transmet son nom de session aux joueurs :

  • Pour les tests : copiez l'URL de l'hôte depuis le tableau de bord, comme à l'étape 5.

  • Pour un jeu en ligne : votre backend appelle l'API Edgegap pour déployer à proximité des joueurs, puis envoie le nom de session à leurs clients. Le matchmaker d'Edgegap peut également s'en charger : son attribution de match renvoie le nom d'hôte du déploiement, qui correspond au nom de la session. Le matchmaker d'Edgegap n'a pas encore été testé avec Fusion.

7. Tester avec deux joueurs

  1. Assurez-vous qu'aucun autre déploiement de test n'est encore en cours d'exécution, puis déployez un serveur (étape 5).

  2. Lancez deux clients. L'exemple Asteroids inclut ParrelSync : sélectionnez ParrelSync → Clones Manager, Create new clone, puis Open in New Editor. Le mode Multiplayer Play Mode de Unity fonctionne également.

  3. Dans les deux cas, saisissez la même URL d'hôte dans Room Name et sélectionnez Start Edgegap. Les deux vaisseaux apparaissent dans la même partie.

  4. Jouez jusqu'à ce qu'il ne reste qu'un seul joueur. Les deux clients retournent au menu.

  5. Arrêtez le déploiement (Stop last deployment dans le plugin, ou demandez à votre agent). Dans votre propre jeu, faites plutôt en sorte que le serveur se ferme à la fin de la partie, afin de ne payer que pendant que les joueurs jouent.

Avec le forfait gratuit, 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 travaillez avec un autre netcode Unity ? Consultez Moteur Unity.

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 Photon Fusion 2 sur les serveurs dédiés d'Edgegap.

Photon Fusion 2 prend-il en charge les serveurs dédiés ?

Oui. Démarrez un NetworkRunner dans GameMode.Server à partir d'un build Linux headless. Le serveur dispose de l'autorité sur l'état et n'a aucun joueur. La documentation de Fusion 2 de Photon répertorie Edgegap comme fournisseur d'hébergement de sessions de jeu.

Ai-je besoin de Photon Cloud avec un serveur dédié sur Edgegap ?

Oui. Le serveur enregistre sa session auprès de Photon Cloud et les clients la rejoignent par son nom, ils ont donc tous deux besoin du même App ID, de la même App Version et de la même région. Photon indique qu'un abonnement Public Cloud est suffisant pour le Server Mode.

Quel port un serveur Fusion utilise-t-il sur Edgegap ?

L'exemple lie le port 7777 via UDP. Définissez le même port sur la version de votre application Edgegap, nommé gameport. Liez 0.0.0.0, jamais l'adresse IP publique du déploiement.

Pourquoi les clients reçoivent-ils le message « La partie n'existe pas » alors que le serveur fonctionne ?

Le client et le serveur utilisent des régions Photon, des App ID ou des App Version différents. Définissez la Fixed Region du client sur la région Photon la plus proche du déploiement, et vérifiez que les deux utilisent le même App ID et la même App Version.

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

Les tests sur Edgegap sont gratuits, sans carte de crédit requise. 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 partie ne coûte rien entre les parties. Photon facture son propre forfait séparément.

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

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,0261 $

/ 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,0261 $

/ 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 tarifs d'Edgegap : comparaison détaillée entre Edge Cloud et Private Fleets

Fonctionnalités et tarifs d'Edgegap : 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.