Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

/

Moteur personnalisé

Moteur personnalisé

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

Moteur personnalisé : Comment héberger votre propre serveur de jeu sur des serveurs dédiés et ajouter le Matchmaking

Moteur personnalisé : Comment héberger votre propre serveur de jeu sur des serveurs dédiés et ajouter le Matchmaking

Ce guide vous montre comment héberger un jeu multijoueur conçu sur votre propre moteur, ou un serveur de jeu écrit dans n'importe quel langage (C++, C#, Go, Rust, Java et plus encore), sur les serveurs de jeu dédiés d'Edgegap, puis ajouter le matchmaking afin que les joueurs soient regroupés et connectés automatiquement à 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 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 à capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap repose sur cette base et est facultatif.

Edgegap ne nécessite aucun SDK ni aucun plugin de moteur. Si votre serveur s'exécute en mode headless dans un conteneur Linux, il s'exécute sur Edgegap : vous publiez une image, Edgegap en démarre une copie pour chaque match et fournit son adresse aux joueurs. Cette page couvre les quelques règles que votre serveur doit suivre pour s'adapter à ce modèle.

Ce guide couvre :

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

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

  3. L'adaptation de votre serveur au cycle de vie d'Edgegap

  4. La conteneurisation de celui-ci et la création d'une version de l'application

  5. Le test en local, puis le déploiement d'un serveur de test

  6. L'ajout du matchmaking (facultatif)

  7. Le test de la boucle complète 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 adapte votre serveur, écrit le Dockerfile, teste le conteneur, le déploie et génère la configuration du matchmaker. Vous gérez le tableau de bord Edgegap, les secrets et les sessions de test.

  • Manuellement. Chaque étape ci-dessous fonctionne également sans agent.

Vous développez avec Unity, Unreal Engine ou Godot ? Commencez plutôt par Unity Engine, Unreal Engine ou Godot Engine.

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 serveur de jeu fonctionnant en mode sans tête (headless) sur Linux x86-64 : pas de fenêtre, pas de GPU, pas d'invites de commande interactives, configuré par des options de ligne de commande ou des variables d'environnement. Deux joueurs doivent pouvoir le rejoindre sur localhost.

  • Un serveur qui gère le jeu (serveur faisant autorité). Les clients envoient des commandes ; le serveur décide des positions, des touches et des scores. Un serveur qui ne fait que relayer ce que les clients prétendent n'est qu'un relais coûteux et facile à pirater.

  • Un outil de conteneurisation en cours d'exécution. Nous recommandons Docker Desktop.

  • Pour le parcours avec 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 serveur, votre client de jeu, vos fichiers de projet ou un chat.

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 des logs et de générer des configurations de matchmaking sur votre compte. Les compétences de l'agent lui fournissent les règles indépendantes du moteur : edgegap-server-design pour le cycle de vie, edgegap-containerize pour l'image, edgegap-local-testing avant d'engager des dépenses.

Claude Code (à exécuter dans votre propre terminal, pour 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

Ensuite, installez 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, 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"] } } }. Le jeton sera demandé lors de la première utilisation.

Vérifiez que cela fonctionne :

« Liste mes applications Edgegap. »

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

3. Adaptez votre serveur au cycle de vie d'Edgegap

Sur Edgegap, un déploiement correspond généralement à un match : il démarre pour un groupe de joueurs et s'arrête lorsque leur match se termine. Votre serveur suit six règles :

  • Liez un port fixe sur 0.0.0.0, par exemple 7777/UDP. Edgegap attribue aux joueurs un port externe aléatoire pour chaque déploiement et le mappe au vôtre. Lier 127.0.0.1, ou un port aléatoire, fonctionne sur votre machine mais reste inaccessible sur Edgegap.

  • Lisez la configuration à partir des variables d'environnement. Edgegap les injecte dans chaque déploiement : ARBITRIUM_REQUEST_ID (l'ID du déploiement ; consignez-le dans les logs), ARBITRIUM_PORT_GAMEPORT_INTERNAL et _EXTERNAL, ARBITRIUM_PUBLIC_IP, et sur les déploiements de matchmaker MM_MATCH_ID et MM_TICKET_IDS (les personnes associées). Vos propres paramètres sont définis sur la version de l'application ou sur le déploiement.

  • Consignez une ligne claire dans les logs dès que vous acceptez des joueurs, par exemple READY port=7777, sur stdout. Les logs vont sur stdout et stderr, jamais uniquement dans des fichiers.

  • Arrêtez-vous vous-même à la fin du match, ou après environ 30 secondes sans personne de connecté : faites un DELETE sur ARBITRIUM_DELETE_URL avec l'en-tête Authorization: <ARBITRIUM_DELETE_TOKEN>. Un serveur inactif continue d'être facturé jusqu'à sa durée maximale.

  • Gérez le SIGTERM : sauvegardez les résultats sur votre backend, informez les joueurs, quittez en quelques secondes.

  • Plafonnez votre tick rate ou votre fréquence d'images. Une boucle sans interface graphique (headless) qui s'exécute sans limite consomme un cœur de processeur entier. 20 à 30 Hz conviennent à la plupart des jeux d'action, 60 Hz pour les jeux de tir rapides.

Votre serveur ne détient jamais le jeton d'API Edgegap : l'auto-arrêt dispose de son propre jeton par déploiement.

Avec votre agent :

« Charge la compétence edgegap-server-design et adapte mon serveur de jeu pour Edgegap : lie 0.0.0.0 sur un port fixe, lis les variables d'environnement ARBITRIUM_ et MM_, consigne READY lorsqu'il accepte des joueurs, effectue un auto-arrêt avec ARBITRIUM_DELETE_URL à la fin du match ou après 30 secondes d'inactivité, vide les connexions lors d'un SIGTERM et plafonne le tick rate. Vérifie ensuite que cela fonctionne toujours avec deux clients locaux. »

4. Conteneurisez votre serveur et créez une version de l'application

Edgegap exécute des conteneurs linux/amd64. Créez votre serveur en dehors de Docker, ou dans une étape de build pour les langages compilés, puis copiez uniquement le serveur dans une image allégée (slim) :

  • Lancez-le en tant que processus principal du conteneur, sous forme exec : ENTRYPOINT ["./my-server"]. Un script shell placé en amont intercepterait le signal SIGTERM ; si vous devez en utiliser un, terminez-le par exec ./my-server "$@".

  • Compilez pour la plateforme d'Edgegap, même sur Apple Silicon : docker build --platform linux/amd64 -t registry.edgegap.com/<project>/<image>:<tag> .

  • Aucun secret dans l'image, et n'affichez jamais les variables d'environnement au démarrage : cela inclurait le jeton d'arrêt automatique (self-stop token) dans vos journaux.

  • Poussez vers l'Edgegap Container Registry : exécutez vous-même docker login registry.edgegap.com avec le nom d'utilisateur et le jeton issus de la page Container Registry, puis docker push. Utilisez un nouveau tag pour chaque build, jamais latest. Docker Hub, GHCR, ECR, GCP et les registres GitLab fonctionnent également.

Créez ensuite l'application et sa version dans le tableau de bord : votre image et son tag, les identifiants du registre (sans eux, les déploiements échouent avec l'erreur « Unable to pull image from registry »), 1 vCPU et 2 Go pour commencer, votre port avec son protocole nommé gameport, et la politique de redémarrage Never.

Avec votre agent :

« Charge la compétence edgegap-containerize. Rédige un Dockerfile multi-stage pour mon serveur pour linux/amd64, compile et pousse l'image avec un nouveau tag, puis crée l'application Edgegap et la version d'application avec mon port et mon protocole, nommé gameport, et la politique de redémarrage never. »

5. Testez localement, puis déployez un serveur de test

D'abord localement, avec les variables qu'Edgegap définirait : docker run --rm -p 7777:7777/udp -e ARBITRIUM_PORT_GAMEPORT_INTERNAL=7777 <image>:<tag>. Connectez un client à 127.0.0.1:7777, puis arrêtez le conteneur avec docker stop et vérifiez que votre serveur se ferme proprement.

Ensuite sur Edgegap. Déployez votre version depuis le tableau de bord (Deploy, choisissez un emplacement proche de vous), ou demandez à votre agent : « Déploie ma dernière version Edgegap près de chez moi, attends qu'elle soit prête, montre-moi les journaux, et donne-moi l'adresse et le port externe. »

Lorsque le déploiement est Ready, connectez un client à son Host URL (ou IP) et son External Port. Le port externe change à chaque déploiement. « Ready » signifie que le conteneur a démarré ; votre serveur peut avoir besoin de quelques secondes supplémentaires pour se charger, laissez donc les clients réessayer pendant une minute au maximum.

Arrêtez le déploiement lorsque vous avez terminé. L'offre gratuite exécute un seul déploiement à la fois.

6. Ajouter le matchmaking

Le matchmaker d'Edgegap est un service hébergé : votre client envoie un ticket, le matchmaker regroupe les joueurs selon vos règles (taille du match, équipes, latence, niveau, mode), déploie votre serveur à proximité d'eux et renvoie son adresse à chaque client. Rien à lier : il s'agit d'une API HTTP.

  1. Rédigez la configuration : votre application et sa version, le nombre de joueurs par match, et une règle permettant à un joueur seul d'obtenir un serveur après 30 secondes pendant vos tests. Votre agent peut la générer : « Générer une configuration de matchmaker Edgegap pour la version de mon application : une équipe de 2 à 4 joueurs, un joueur seul obtient un serveur après 30 secondes. »

  2. Dans le tableau de bord, ouvrez Matchmaker, sélectionnez Create Matchmaker, téléversez le fichier et sélectionnez Create and Start. Copiez l'API URL et l'Auth Token. L'Auth Token peut être intégré en toute sécurité dans votre client de jeu.

  3. Depuis votre client, créez un ticket avec l'URL de l'API et le jeton d'authentification, puis vérifiez son statut jusqu'à ce qu'il passe de SEARCHING à MATCH_FOUND puis à HOST_ASSIGNED, avec l'adresse et le port du serveur. Connectez-vous.

Votre serveur identifie les personnes associées dans MM_TICKET_IDS. Consultez la documentation du matchmaking pour l'API complète.

Vous disposez déjà de votre propre service de matchmaker ou de lobby ? Votre backend peut démarrer des serveurs lui-même avec l'API de déploiement d'Edgegap : consultez Nakama, PlayFab ou les lobbies Steam pour le modèle.

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 clients et démarrez le matchmaking sur les deux.

  3. Les deux atteignent HOST_ASSIGNED avec le même serveur, et se connectent.

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

Avec 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

Des serveurs qui doivent survivre à un match, tels que des mondes persistants ? Consultez les Private Fleets.

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.

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 serveur de jeu avec moteur personnalisé sur les serveurs dédiés d'Edgegap.

Puis-je héberger un serveur de jeu issu de mon propre moteur sur Edgegap ?

Oui. Tout serveur qui s'exécute en mode headless dans un conteneur Linux x86-64 fonctionne : C++, C#, Go, Rust, Java, Node.js ou n'importe quoi d'autre. Edgegap n'a besoin d'aucun SDK ou plugin ; vous poussez une image et Edgegap exécute une copie pour chaque match.

De quoi mon serveur de jeu a-t-il besoin pour fonctionner sur Edgegap ?

Écouter sur 0.0.0.0 sur un port fixe, lire ses paramètres à partir des variables d'environnement, enregistrer dans stdout, gérer SIGTERM et arrêter son propre déploiement lorsque le match se termine. Edgegap mappe un port externe aléatoire sur le vôtre pour les joueurs.

Ai-je besoin de Docker pour utiliser Edgegap ?

Edgegap exécute des images de conteneur, votre serveur en a donc besoin d'une. Docker est le moyen habituel de la créer, et les compétences de notre agent rédigent le Dockerfile pour vous. Tout outil qui crée une image linux/amd64 fonctionne.

Comment un serveur de jeu s'arrête-t-il sur Edgegap ?

Il envoie une requête DELETE à la variable d'environnement ARBITRIUM_DELETE_URL, avec ARBITRIUM_DELETE_TOKEN comme en-tête d'autorisation. Les deux sont injectés dans chaque déploiement, de sorte que le serveur n'a jamais besoin de votre jeton d'API.

Puis-je utiliser mon propre système de matchmaking avec Edgegap ?

Oui. Votre backend peut démarrer des serveurs avec l'API de déploiement d'Edgegap, en plaçant chacun d'eux à proximité des joueurs. Vous pouvez également utiliser le matchmaker hébergé d'Edgegap, une API HTTP que votre client appelle directement.

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.