Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

netfox

Déployer sur Edgegap

Publié

Publié

Publié

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

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

Ce guide vous montre comment héberger un jeu Godot conçu avec netfox 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 dans le monde entier sur 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 fonctionnement entre les parties. Pour les serveurs persistants à capacité réservée, Edgegap propose les Private Fleets. Le Matchmaking d'Edgegap s'appuie sur cette fonctionnalité et est facultatif.

netfox est un ensemble de modules complémentaires pour Godot 4 qui apporte ce dont les jeux au rythme effréné ont besoin en plus du multijoueur intégré de Godot : temps réseau partagé, prédiction côté client avec réconciliation côté serveur, rollback et interpolation fluide. Il respecte la propriété des nœuds propre à Godot, de sorte que le serveur possède l'état du jeu. Vous débutez avec le multijoueur de Godot ? Consultez Godot Engine pour savoir ce que Godot inclut par lui-même.

Ce guide couvre :

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

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

  3. La préparation de votre jeu netfox 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 (facultatif)

  7. Le test de la boucle complète avec deux joueurs

Vous pouvez procéder de deux manières différentes, ou les combiner :

  • Avec un agent de codage. 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 vous occupez des actions dans Godot et sur le tableau de bord Edgegap, ainsi que des sessions de jeu test. Les compétences d'Edgegap couvrent Godot grâce à leurs guides de conteneur et de serveur agnostiques en matière de moteur ; aucune compétence dédiée à Godot ou netfox n'est encore publiée.

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

Pour compiler et conteneuriser le serveur, le plugin d'hébergement de serveurs de jeu pour Godot d'Edgegap est facultatif. Il compile votre serveur, le conteneurise et le déploie sur le cloud depuis l'éditeur Godot, 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 Forest Brawl, le jeu d'exemple de netfox, un party brawler où les joueurs s'éjectent mutuellement hors de la carte. Tout projet netfox fonctionne de la même manière.

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.

  • Godot 4.3 ou une version plus récente.

  • netfox dans votre projet. Obtenez-le depuis l'AssetLib de Godot (recherchez netfox), la page des versions ou la source, puis activez les extensions sous Projet → Paramètres du projet → Extensions. Installez également netfox.extras si vous utilisez ses assistants d'entrée ou d'armes. Chaque version inclut aussi Forest Brawl.

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

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

  • Pour la méthode avec agent : un jeton d'API Edgegap, accessible depuis le Tableau de bord → Paramètres utilisateur → Jetons. Il s'applique à toute l'organisation, traitez-le donc comme un mot de passe : ne l'insérez jamais dans votre projet, votre client de jeu ou une messagerie instantanée.

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 journaux et de générer des configurations de matchmaking ainsi que des Dockerfiles sur votre compte. Les compétences de l'agent lui fournissent les règles de conception de serveur d'Edgegap, la configuration des conteneurs, la routine de test local et les pièges connus.

Claude Code (exécutez 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 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/edgegap-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 :

« Lister 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. Préparez votre serveur netfox pour l'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 :

« Chargez la compétence edgegap-server-design et préparez ce projet Godot netfox pour un serveur dédié : un serveur headless qui démarre de manière autonome avec ENet sur 0.0.0.0:7777, gère chaque nœud contenant l'état du jeu, fait apparaître les joueurs lors de la connexion des clients et arrête son propre déploiement Edgegap à la fin de la partie. Suivez docs.edgegap.com/godot ainsi que la documentation de netfox. Vérifiez ensuite que cela fonctionne en local avec un serveur et deux clients. »

Manuellement :

  • Amorçage (Bootstrap). Ajoutez un script qui lance le serveur dans les builds serveur (headless, ou avec un argument --server), avec l'API multijoueur de Godot et ENet écoutant sur toutes les interfaces sur le port 7777/UDP. La documentation Godot d'Edgegap contient un script d'amorçage pour Forest Brawl.

  • Propriété (Ownership). netfox considère le propriétaire d'un nœud comme son serveur. Laissez le serveur propriétaire de chaque nœud conservant l'état du jeu ; chaque joueur ne possède que ses propres entrées (inputs).

  • Fréquence de rafraîchissement (Tickrate). netfox exécute sa propre boucle réseau de ticks (Paramètres du projet → netfox → Time → Tickrate). Le tickrate du serveur fait référence : configurez la manière dont les clients gèrent une non-concordance (avertir, déconnecter, ajuster ou signaler) et maintenez-le dans les limites de ce que le vCPU du serveur peut exécuter.

  • Rollback. Synchronisez chaque propriété utilisée par votre _rollback_tick() et appliquez la même logique sur le serveur et sur les clients, sinon les mouvements risquent de subir des retours en arrière brusques (snapping).

  • noray n'est pas nécessaire. netfox.noray connecte les joueurs qui hébergent eux-mêmes leurs parties. Sur Edgegap, les clients se connectent directement au serveur dédié.

  • Lorsque la partie se termine, faites en sorte que le serveur arrête son déploiement : envoyez une requête DELETE à l'adresse ARBITRIUM_DELETE_URL injectée par Edgegap, en utilisant ARBITRIUM_DELETE_TOKEN comme en-tête Authorization.

Forest Brawl

Forest Brawl se trouve dans le dossier examples/forest-brawl de netfox et dans chaque version de netfox. Ajoutez à sa scène principale le script d'amorçage pour Forest Brawl disponible dans la documentation Godot d'Edgegap, et le jeu s'exécutera en tant que serveur dédié.

Testez d'abord en local : une instance faisant office de serveur, deux en tant que clients, sur 127.0.0.1. Ne conteneurisez pas un jeu qui ne fonctionne pas sur localhost.

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'hébergement de serveur de jeu d'Edgegap pour Godot. Le moyen le plus rapide pour effectuer un premier déploiement dans le cloud, directement depuis l'éditeur Godot. Il utilise Docker pour conteneuriser votre serveur. La vidéo ci-dessous illustre cette méthode avec Forest Brawl.

  1. Dans Godot, ouvrez l'onglet AssetLib, recherchez Edgegap, puis cliquez sur Télécharger et Installer. Vous pouvez aussi copier le plugin depuis GitHub dans le dossier addons de votre projet.

  2. Activez-le sous Projet → Paramètres du projet → Plugins. Un onglet Edgegap apparaît à côté de l'Inspecteur.

  3. Sélectionnez Get token, connectez-vous et collez le jeton dans le plugin.

  4. Validez les modèles d'exportation, ajoutez le script d'amorçage (bootstrap) de l'étape 3, puis sélectionnez Build server.

  5. Une fois Docker lancé, sélectionnez Validate Docker, puis Containerize with Docker. Si vous le souhaitez, vous pouvez cliquer sur Deploy local container et y connecter un client.

  6. Sélectionnez Upload image and create App version. Dans le tableau de bord, définissez le port sur 7777, UDP, nommé gameport. Validez.

Option B : demandez à votre agent.

« Charge la compétence edgegap-containerize. Exporte le serveur dédié Godot pour Linux, génère un Dockerfile avec edgegap_generate_dockerfile, compile-le pour linux/amd64, 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 et la politique de redémarrage Never. »

L'agent vous demandera d'exécuter vous-même la commande docker login registry.edgegap.com, en utilisant le nom d'utilisateur et le jeton de la page Container Registry, afin que ces identifiants ne figurent pas dans la discussion. Assurez-vous que la version de l'application a bien les identifiants du registre configurés : sans eux, les déploiements échoueront avec le message « 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 pour Godot, utilisant Forest Brawl de netfox :

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. L'une de ces méthodes 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 Edgegap près de chez moi, attends qu'elle soit prête, montre-moi les logs et donne-moi l'adresse et le port externe. »

Lorsque le déploiement est Ready, copiez son Host et son External Port, renseignez-les dans les paramètres de connexion de votre client, et rejoignez avec deux clients. Le port externe change à chaque déploiement, vérifiez-le donc à chaque fois. Le serveur peut prendre jusqu'à une minute après être Ready pour accepter les joueurs. Si les mouvements saccadent ou se téléportent uniquement en ligne, vérifiez les notes sur le tickrate et le rollback à l'étape 3.

Arrêtez le déploiement lorsque vous avez terminé (depuis le plugin, le tableau de bord ou 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 de compétence, 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 à 8 joueurs, et permets à un joueur seul d'obtenir un serveur après 30 secondes pour que je puisse tester en solo. Enregistre-la sous le nom matchmaker-config.json. »

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

  1. Ouvrez Matchmaker et sélectionnez Create Matchmaker.

  2. Nommez-le, téléversez matchmaker-config.json et 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 :

« Écris un client de matchmaking Godot avec HTTPRequest : crée un ticket avec l'URL de l'API du matchmaker et l'Auth Token, interroge-le jusqu'à ce qu'un serveur soit attribué, puis connecte-toi à l'hôte et au port attribués. Relie-le à mon bouton Play, puis recompile et pousse le serveur, crée une nouvelle version d'application et indique-moi ce qu'il faut mettre à jour dans le matchmaker. »

Les compétences d'Edgegap n'intègrent pas encore de client de matchmaking Godot, l'agent l'écrit donc à partir de l'API de tickets du matchmaker, en quelques requêtes HTTP.

Manuellement : suivez la documentation sur le matchmaking.

Lorsque vous publiez un nouveau build de serveur, mettez à jour application.version dans la configuration du matchmaker (Stop, Edit, Start), sinon les matchs continueront de déployer l'ancien build.

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 : deux builds exportés, ou l'éditeur plus un build.

  3. Sélectionnez Find Match dans les deux. Les deux clients obtiennent le même serveur et s'y connectent.

  4. Quittez la partie. Le serveur arrête son propre déploiement, et il disparaît du tableau de bord. Cet arrêt automatique est ce qui maintient 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

Nouveau dans le multijoueur avec Godot ? Consultez Godot Engine pour découvrir ce que Godot inclut nativement. Configuration de Godot sur Edgegap : Documentation Godot.

Vous passez en production ? Demandez à votre agent d'exécuter la checklist de la compétence edgegap-launch : déploiement des 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 aux autres studios sur le Discord d'Edgegap.

Questions Fréquemment Posées

Questions fréquentes sur l'hébergement d'un jeu netfox pour Godot sur les serveurs dédiés d'Edgegap, avec ou sans matchmaking.

Est-ce que netfox prend en charge les serveurs dédiés ?

Oui. netfox prend en charge les jeux client-serveur et suit la propriété des nœuds de Godot, de sorte qu'un serveur Godot sans interface graphique (headless) possédant l'état du jeu fait autorité. Démarrez-le depuis un script d'amorçage avec ENet sur un port fixe.

Ai-je besoin de noray pour héberger un jeu netfox sur Edgegap ?

Non. netfox.noray aide les joueurs à se connecter aux parties hébergées par d'autres joueurs. Sur Edgegap, les clients se connectent directement à l'hôte et au port externe du serveur dédié.

Est-ce que netfox remplace le multijoueur intégré de Godot ?

Non, cela s'appuie dessus. Vous connectez toujours les pairs avec l'API multijoueur de Godot, généralement ENet. netfox ajoute par-dessus un temps réseau partagé, de la prédiction avec réconciliation, du rollback et de l'interpolation.

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

Quel que soit le port sur lequel votre serveur ENet écoute : le plugin Godot et la documentation d'Edgegap utilisent par défaut le port 7777 sur UDP. Définissez le même port sur la version de votre application Edgegap, nommé gameport. Les joueurs se connectent au port externe qu'Edgegap attribue à chaque déploiement.

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

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.