Arena Shooter est le fork par Edgegap de Super Star Fighter, le jeu de tir en arène multijoueur en vue du dessus de Dumpster Fire Labs, conçu avec Godot 4.7.2. Les pilotes choisissent une nouvelle carte d'amélioration à chaque manche, et les cartes s'accumulent jusqu'à ce qu'un petit vaisseau de départ devienne un véritable chaos remplissant tout l'écran.
Le netcode du jeu ne change pas. Son serveur dédié exécute déjà l'ensemble de la simulation, de sorte que chaque joueur voit le même combat. Le fork ajoute un onglet FIND MATCH et un court script de cycle de vie du serveur, dans leurs propres dossiers.
Les joueurs appuient sur FIND MATCH, le matchmaker d'Edgegap les regroupe et démarre un serveur de jeu dédié pour la partie. Les clients s'y connectent via un WebSocket sécurisé (wss://), des bots occupent les places vides, et le serveur s'arrête de lui-même lorsque la partie est terminée.
Le réseau d'Edgegap s'étend sur plus de 615 emplacements Edge Cloud (en savoir plus). Chaque serveur est déployé sur le meilleur emplacement disponible pour ses joueurs et n'est facturé que pendant la durée de la partie.
Cloner l'exemple : Fork Arena Shooter sur GitHub
Guide complet : intégrez Edgegap à votre propre jeu Godot grâce au guide d'intégration Godot Engine
Plateformes : clients de bureau Windows, macOS et Linux (x64 et ARM64) ; serveur dédié Linux x86_64 sur Edgegap. Le Matchmaking a été testé avec des clients Windows. Jeu original, Super Star Fighter, par Dumpster Fire Labs ; code sous licence MIT. Sa musique et son logo sont réservés, le fork les exclut donc (licence des ressources).
Comment ça fonctionne
Un joueur appuie sur FIND MATCH. Le client envoie un ticket au matchmaker Edgegap et le vérifie toutes les 2 secondes.
Le matchmaker regroupe de 2 à 4 joueurs (un joueur seul après 30 secondes) et démarre un serveur dédié à proximité d'eux. Le serveur lit le nombre de joueurs associés.
Chaque client associé reçoit l'adresse du serveur et le rejoint sur
wss://<host>:<port>via l'écran de connexion directe (Direct Connect) du jeu. Le mot de passe du lobby est l'identifiant du déploiement, qui n'est transmis qu'aux joueurs associés.La partie commence lorsque tous les joueurs associés sont présents, ou 30 secondes après l'arrivée du premier. Des pilotes PNJ occupent les places vides jusqu'à atteindre 4 vaisseaux, afin qu'un joueur solo puisse quand même disputer une partie.
20 secondes après les résultats finaux, le serveur met fin à son propre déploiement. Les joueurs se remettent en file d'attente pour la partie suivante.
Ce que le fork a modifié :
Chemin | Ce que ça fait |
|---|---|
| Cycle de vie du serveur sur Edgegap : mot de passe du lobby, démarrage automatique, remplissage par PNJ, arrêt autonome. N'a aucun effet en dehors d'un déploiement Edgegap. |
| L'onglet FIND MATCH : tickets de matchmaker, puis connexion via Direct Connect. |
| URL du matchmaker, jeton d'authentification (Auth Token), profil et nom du port. |
| Image serveur à partir du package serveur dédié Linux x86_64. |
| Configuration du matchmaker : un profil |
| Quelques hooks d'une ligne qui appellent les fichiers ci-dessus. |

Un jeu de tir d'arène au néon dans Godot 4, sur un serveur dédié Edgegap.
1. Avant de commencer
Un compte Edgegap gratuit. Aucune carte de crédit n'est requise pour tester.
Docker Desktop, en cours d'exécution, pour compiler l'image du serveur.
Python 3.11 ou version ultérieure. Le script de compilation du fork télécharge Godot 4.7.2 et ses modèles d'exportation dans le projet, les vérifie et n'installe rien sur l'ensemble du système. Vous n'avez pas besoin d'avoir Godot installé.
Clonez le fork.
Le jeu n'a jamais besoin de votre jeton d'API Edgegap. Seul le jeton d'authentification du matchmaker est intégré au client, et il ne donne aucun accès à votre compte.
2. Déployez le serveur de jeu sur Edgegap
Depuis la racine du dépôt, téléchargez la version épinglée de Godot et compilez le paquet du serveur dédié Linux :
python tools/build.py bootstrap
python tools/build.py build server-linux-x64 --skip-gate
Créez l'image à partir de ce paquet et poussez-la vers votre registre Edgegap. La page Container Registry contient votre projet, votre nom d'utilisateur et votre jeton :
docker build --platform linux/amd64 -f edgegap/Dockerfile -t registry.edgegap.com/<project>/arena-shooter:<tag> builds/beta-19/server-linux-x86_64
docker push registry.edgegap.com/<project>/arena-shooter:<tag>
Dans le tableau de bord, créez l'application godot-arena-shooter et une version (la configuration utilise v1) :
Votre image et votre tag, avec votre nom d'utilisateur de registre et votre jeton, afin qu'Edgegap puisse la récupérer.
0,5 vCPU et 1 Go.
Un port : nom
gameport, 7000, protocole WS, avec TLS Upgrade activé. Les clients se connectent avecwss://.
Variables d'environnement facultatives sur la version : EDGEGAP_NPC_FILL (valeur par défaut : 4, 0 désactive les PNJ), EDGEGAP_START_GRACE (30 s), EDGEGAP_JOIN_TIMEOUT (120 s) et EDGEGAP_ROUNDS_TO_WIN (3). Les lignes de journalisation du serveur commencent par EDGEGAP.
3. Créer le système de matchmaking
Ouvrez
edgegap/matchmaker-config.jsonet définissezapplication.nameetversionsur ceux de l'étape 2.Dans le tableau de bord, ouvrez Matchmaker, sélectionnez Create Matchmaker, téléversez le fichier, puis Create and Start.
Lorsqu'il est en ligne, copiez son URL d'API et son Jeton d'authentification dans
src/client/edgegap/edgegap_settings.gd. Ou laissez le fichier vide et définissezEDGEGAP_MATCHMAKER_URLetEDGEGAP_MATCHMAKER_TOKENlorsque vous lancez le client.
Le jeton d'authentification est conçu pour être intégré dans les clients de jeu. Ne mettez jamais votre jeton d'API Edgegap dans le client.
4. Jouer un match
Compilez le client Windows :
python tools/build.py build windows --skip-gate
Le même script compile les clients Linux et macOS (clients compile les quatre), mais seuls les clients Windows ont été testés avec Edgegap.
Lancez deux clients et ouvrez FIND MATCH, le premier onglet de l'écran de connexion. Cliquez dessus sur les deux. Le statut passe de « Searching for players… » à « Match found. Starting a server near you… », puis les deux clients rejoignent le même serveur Edgegap et arrivent dans son salon.
La partie commence lorsque les deux sont connectés, avec 2 pilotes PNJ pour atteindre 4 vaisseaux. Après les résultats finaux, le serveur attend 20 secondes puis arrête automatiquement son déploiement. Une demande de revanche y met également fin : remettez-vous en file d'attente pour la prochaine partie.
Pour un test, EDGEGAP_FIND_MATCH=1 permet à un client d'appuyer sur FIND MATCH au lancement.
5. Ajoutez-le à votre propre jeu Godot
Le fork sert de référence fonctionnelle : votre agent de codage peut copier ses fichiers testés au lieu de les réécrire à partir de zéro. La compétence edgegap-godot d'Edgegap fournit également des versions agnostiques au jeu de ces mêmes scripts. Quatre modifications suffisent pour porter un jeu Godot doté d'un serveur dédié sur Edgegap avec matchmaking :
Le serveur gère la partie de manière autonome. Sur un déploiement Edgegap, il lit le nombre de joueurs trouvés, démarre la partie dès qu'ils sont connectés (ou après un délai de grâce), et comble les places vides avec des bots si votre jeu en dispose (
src/shared/edgegap/edgegap_server.gd).Le serveur s'arrête de lui-même. Lorsque la partie se termine, ou si personne ne la rejoint, il envoie une requête
DELETEà l'adresseARBITRIUM_DELETE_URLinjectée par Edgegap, arrêtant ainsi la facturation.Le client dispose d'un bouton « Trouver une partie ». Il soumet un ticket de matchmaking, interroge son statut jusqu'à ce qu'un serveur soit assigné, puis renseigne et lance l'écran de connexion existant du jeu avec l'adresse obtenue (
src/client/edgegap/edgegap_find_match.gd,edgegap_settings.gd).Les nouveaux scripts sont exportés. Les préréglages d'exportation du jeu utilisent une liste d'autorisation ; le fork liste donc les trois scripts Edgegap dans
export_presets.cfg. Sans cela, le build exporté les ignore silencieusement.
Ensuite, conteneurisez le serveur en prenant pour modèle le edgegap/Dockerfile du fork, puis créez la version de l'application et le matchmaker comme décrit aux étapes 2 et 3.
Avec votre agent :
« Charge la compétence edgegap, puis edgegap-godot. En utilisant github.com/edgegap/game-sample-godot-arena-shooter comme référence, ajoute un cycle de vie de serveur qui attend les joueurs associés et arrête son propre déploiement Edgegap, ainsi qu'un bouton Trouver une partie qui s'enregistre dans la file d'attente du matchmaker Edgegap et rejoint le serveur assigné via le code de connexion existant de mon jeu. »
Pour découvrir chaque étape détaillée, pas à pas, consultez le guide d'intégration de Godot Engine.
6. Fonctionnement du matchmaking et de l'arrêt automatique
La configuration du système de matchmaking de l'exemple comprend un profil, casual : une équipe de 2 à 4 joueurs. Après 30 secondes, le minimum passe à 1, de sorte qu'un joueur seul obtient également un serveur. Il n'y a pas de règle de latence.
Le client communique avec le matchmaker à l'aide de quelques appels HTTP, en utilisant le jeton d'authentification (Auth Token) :
POST {API URL}/ticketsavec{"profile": "casual", "attributes": {}}GET {API URL}/tickets/{id}toutes les 2 secondes, jusqu'à ce que le statut soitHOST_ASSIGNED, avec le nom d'hôte du serveur et le port externe degameportDELETE {API URL}/tickets/{id}si le joueur annule
Le serveur demande à Edgegap d'arrêter son déploiement, ce qui met fin à la facturation :
20 secondes après les résultats finaux (un match par déploiement) ;
lorsque personne ne rejoint dans les 120 secondes ;
lorsque tout le monde est parti depuis 30 secondes.
Pour dimensionner vos propres matchs, définissez min_team_size et max_team_size dans la configuration, et EDGEGAP_NPC_FILL sur la version de l'application. Lorsque vous publiez une nouvelle version du serveur, créez une nouvelle version d'application et mettez à jour application.version dans le matchmaker (Arrêter, Modifier, Démarrer). Le guide d'intégration de Godot Engine couvre le matchmaking pour votre propre jeu.
Limites connues
4 vaisseaux par match Edgegap par défaut. Le jeu prend en charge jusqu'à 32 pilotes, mais le système de matchmaking de l'exemple associe 2 à 4 joueurs et complète jusqu'à 4 vaisseaux avec des PNJ. Les matchs Edgegap plus grands nécessitent une valeur plus élevée pour
max_team_sizeetEDGEGAP_NPC_FILL; ils devraient fonctionner mais n'ont pas été testés sur Edgegap.Un match par déploiement. Une revanche met fin au déploiement, et les joueurs se remettent en file d'attente.
L'accès est protégé par l'adresse, pas par des tickets. Seuls les joueurs appariés reçoivent le nom d'hôte du serveur, qui contient également le mot de passe du salon. Le serveur ne vérifie pas l'ID de ticket de chaque joueur.
Sur ordinateur de bureau uniquement. Le fork ne possède pas d'exportation web. Le jeu utilise déjà WebSocket, donc une version web devrait être possible, mais elle a été écrite sans être testée. Elle nécessiterait également
allowed_cors_originsdans la configuration du système de matchmaking.Pas de musique ni de logo de studio. La licence des ressources en amont les réserve. Les effets sonores sont générés dans le code et continuent d'être joués.
Ce qui a été testé
Testé le 20 octobre 2026, avec Godot 4.7.2 et le matchmaker Edgegap 3.3.2 :
Image Docker locale avec des variables Edgegap simulées et deux clients bots : le match a démarré automatiquement avec 2 PNJ, et le serveur s'est arrêté après les résultats finaux.
Déploiement direct (Newark) : deux clients bots via
wss://ont joué un match de 3 manches, et le déploiement s'est arrêté de lui-même après 5,4 minutes.Matchmaker : deux clients Windows ont appuyé sur FIND MATCH, se sont vu attribuer le même serveur, l'ont rejoint, et le match a démarré avec 2 PNJ.
Délai d'attente de connexion : les déploiements que personne n'a rejoints se sont arrêtés d'eux-mêmes après 120 secondes.
En dehors d'un déploiement Edgegap, le serveur se comporte exactement comme l'original, le jeu en réseau local (LAN) et la connexion directe fonctionnent donc toujours.
Guide netfox →, pour la prédiction et le rollback dans votre propre jeu Godot
Questions Fréquemment Posées
Questions concernant l'exécution de l'exemple Godot Arena Shooter avec le matchmaking et les serveurs dédiés d'Edgegap.
Comment ajouter le matchmaking à un jeu Godot ?
Créez un entremetteur (matchmaker) Edgegap à partir d'une configuration JSON, puis ajoutez un bouton Trouver une partie qui envoie un ticket avec HTTPRequest, le vérifie jusqu'à ce qu'un serveur soit assigné et rejoint cette adresse. L'exemple Arena Shooter réalise cela dans un seul fichier GDScript, en réutilisant l'écran de connexion propre au jeu.
Un jeu Godot peut-il utiliser WebSocket sur des serveurs dédiés Edgegap ?
Oui. Le serveur de l'échantillon écoute les connexions WebSocket sur le port 7000. Sur la version de l'application, configurez le port sur WS avec la mise à niveau TLS activée, et les clients se connectent avec wss:// au nom d'hôte du serveur.
Que se passe-t-il si un seul joueur appuie sur « Trouver une partie » ?
Après 30 secondes, le système de matchmaking les associe seuls, et des pilotes PNJ occupent les autres places jusqu'à concurrence de 4 vaisseaux. Définissez EDGEGAP_NPC_FILL sur 0 dans la version de l'application pour désactiver les bots.
Les serveurs Edgegap continuent-ils de fonctionner après le match ?
Pas dans cet exemple. Le serveur arrête son propre déploiement 20 secondes après les résultats finaux, ou si personne ne le rejoint dans les 120 secondes, vous n'êtes donc facturé que pendant le déroulement d'une partie.

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.

Un lancement mondial impeccable pour Rivals of Aether 2
Aether Studios
Découvrez comment Aether Studios a rapidement ajouté Edgegap et a offert un lancement et un post-lancement sans faille à sa communauté.
Case Study

Surmontez la latence introduite par l'utilisation de WiFi par la réalité virtuelle dans les jeux multijoueurs compétitifs.
Halfbrick Studios
Découvrez comment Halfbrick a réussi à lancer et à maintenir un accès anticipé axé sur le multijoueur sur la plateforme VR META Quest.
Case Study

L'application sociale de MENA ajoute des jeux en ligne
WOLF
Découvrez comment l'application sociale très populaire de la région MENA a facilement ajouté des jeux de matchmaking et d'orchestration multijoueur à WOLF Qanawat.
Case Study

L'orchestration hybride maintient Kickoff Tactics prêt pour tout type de trafic
Birch Games
Comment l'orchestration hybride d'Edgegap pour gérer tant le le trafic prévisible et imprévisible, grâce aux flottes "egress-free" et le cloud.
Case Study

Lunes de sang de 7 jours
The Fun Pimps & iLLOGIKA
Découvrez comment Illogika a considérablement réduit ses coûts de serveur et garanti l'expérience en ligne attendue par la franchise 7 Days to Die.
Case Study

La guerre en ligne authentique nécessite l'orchestration ultime
Highwire Games
Découvrez comment le besoin de performance de Highwire nécessite une orchestration que seul Edgegap peut fournir.
Case Study

22 000 avis, 4,8 étoiles et une infrastructure qui s'est adaptée automatiquement
Sinn Studios
Comment une intégration simple, prise en charge par Slack, a permis au titre VR à succès de Sinn Studio d'être mis en ligne rapidement et de s'y maintenir.
Case Study

Orchestration de Serveurs Dynamiques
Under NDA - AAA Studio
Découvrez comment l'un des plus grands studios AAA du monde a amélioré son expérience multijoueur pair à pair grâce à l'informatique en périphérie.
Case Study

Latence presque nulle pour un jeu de combat AAA
AAA Studio - Under NDA
Comment un projet non annoncé a permis d'obtenir le délai d'attente le plus bas possible et d'améliorer l'équité dans son jeu 1v1.
Case Study

Jouez aux dieux avec la physique multiplayer
Squido Studio
Découvrez comment Squido utilise les serveurs de jeu optimisés par Edgegap pour offrir un gameplay VR époustouflant et chaotique.
Case Study

Des solutions entièrement gérées qui font gagner du temps à un jeu VR
Dirty Pearl Studios
Découvrez comment Dirty Pearl Studios a gagné du temps de développement grâce à l'intégration facile d'Edgegap et à l'orchestration automatisée de son intégration avec Nakama.
Case Study

Déploiement instantané de serveurs globaux pour l'éducation médicale en XR
AlensiaXR
Comment AlensiaXR utilise Edgegap pour offrir des sessions d'anatomie partagées à faible latence et toujours disponibles aux étudiants en médecine du monde entier.
Case Study

The Lightkeepers : un jeu coopératif social en VR avec des serveurs dédiés
Spectral Games
Comment Spectral Games a utilisé Edgegap Matchmaking et Server Browser pour lancer des serveurs dédiés pour son salon social VR, sans aucune expérience préalable des serveurs.
Case Study

Déploiements rapides & fiables dans le monde pour le PvPvE Gravebound
Crater Studios
Comment l'orchestration et le matchmaking d'Edgegap ont aidé Crater Studios à se concentrer sur le gameplay plutôt que sur l'infrastructure.
Case Study

Échelle rapide du métavers web
Hiber
Découvrez comment Hiber a éliminé les incertitudes de sa planification de capacité serveur avec Edgegap.
Case Study

Exigences matérielles élevées et pools de serveurs de jeux personnalisés
Alderon Games
Découvrez comment Alderon Games utilise instantanément une pool personnalisée de serveurs de jeux à travers plusieurs fournisseurs dans le monde pour son MMO populaire.
Case Study

Intégration facile pour les développeurs indépendants
WhaleFood Games
Découvrez comment WhaleFood Games a "chassé" ses problèmes de netcode avec Edgegap.
Case Study

Une technologie qui propulse le premier jeu eSports de l'Asie du Sud-Est.
Anantarupa Studios
Découvrez comment Edgegap a transformé le paysage du jeu en Asie du Sud-Est en démocratisant des infrastructures complexes avec sa solution.
Case Study

Une frappe. Portée mondiale.
Triple Hill Interactive
Comment Triple Hill Interactive tire parti de l'orchestration d'Edgegap pour offrir une faible latence et améliorer l'équité dans un genre où chaque milliseconde compte.
Case Study

Un Battle Royale en équipe au rythme effréné... avec des peluches d'animaux armées jusqu'aux dents !
SANDYFLOOR
Découvrez comment un studio indépendant basé en Corée a lancé son jeu multijoueur dans le monde entier.
Case Study

Les courses de chevaux sur mobile disponible mondialement grâce à Edgegap.
Mirai Labs
Comment Mirai Labs propulse les courses multijoueurs mondiales de Pegaxy Blaze grâce au déploiement de serveurs juste-à-temps et au vCPU fractionné pour maintenir un coût bas.
Case Study

Gestion et distribution des serveurs
Matrioshka Games
Lisez comment Matrioshka Games a réussi à expédier un Battle Royale en accès anticipé avec des ressources limitées.
Case Study

À mon signal, déchaînez l'enfer !
TyGames
Découvrez comment le studio indépendant TyGames immerge les joueurs dans un combat multijoueur de gladiateurs à la troisième personne.
Case Study

Orchestration Instantanée Mondiale
Soliton Interactive
Découvrez comment Soliton Interactive a réalisé l'impossible… Livrer son premier jeu jouable en mode multijoueur !
Case Study

Le jeu de hockey avec une physique côté serveur & une latence sous les 50ms
NS7
Découvrez pourquoi seul Edgegap pourrait permettre à un studio indépendant de réaliser sa vision d'un gameplay sportif F2P de qualité AAA grâce à la physique côté serveur et à l'autorité.
Case Study

Déploiements régionaux pour les jeux en ligne
X1 Contra 1
X1 Contra 1 propose des jeux PvP décontractés en temps réel à sa base de joueurs brésilienne grâce à un hébergement économique et à des déploiements régionaux
Case Study

Payez uniquement lorsque les joueurs jouent : une infrastructure abordable
Meltdown Interactive
Comment Edgegap a aidé le développeur indépendant Meltdown Interactive Media à résoudre la mise à l’échelle rentable et le matchmaking sans complexité
Case Study

Une plateforme Edgegap, trois profils réseau très différents
Warped Games
Comment Warped Games gère un hub social, du coopératif en temps réel et du coopératif au tour par tour, le tout sur la même API de déploiement Edgegap et le même pipeline de conteneurs.
Case Study

Pool Live Tour Max
RETA Games
Case Study

Le tireur d'extraction POP Web3 de Corée devient mondial, instantanément
NDUS Entertainment
Comment XOCIETY a facilement ajouté l'orchestration Edgegap et intégré un matchmaking personnalisé en travaillant aux côtés des Edgegap Ping Beacons pour optimiser la latence.
Case Study

Multijoueur dans chaque dimension
Arcadia.tv
Découvrez comment Arcadia.tv utilise le réseau edge d'Edgegap pour offrir un sport VR innovant basé sur l'équipe et la localisation.
Case Study

Un jeu mobile F2P réduit ses coûts d'infrastructure grâce aux serveurs JIT
Game Changers Worldwide
Comment Game Changer Worldwide a hébergé le PvP 3v3 en temps réel de Rumble Rush à l'échelle mondiale sur mobile.
Case Study
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.









