SpaceEdge est l'exemple de jeu de tir spatial d'Edgegap pour Fish-Networking (FishNet), conçu sous Unity. Cette version s'exécute dans le navigateur : les joueurs pilotent, tirent et marquent des points dans Unity WebGL, et chaque partie tourne sur son propre serveur de jeu dédié Edgegap.
Le code du jeu reste du FishNet : le même NetworkManager, le transport Bayou, la prédiction et les RPC. L'exemple ajoute quelques scripts Edgegap autour : un pour démarrer le serveur, un pour trouver une partie et un pour les maintenir actifs d'une scène à l'autre.
Aucun joueur n'héberge la partie. Le serveur dédié vérifie chaque tir, gère la santé et le score, et arrête son propre déploiement lorsque tout le monde a quitté. Le client de jeu ne détient aucun jeton d'API Edgegap.
Le réseau d'Edgegap s'étend sur plus de 615 emplacements Edge Cloud (en savoir plus). Chaque serveur est déployé à l'emplacement le plus adapté disponible pour ses joueurs et n'est facturé que pendant la durée de la partie.
Cloner l'exemple : SpaceEdge WebGL + Matchmaker sur GitHub
Guide complet : intégrez Edgegap à votre propre jeu FishNet grâce au guide d'intégration Fish-Networking
Plateformes : Unity WebGL dans le navigateur, via des WebSockets sécurisés (
wss://) ; serveur dédié Linux. Le fichier README indique que les builds de bureau Windows fonctionnent également via Bayou (non inclus dans le test). Unity 2021.3.45f2, FishNet 4.1.6R. Utilise des ressources gratuites de l'Unity Asset Store (Cartoon FX, Sci-Fi Sfx, Star Sparrow, Starfield Skybox, TotalJSON) sous leurs licences respectives.
Comment ça fonctionne
Un joueur ouvre le jeu dans le navigateur et sélectionne Start Game.
Mode direct (par défaut) : le client se connecte à l'adresse et au port du serveur configurés sur
MatchmakingSystem. Mode Matchmaker (optionnel) : le client envoie un ticket au Matchmaker Edgegap, qui regroupe 2 à 4 joueurs et démarre un serveur Edgegap à proximité d'eux.Le serveur démarre FishNet sur
0.0.0.0:7770via des WebSockets standards. La fonctionnalité TLS Upgrade d'Edgegap ajoute la couche sécurisée, permettant aux navigateurs de se connecter avecwss://au nom d'hôte du déploiement. Aucun certificat à acheter.Les joueurs pilotent et tirent dans
BattleScene. Le serveur vérifie chaque tir et gère la santé ainsi que le score.Si personne ne rejoint dans les 120 secondes, ou 30 secondes après le départ du dernier joueur, le serveur arrête son propre déploiement, et la facturation prend fin.
Ce que l'exemple a modifié :
Chemin | Rôle |
|---|---|
| Associe Start Game à une connexion directe (par défaut) ou au client de matchmaking. Lorsque le matchmaker est désactivé, il désactive le client de matchmaking. |
| Mode Matchmaker : crée un ticket, attend le statut |
| Builds serveur : démarre le serveur FishNet sur le port 7770, lit les variables injectées par Edgegap et arrête le déploiement lorsqu'il est vide. Remplace Start On Headless de FishNet. |
| Maintient l'objet |
| Builds client et serveur Linux en ligne de commande, plus configuration des scènes. |
| Le SDK Edgegap pour Unity en tant que paquet Git ( |
| Image serveur sur Ubuntu 22.04 avec certificats CA ; profil de matchmaker pour les navigateurs. |

SpaceEdge dans le navigateur : chaque vaisseau vole sur le même serveur dédié Edgegap.
1. Avant de commencer
Un compte Edgegap gratuit. Vérifiez votre adresse e-mail. Aucune carte de crédit n'est requise pour tester.
Unity 2021.3.45f2 avec les modules Linux Build Support (Mono), Linux Dedicated Server Build Support et WebGL Build Support.
Docker Desktop, installé et en cours d'exécution.
Python 3, ou tout autre serveur web statique, pour héberger le build WebGL localement.
Clonez le dépôt avec
git clone, puis ouvrez le dossierFishnet_v4.1.6R_WebGL_Matchmakerdans Unity Hub. Les autres dossiers sont des exemples plus anciens ; certains intègrent un jeton d'API Edgegap dans le client de jeu, utilisez-les donc uniquement pour des tests locaux.
Git : Unity nécessite un client Git (2.14.0 ou plus récent) dans votre PATH pour installer des packages à partir d'une URL Git, comme le plugin Edgegap. macOS en possède généralement déjà un (Xcode Command Line Tools) ; sur Windows, installez Git.
2. Jouer en local
Créez le serveur avec Tools → Edgegap → Build Linux Dedicated Server. La build est générée dans Builds/EdgegapServer/. Exécutez-la ensuite dans Docker, depuis le dossier du projet d'exemple :
docker build --platform linux/amd64 -t fishnet-server:local .
docker run --rm -p 7770:7770 fishnet-server:local
Le journal indique Edgegap Server | Starting server on 0.0.0.0:7770. et Not running on Edgegap, self-stop disabled.
Créez le client WebGL depuis File → Build Settings, ou en ligne de commande :
Unity -batchmode -quit -projectPath . -executeMethod EdgegapServerBuild.BuildClient -edgegapClientTarget webgl
Hébergez Builds/Client/webgl, par exemple avec python -m http.server 8080, ouvrez http://localhost:8080 dans deux onglets et sélectionnez Start Game dans chacun. Les valeurs par défaut (localhost, 7770, Direct Use Wss désactivé) permettent de se connecter au serveur local.
3. Mettez le serveur de jeu sur Edgegap
Poussez l'image vers votre registre Edgegap. La page Registre de conteneurs contient votre projet, votre nom d'utilisateur et votre jeton :
docker login registry.edgegap.com
docker build --platform linux/amd64 -t registry.edgegap.com/<project>/fishnet-server:v1 .
docker push registry.edgegap.com/<project>/fishnet-server:v1
Dans le tableau de bord, créez une application (la configuration du matchmaker de l'exemple attend fishnet-webgl-matchmaker) et une version v1 pour cette image :
Port : nom
gameport, port7770, protocole WS, Mise à niveau TLS activée. Edgegap gère TLS, donc les navigateurs se connectent avecwss://tandis que le serveur communique enwsbrut.Nom d'utilisateur et jeton du registre de conteneurs définis, sinon les déploiements ne parviendront pas à récupérer l'image.
Utilisez une nouvelle balise d'image pour chaque build, jamais latest.
4. Jouer sur un serveur Edgegap
Déployez la version depuis le tableau de bord, près de chez vous. Lorsqu'elle est Ready :
Sur l'objet
MatchmakingSystemdans la scèneMainMenu, définissez Direct Address sur le nom d'hôte du déploiement (<id>.pr.edgegap.net, et non son adresse IP), Direct Port sur son port externe, et cochez Direct Use Wss.Recompilez le client WebGL, hébergez-le et jouez dans deux onglets.
Le port externe change à chaque déploiement, lisez-le donc à chaque fois. Le serveur arrête son déploiement 120 secondes après son démarrage si personne ne le rejoint, et 30 secondes après le départ du dernier joueur.
5. Ajoutez-le à votre propre jeu FishNet
L'exemple sert de référence fonctionnelle : votre agent de programmation peut copier ses fichiers testés au lieu de les écrire de zéro. Quatre modifications permettent d'exécuter un jeu de navigateur FishNet sur Edgegap :
Le serveur démarre de lui-même.
Assets/Edgegap/EdgegapServerLifecycle.csdémarre FishNet sur un port fixe dans les builds de serveur. Désactivez Start On Headless surServerManager, afin que la même scène fonctionne pour les builds client et serveur.Le serveur s'arrête de lui-même. Le même script lit les variables injectées par Edgegap et arrête le déploiement lorsqu'il est vide, ce qui interrompt la facturation.
Il survit aux changements de scène.
Assets/Edgegap/EdgegapPersistence.csmaintient l'objetEdgegapactif à travers les chargements de scène FishNet. Sans cela, l'arrêt automatique du serveur disparaît avec la scène de menu.Les navigateurs se connectent en toute sécurité. Bayou sur 7770, un port WS avec TLS Upgrade sur la version de l'application, et des clients qui se connectent avec
wss://au nom d'hôte (MatchmakingSystem.cs,EdgegapMatchmakingClient.cs).
Ensuite, conteneurisez le serveur en utilisant le Dockerfile de l'exemple comme modèle, puis créez la version de l'application comme à l'étape 3.
Avec votre agent :
« Charge la compétence edgegap, puis edgegap-fishnet. En utilisant github.com/edgegap/netcode-game-sample-unity-fishnet-hashgrid/tree/main/Fishnet_v4.1.6R_WebGL_Matchmaker comme référence, fais de mon jeu FishNet un jeu WebGL avec serveur dédié : Bayou sur 7770, le cycle de vie du serveur Edgegap, les scripts de persistance et de client de matchmaking, Start On Headless désactivé, wss vers le nom d'hôte sur le client, et une configuration de matchmaker sans règle de latence et avec mes origines web dans allowed_cors_origins. »
Pour chaque étape en détail, manuellement, consultez le guide d'intégration Fish-Networking. Pour les règles de navigateur applicables à tout netcode Unity, consultez Unity WebGL.
6. Activez le Matchmaker Edgegap
Le matchmaker regroupe les joueurs, démarre un serveur Edgegap à proximité d'eux et fournit son adresse à chaque client. Dans l'échantillon, il est désactivé jusqu'à ce que vous le cochiez.
Dans
matchmaker-config.json, définissezapplication.nameetversionavec votre application et votre version, puis répertoriez chaque adresse web qui dessert votre build WebGL dansallowed_cors_origins(le fichier contienthttp://localhost:8080).Dans le tableau de bord, ouvrez Matchmaker, sélectionnez Create Matchmaker, téléversez le fichier et sélectionnez Create and Start.
Dans
MainMenu, copiez l'API URL et l'Auth Token dans Base Url et Auth Token sur le Edgegap Matchmaking Client de l'objetEdgegap. Le jeton d'authentification peut être intégré en toute sécurité dans le client. Cochez Use Edgegap Matchmaker surMatchmakingSystem.Recompilez le client, diffusez-le à partir d'une origine autorisée, ouvrez deux onglets et sélectionnez Start Game dans les deux.
Deux règles pour les jeux par navigateur, déjà présentes dans la configuration de l'échantillon :
Aucune règle de latence. Les navigateurs ne peuvent pas envoyer de requêtes ping aux balises de latence d'Edgegap, Edgegap localise donc le serveur à partir des adresses IP des joueurs.
Indiquez vos origines. Si elles ne figurent pas dans
allowed_cors_origins, le navigateur bloque les réponses du matchmaker.
Le profil casual associe 2 à 4 joueurs. Lorsque vous publiez un nouveau build de serveur, envoyez un nouveau tag, créez une nouvelle version de l'application, puis, dans le matchmaker, effectuez Stop → Edit application.version → Start.
Limites connues
Testez avec deux joueurs. Le profil s'étend à 1 joueur après 30 secondes, mais lors des tests d'Edgegap, un joueur seul n'obtenait un serveur que lorsque le ticket approchait de son expiration de 5 minutes.
Niveau gratuit. Le matchmaker redémarre toutes les 3 heures (l'URL et le jeton restent les mêmes), et un seul déploiement s'exécute à la fois. Un déploiement de test oublié bloque le matchmaking.
Aucune vérification de ticket sur le serveur pour le moment. Le serveur ne vérifie pas si un client qui se connecte détient l'un des tickets du match (
MM_TICKET_IDS), et il n'y a pas de remplissage ultérieur (backfill). Ces deux points sont les prochaines étapes pour un véritable jeu.Le mode direct est manuel. Sans le matchmaker, vous devez copier le nom d'hôte et le port de chaque déploiement dans le client, puis recompiler.
Ce qui a été testé
Testé de bout en bout sur Edgegap le 15 octobre 2026, avec Unity 2021.3.45f2, FishNet 4.1.6R, Bayou, le SDK Edgegap Unity 3.5.5 avec le correctif POST intégré dans la version 3.5.6, et le matchmaker 3.3.2 sur l'offre gratuite :
Matchmaker : deux onglets WebGL ont été mis en correspondance, ont obtenu le même serveur, se sont connectés via
wss://avec mise à niveau TLS, et ont joué.Arrêt automatique : après le match, le serveur a interrompu son propre déploiement.
Local : le serveur Docker enregistre
Starting server on 0.0.0.0:7770.et accepte les clients WebGL surlocalhost.
Le 21 octobre 2026, l'exemple a été déplacé vers la branche main du SDK (3.5.6 ou ultérieure), qui intègre le même correctif. Clients de bureau via Bayou : devrait fonctionner, ne faisait pas partie de l'exécution testée.
Questions Fréquemment Posées
Questions sur l'exécution de l'exemple SpaceEdge de FishNet dans le navigateur sur Edgegap.
Un jeu FishNet WebGL peut-il se connecter à un serveur dédié ?
Oui, avec le transport WebSocket Bayou. Le serveur exécute des WebSockets standards sur le port 7770, la mise à niveau TLS d'Edgegap ajoute la couche sécurisée, et le navigateur se connecte avec wss:// au nom d'hôte du déploiement. C'est exactement ce que fait SpaceEdge.
Ai-je besoin d'Edgegap Matchmaker pour jouer à SpaceEdge en ligne ?
Non. Par défaut, l'échantillon se connecte directement à une adresse de serveur et à un port que vous définissez, vous permettant ainsi de tester par rapport à un déploiement que vous lancez depuis le tableau de bord. Cochez Use Edgegap Matchmaker pour que les joueurs soient regroupés et connectés automatiquement.
Le client SpaceEdge détient-il un jeton d'API Edgegap ?
Non. En mode matchmaker, il utilise uniquement le jeton d'authentification du matchmaker, qui peut être intégré aux clients en toute sécurité. Les anciens dossiers du même référentiel appellent l'API Edgegap depuis le client, utilisez-les donc uniquement pour des tests locaux.
Pourquoi le système de matchmaking échoue-t-il sur Unity 2021.3 ?
Avant Unity 2022.3, Edgegap Unity SDK 3.5.5 et les versions antérieures envoient un JSON de ticket que le matchmaker rejette avec une erreur HTTP 400. Utilisez le SDK 3.5.6 ou une version ultérieure ; l'échantillon suit la branche principale du SDK.

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.









