Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

PurrNet

PurrNet

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

PurrNet : Comment intégrer et héberger des serveurs dédiés, et ajouter le Matchmaking à votre jeu multijoueur

PurrNet : Comment intégrer et héberger des serveurs dédiés, et ajouter le Matchmaking à votre jeu multijoueur

Ce guide vous montre comment héberger un jeu développé avec PurrNet sur les serveurs de jeu dédiés d'Edgegap, puis y ajouter du matchmaking afin que les joueurs soient automatiquement regroupés et connectés à un serveur proche d'eux.

Une fois votre serveur de jeu conteneurisé, Edgegap le déploie à travers le monde dans 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 marche entre les parties. Pour les serveurs persistants avec capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie sur cette base et est optionnel.

Ce guide aborde les points suivants :

  1. Préparer Unity, PurrNet, votre compte Edgegap et un outil de conteneurisation

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

  3. Préparer votre jeu PurrNet pour les serveurs dédiés

  4. Compiler et conteneuriser votre serveur de jeu

  5. Déployer un serveur de test et s'y connecter

  6. Ajouter le matchmaking (optionnel)

  7. Tester la boucle complète avec deux joueurs

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

  • Avec un agent de programmation. 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, le déploie et écrit le code de matchmaking. Vous n'avez plus qu'à effectuer les clics nécessaires dans Unity et sur le tableau de bord d'Edgegap, puis à lancer 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 build automatisé de serveur de jeu pour Unity d'Edgegap est optionnel. PurrNet l'installe pour vous depuis sa propre fenêtre de paquets. Il compile votre serveur, le conteneurise et le déploie sur le cloud grâce à des boutons dans l'Éditeur Unity, ce qui représente le moyen le plus rapide de voir votre serveur en ligne pour la première fois (étape 4, Option A).

Ici, nous utilisons l'exemple Incremental de PurrNet, un petit jeu de collecte de ressources. La compétence d'agent d'Edgegap a été exécutée de bout en bout sur notre fork de celui-ci. Tout projet PurrNet fonctionne de la même manière. Vous utilisez un autre netcode ? Consultez Unity Engine pour découvrir toutes les options disponibles.

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.

  • Le moteur Unity 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.

    • Nous utilisons Unity 6.3 LTS. Les versions plus récentes non-LTS peuvent casser les paquets de netcode, restez donc sur une version LTS pour tout ce que vous déployez.

  • PurrNet dans votre projet, avec une scène qui fonctionne en local avec un hôte et un client. Consultez la documentation de PurrNet.

  • Un outil de conteneurisation en cours d'exécution. Nous recommandons Docker Desktop, installé et actif pendant que vous compilez.

    • D'autres outils de conteneurisation fonctionnent également avec Edgegap, mais ce guide ne couvre que Docker.

  • Pour la méthode via l'agent : un jeton d'API Edgegap, accessible depuis Dashboard → User Settings → Tokens. Il est valable pour toute l'organisation, traitez-le donc comme un mot de passe : ne le placez jamais dans votre projet, dans votre client de jeu ou dans un chat.

Git : Unity nécessite un client Git (2.14.0 ou plus récent) dans votre PATH pour installer des paquets depuis une URL Git, comme l'intégration Edgegap de PurrNet. macOS en dispose généralement déjà (Outils de ligne de commande Xcode) ; sous Windows, installez Git.

2. Connectez votre agent de codage à Edgegap

Ignorez cette étape si vous faites tout manuellement.

Le serveur MCP Edgegap permet à votre agent de créer des applications et des versions, de déployer des serveurs, de lire les journaux et de générer des configurations de matchmaker sur votre compte. Les compétences de l'agent lui fournissent le flux de travail PurrNet éprouvé, des modèles C# prêts pour PurrNet, le Dockerfile et les pièges connus à éviter.

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, 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 demandera le jeton lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

Une liste vide est tout à fait normale. Une erreur concernant le jeton signifie généralement que l'en-tête contient token token ....

3. Préparez votre serveur PurrNet pour un hébergement dédié

Sur Edgegap, aucun joueur n'héberge le match. Un serveur dédié sans tête (headless) possède le jeu, le serveur dédié doit donc démarrer de manière autonome, écouter sur un port fixe et s'arrêter lorsque le match est terminé.

Avec votre agent :

« Charge la compétence edgegap-purrnet et prépare ce projet PurrNet pour un serveur dédié : le build du serveur démarre le serveur en headless sur 0.0.0.0:5000, les clients se connectent à une adresse qu'ils obtiennent au moment de l'exécution, la logique côté serveur ne dépend pas d'un hôte, et le serveur s'arrête de lui-même à la fin du match. Ajoute l'amorce (bootstrap) Edgegap, le cycle de vie du serveur et le client de matchmaking. Vérifie ensuite que cela fonctionne toujours localement avec un serveur et deux clients. »

Les modèles de l'agent s'ajoutent d'eux-mêmes au lancement du jeu, de sorte que vos scènes et prefabs ne changent pas, et l'Éditeur conserve le flux de travail hôte-et-clone de PurrNet.

Manuellement, sur votre NetworkManager et votre code :

  • Drapeaux de démarrage (Start flags). Les Start Server Flags et Start Client Flags de PurrNet démarrent automatiquement un serveur et un client. Conservez le drapeau du serveur pour les builds de serveur, et supprimez le drapeau de build client si les clients se connectent à une adresse qu'ils ne découvrent qu'au moment de l'exécution.

  • Transport UDP : Le port par défaut de PurrNet est 5000/UDP. L'option Auto Setup Edgegap Server Port (les compétences de l'agent peuvent l'appeler Adapt To Edgegap) configure le port du serveur à partir du déploiement Edgegap, ce qui permet à la version de l'application d'utiliser un autre port.

  • [ObserversRpc] qui initialise l'état du serveur : ajoutez runLocally: true. Sans cela, la méthode ne s'exécute jamais sur un serveur dédié, qui ne dispose pas de client local : dans l'exemple Incremental, le serveur n'a fait apparaître aucune ressource.

  • Faites apparaître les joueurs pour chaque client connecté (le PlayerSpawner de PurrNet), et non pour un hôte.

  • Protégez le code réservé aux clients (caméras, interface utilisateur, entrées, audio) pour que le serveur headless l'ignore.

  • Assurez-vous que votre scène PurrNet est activée dans les paramètres de build (Build Settings). Seules les scènes activées sont compilées.

Testez d'abord localement : un build en tant que serveur, deux clients se connectant à 127.0.0.1:5000. Vérifiez que l'univers du serveur existe (objets générés, scores), et pas seulement que les clients se connectent.

4. Construisez et conteneurisez votre serveur

Edgegap exécute le build de votre serveur Linux dans un conteneur. Utilisez l'une ou l'autre des options, ou les deux : par exemple, le plugin pour votre premier déploiement et votre agent pour chaque build suivant.

Option A (facultative) : Le plugin d'outil de build automatisé de serveur de jeu d'Edgegap pour Unity. Le moyen le plus rapide d'effectuer un premier déploiement dans le cloud, entièrement via des boutons. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous présente cette méthode.

  1. Dans Unity, ouvrez Tools → PurrNet → PurrNet Packages. Si une mise à jour s'affiche à côté de Core, sélectionnez Update All. Sous Integrations, sélectionnez Edgegap, puis Install Release. PurrNet installe le plugin d'Edgegap.

  2. Ouvrez Tools → Edgegap Server Hosting, connectez-vous et collez le jeton fourni sous Connect your Edgegap Account. Sélectionnez Validate Token.

  3. Sélectionnez Build Server. Le build est généré dans Builds/EdgegapServer/ServerBuild.

  4. Alors que Docker est en cours d'exécution, sélectionnez Validate, puis Containerize with Docker. Facultativement, faites Deploy Local Container et connectez-y un client.

  5. Sélectionnez Upload Image and Create App Version. Dans le navigateur, définissez le port sur 5000, UDP, nommé gameport. Validez.

Option B : demandez à votre agent.

« Compilez le serveur dédié Linux, conteneurisez-le avec le Dockerfile edgegap-purrnet pour linux/amd64, poussez-le vers mon registre de conteneurs Edgegap avec un nouveau tag, puis créez l'application et la version de l'application avec le port 5000 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 de la discussion. Assurez-vous que les identifiants du registre sont définis pour la version de l'application : sans eux, les déploiements échouent avec l'erreur « Unable to pull image from registry ».

Utilisez un nouveau tag d'image pour chaque build, jamais latest.

Voici notre tutoriel vidéo pour le plugin d'Edgegap avec PurrNet, utilisant l'échantillon incrémentiel de PurrNet :

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

Démarrez un serveur manuellement pour vérifier que l'image, le port et votre netcode fonctionnent avant d'ajouter le matchmaking. N'importe laquelle de ces options convient :

  • Depuis le plugin : choisissez votre application et votre version, puis 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 d'Edgegap près de chez moi, attends qu'elle soit prête, montre-moi les journaux, puis donne-moi l'adresse et le port externe. »

Lorsque le déploiement est Ready, copiez son Host URL et son External Port, puis définissez-les comme adresse et port de votre client sur le transport UDP (ou dans le panneau de connexion de l'agent), puis connectez deux clients. Le port externe change à chaque déploiement, lisez-le donc à chaque fois. Le serveur peut prendre jusqu'à une minute après l'état Ready pour accepter les joueurs.

Arrêtez le déploiement lorsque vous avez terminé (Stop Last Deployment dans le plugin, ou demandez à votre agent). L'offre gratuite n'exécute qu'un seul déploiement à la fois, et un serveur de test oublié bloque le matchmaking.

Ici, vous avez choisi l'emplacement et transmis l'adresse. Pour regrouper les joueurs et démarrer automatiquement un serveur près d'eux, ajoutez un matchmaker.

6. Ajouter le matchmaking

Le matchmaker d'Edgegap est un service hébergé : les joueurs envoient un ticket, il les regroupe selon vos règles (taille du match, équipes, latence, niveau, mode), déploie votre serveur à proximité d'eux et renvoie l'adresse à chaque client.

Avec votre agent :

« Génère une configuration de matchmaker Edgegap pour la version de mon application : une équipe de 2 à 4 joueurs. Enregistre-la sous matchmaker-config.json. »

Ensuite, dans le tableau de bord (cette étape ne dispose pas d'API) :

  1. Ouvrez Matchmaker et sélectionnez Create Matchmaker.

  2. Nommez-le, téléversez matchmaker-config.json, puis sélectionnez Create and Start.

  3. Lorsqu'il est ONLINE, copiez l'API URL et l'Auth Token. L'Auth Token peut être intégré en toute sécurité dans votre client de jeu : il ne donne aucun accès à votre compte Edgegap.

De retour avec votre agent :

« Active le matchmaker Edgegap dans EdgegapSettings avec cette API URL et cet Auth Token, affiche Find Match dans le panneau de connexion (ou relie mon propre bouton Play à FindMatch), puis recompile et pousse le serveur, crée une nouvelle version de l'application et dis-moi ce qu'il faut mettre à jour dans le matchmaker. »

Manuellement : suivez le guide de matchmaking Unity dans notre documentation.

Lorsque vous publiez une nouvelle version du serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les matchs continueront à déployer l'ancienne version.

7. Testez la boucle complète avec deux joueurs

  1. Assurez-vous qu'aucun déploiement de test n'est toujours en cours d'exécution.

  2. Lancez deux builds client (ou l'Éditeur plus un clone ParrelSync).

  3. Sélectionnez Trouver une partie sur les deux. Le statut passe de recherche à partie trouvée puis à connecté, tous deux sur le même serveur. Testez avec deux joueurs : un ticket isolé peut attendre longtemps.

  4. Quittez la partie. Le serveur enregistre qu'il s'arrête, et le déploiement disparaît du tableau de bord. Cet arrêt automatique est ce qui maintient votre facture à zéro lorsque personne ne joue.

Sur l'offre gratuite, le matchmaker s'arrête 3 heures après chaque démarrage (redémarrez-le depuis le tableau de bord), 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 utilisez un autre netcode Unity ? Consultez Unity Engine. Vous préférez les salons que les joueurs peuvent parcourir ? Consultez le Navigateur de serveurs pour Unity.

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. Pour les jeux compétitifs, renforcez les règles réseau de PurrNet afin que le gameplay s'exécute sur le serveur.

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 d'un jeu PurrNet sur les serveurs dédiés d'Edgegap, avec ou sans matchmaking.

PurrNet prend-il en charge les serveurs dédiés ?

Oui. Effectuez une build pour Serveur Dédié Linux et laissez le serveur démarrer de lui-même avec les drapeaux de démarrage du serveur de PurrNet, ou un script. Le code qui dépendait d'un hôte, tel que les méthodes [ObserversRpc] qui configurent l'état du serveur, nécessite runLocally: true pour s'exécuter sur un serveur dédié.

Quel port PurrNet utilise-t-il sur Edgegap ?

Le transport UDP de PurrNet est défini par défaut sur 5000 via UDP. Définissez le même port sur la version de votre application Edgegap, nommé gameport, ou activez l'option Auto Setup Edgegap Server Port (les compétences d'agent peuvent l'appeler Adapt To Edgegap) pour récupérer le port depuis le déploiement. Les joueurs se connectent au port externe qu'Edgegap attribue à chaque déploiement.

Ai-je besoin du plugin Edgegap pour héberger un jeu PurrNet ?

Non. PurrNet l'installe depuis sa fenêtre de paquets, et c'est le moyen le plus rapide de compiler, conteneuriser et déployer depuis l'éditeur Unity. Un agent de codage connecté au serveur MCP d'Edgegap, ou votre propre build Docker, fonctionne également.

Pourquoi mon jeu PurrNet fonctionne-t-il avec un hôte mais pas sur un serveur dédié ?

Un serveur dédié n'a pas de client local, les méthodes [ObserversRpc] ne s'exécutent donc que sur les clients. Si l'une d'elles configure l'état du serveur, comme une graine aléatoire ou des objets générés, ajoutez runLocally: true. Vérifiez également que les joueurs apparaissent pour les clients distants, et non pour un hôte.

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

L'essai est gratuit, sans carte de crédit. 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 match ne coûte rien entre les matchs.

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.