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 conçu 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 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 de capacité réservée, Edgegap propose des Private Fleets. Le Matchmaking d'Edgegap repose sur cette base et est optionnel.

Ce guide couvre :

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

  2. La connexion de votre agent de programmation à Edgegap (optionnel)

  3. La préparation de votre jeu PurrNet 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. L'ajout du matchmaking (optionnel)

  7. Le test de la boucle complète 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. L'agent modifie votre projet, compile et conteneurise le serveur, le déploie et écrit le code de matchmaking. Vous gérez les clics dans Unity et le tableau de bord Edgegap, et effectuez 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 automatisée de serveur de jeu pour Unity d'Edgegap est facultatif. 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 à partir de boutons dans l'éditeur Unity, 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.

PurrNet

x

Edgegap

Entièrement approuvé par

Entièrement approuvé par

Créateur de PurrNet

Créateur de PurrNet

« Un hébergement ultra-rapide, évolutif et à faible latence pour votre jeu multijoueur. »

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.

Claude Code : installez le plugin Edgegap. Il ajoute à la fois le serveur MCP et les compétences, et vous demande votre jeton 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 voulez 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 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/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. »

Une liste vide ne pose aucun problème. Une erreur concernant le jeton signifie généralement que l'en-tête indique token token ....

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

Sur Edgegap, aucun joueur n'héberge la partie. Un serveur dédié headless gère le jeu ; le serveur dédié doit donc démarrer de manière autonome, écouter sur un port fixe et s'arrêter lorsque la partie est terminée.

Avec votre agent :

« Charge la compétence edgegap-purrnet et prépare ce projet PurrNet pour un serveur dédié : le build serveur démarre le serveur en mode headless sur 0.0.0.0:7777, les clients se connectent à une adresse obtenue 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 lorsque la partie se termine. Ajoute le 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 automatiquement au démarrage du jeu, vos scènes et vos prefabs restent donc inchangés, et l'Éditeur conserve le flux de travail host-and-clone de PurrNet.

Manuellement, sur votre NetworkManager et votre code :

  • Indicateurs de démarrage (Start flags). Les options Start Server Flags et Start Client Flags de PurrNet démarrent automatiquement un serveur et un client. Conservez l'indicateur serveur pour les builds serveur, et retirez l'indicateur 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'exemple et la compétence d'agent d'Edgegap utilisent 7777/UDP. L'option Auto Setup Edgegap Server Port (les compétences d'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] configurant l'état du serveur : ajoutez runLocally: true. Sans cela, la méthode ne s'exécute jamais sur un serveur dédié, qui ne possède pas de client local : dans l'exemple Incremental, le serveur ne générait aucune ressource.

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

  • Protégez le code réservé au client (caméras, interface utilisateur, saisie, audio) afin que le serveur headless l'ignore.

  • Assurez-vous que votre scène PurrNet est activée dans les paramètres de compilation (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:7777. Vérifiez que l'univers de jeu 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 votre build de serveur Linux dans un conteneur. Utilisez l'une ou l'autre option, 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, le tout à l'aide de boutons. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous illustre 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, puis 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. Avec Docker en cours d'exécution, sélectionnez Validate, puis Containerize with Docker. Facultativement, sélectionnez 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 7777, UDP, nommé gameport. Validez.

Option B : demandez à votre agent.

« Génère le serveur dédié Linux, conteneurise-le et pousse-le avec le plugin Unity d'Edgegap (Tools → Edgegap Server Hosting) en utilisant un nouveau tag d'image, 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 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 travaillez avec un autre netcode Unity ? Consultez Unity Engine. Vous préférez des salons que les joueurs parcourent ? Consultez le Server Browser for Unity.

Vous passez en production ? Demandez à votre agent d'exécuter la checklist 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 aux 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 ; l'échantillon et la compétence d'agent d'Edgegap le configurent sur 7777. Utilisez le même port sur la version de votre application Edgegap, nommé gameport, ou activez la configuration automatique du port du serveur Edgegap (les compétences d'agent peuvent l'appeler Adapter à 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

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.

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.

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.