Tanks est l'un des jeux d'exemple de Mirror : les joueurs pilotent des tanks dans une arène et se tirent dessus. L'exemple d'Edgegap le compile pour le navigateur (WebGL) et exécute chaque match sur son propre serveur de jeu dédié.
Mirror et le jeu Tanks ne changent pas : l'exemple conserve le SimpleWebTransport de Mirror ainsi que la scène originale, et ajoute quelques scripts optionnels. Activez-les et les joueurs cliqueront sur Find Match au lieu de saisir une adresse de serveur.
Le matchmaker d'Edgegap regroupe les joueurs, puis démarre un serveur pour eux. Le réseau d'Edgegap couvre plus de 615 emplacements Edge Cloud (en savoir plus), et chaque serveur est déployé dans le meilleur emplacement disponible pour ses joueurs. Le navigateur se connecte via des WebSockets sécurisés, et le serveur s'arrête de lui-même lorsque la partie est vide.
Cloner l'exemple : exemple Mirror Tanks (WebGL) sur GitHub
Guide complet : ajoutez Edgegap à votre propre jeu Mirror grâce au guide d'intégration de Mirror Networking. Pour chaque étape spécifique au navigateur, consultez le guide Unity WebGL.
Plateformes : client WebGL dans le navigateur ; serveur dédié Linux. Unity 6.3 LTS (6000.3.11f1), Mirror 86.13.4. Tanks fait partie de Mirror, sous licence MIT.
Comment ça fonctionne
Un joueur ouvre le jeu dans le navigateur et clique sur Find Match. Le client envoie un ticket au matchmaker d'Edgegap.
Le matchmaker regroupe 2 à 4 joueurs. Les navigateurs ne pouvant pas envoyer de pings, il positionne le serveur à partir des adresses IP publiques des joueurs.
Edgegap démarre le serveur Tanks à proximité d'eux. Le serveur écoute les WebSockets sur le port 7778, et la mise à niveau TLS d'Edgegap place un certificat devant lui.
Chaque client reçoit le nom d'hôte et le port externe du serveur, et se connecte à
wss://{host name}:{port}, en réessayant pendant que le serveur démarre.Lorsque tout le monde est parti depuis 30 secondes, ou que personne ne rejoint dans les 2 minutes, le serveur arrête son propre déploiement.
Ce que l'exemple ajoute :
Chemin | Ce qu'il fait |
|---|---|
| Panneau Trouver une partie / Annuler. Crée le ticket, attend un serveur, connecte Mirror via |
| Serveur dédié uniquement. Lit les variables injectées par Edgegap et arrête le déploiement lorsque la partie est vide. |
| Attributs du ticket. Ajoutez des champs ici pour les règles personnalisées du matchmaker. |
| N'active les scripts que lorsque le SDK Edgegap Unity 3.5.5 ou une version plus récente est installé. Sans lui, ils se compilent sous forme de stubs vides. |
| Conserve les classes de données du SDK dans les builds IL2CPP (WebGL et serveur Linux). |
| Exemple de configuration du matchmaker, profil |

L'exemple Tanks de Mirror dans le navigateur, avec son serveur dédié sur Edgegap.
1. Avant de commencer
Un compte Edgegap gratuit. Aucune carte de crédit n'est requise pour tester.
Unity 6.3 LTS (l'exemple utilise 6000.3.11f1), avec Linux Build Support (Mono), Linux Build Support (IL2CPP), Linux Dedicated Server Build Support et Web Build Support ajoutés dans Unity Hub.
Docker Desktop, en cours d'exécution pendant que vous compilez le serveur.
Clonez l'exemple et ouvrez-le dans Unity. Le plugin Edgegap s'installe avec le projet.
Git : Unity a besoin d'un client Git (2.14.0 ou plus récent) sur votre PATH pour installer des paquets depuis une URL Git, tel que le plugin Edgegap. macOS en possède généralement déjà un (Outils en ligne de commande Xcode) ; sur Windows, installez Git.
2. Activez le matchmaking
Le Matchmaking est désactivé par défaut, afin que l'exemple s'ouvre et se compile sans le SDK Edgegap. Pour l'activer :
Tout d'abord, dans Window → Package Manager, sélectionnez +, puis Add package from git URL, et collez :
https://github.com/edgegap/edgegap-unity-sdk.git#3.5.5
Ouvrez ensuite la scène MirrorTanks, sélectionnez l'objet EdgegapMatchmaking et cochez la case à côté de son nom.
Faites cela avant de compiler le serveur, afin que le serveur inclue TanksMatchmakingServer et s'arrête de lui-même lorsque la partie est terminée.
3. Mettez le serveur de jeu sur Edgegap
Ouvrez Tools → Edgegap Server Hosting, connectez votre compte Edgegap, puis sélectionnez Build Server, Containerize with Docker et Upload Image and Create App Version.
Dans le navigateur, définissez le port de la version de l'application :
Port 7778, protocole WS, nom
gameport.Verifications activé et TLS Upgrade activé. TLS Upgrade attribue au serveur une adresse WebSocket sécurisée, afin que les navigateurs sur les pages https:// puissent y accéder. Vous n'avez pas besoin de votre propre certificat.
L'étape 4 du guide Unity WebGL présente en détail les écrans du plugin, ainsi que l'option d'agent.
4. Créez le système de matchmaking et jouez
Modifiez matchmaker-config.json à la racine du dépôt :
application.nameetapplication.version: votre application et votre version de l'étape 3.allowed_cors_origins: chaque adresse qui dessert votre build WebGL. L'exemple liste déjàhttp://localhost:8080. Le navigateur appelle directement le matchmaker, les autres origines sont donc bloquées.
Dans le tableau de bord, ouvrez Matchmaker, sélectionnez Create Matchmaker, téléversez le fichier et sélectionnez Create and Start. Lorsqu'il est ONLINE, copiez l'API URL et l'Auth Token dans Base URL et Auth Token sur TanksMatchmakingClient (sur l'objet EdgegapMatchmaking).
Générez la build pour le Web dans File → Build Profiles, puis diffusez le dossier de build à partir d'une origine autorisée :
python -m http.server 8080 --bind 127.0.0.1
Ouvrez http://localhost:8080 dans deux fenêtres de navigateur et cliquez sur Find Match dans chacune d'elles. Mettez chaque fenêtre au premier plan avant de cliquer : les onglets en arrière-plan ralentissent Unity WebGL. Les deux fenêtres rejoignent le même serveur Edgegap. Un joueur seul obtient un serveur au bout de 30 secondes, ce qui est utile pour les tests.
5. Ajoutez-le à votre propre jeu Mirror WebGL
L'exemple constitue une référence fonctionnelle : votre agent de codage peut copier ses fichiers testés au lieu de les écrire de zéro. Ces modifications permettent à un jeu WebGL Mirror de fonctionner avec le matchmaker d'Edgegap :
WebSockets sur un port fixe. SimpleWebTransport sur le port 7778, SSL désactivé sur le serveur,
wsssur le client. Mode Headless Start configuré sur Auto Start Server, et la scène de jeu activée dans les Build Settings (la scèneMirrorTanksde l'exemple).Un client de matchmaking. Crée un ticket, attend son serveur, puis se connecte à
wss://{host name}:{external port}avec des tentatives de reconnexion (Assets/EdgegapMatchmaking/TanksMatchmakingClient.cs). Les balises de latence restent désactivées dans le navigateur.Un serveur qui s'arrête automatiquement. Arrête le déploiement lorsque personne ne rejoint ou que tout le monde est parti, afin d'interrompre la facturation (
Assets/EdgegapMatchmaking/TanksMatchmakingServer.cs).SDK et stripping. SDK Unity Edgegap 3.5.5 ou plus récent (les versions antérieures font échouer la compilation WebGL), et
link.xmlpour IL2CPP.Une configuration de matchmaker sans règle de latence et avec vos origines dans
allowed_cors_origins(matchmaker-config.json).
Téléversez ensuite le serveur avec un port WS et TLS Upgrade, comme à l'étape 3.
Avec votre agent :
« Charge la compétence edgegap, puis edgegap-unity. En utilisant github.com/edgegap/netcode-game-sample-webgl-mirror-tanks comme référence, transforme mon jeu Mirror en un jeu WebGL sur serveur dédié avec SimpleWebTransport sur le port 7778, ajoute le client de matchmaking et l'arrêt automatique du serveur depuis son dossier Assets/EdgegapMatchmaking, et génère une configuration de matchmaker sans règle de latence et avec mes origines web dans allowed_cors_origins. »
Pour le détail de chaque étape manuelle, consultez le guide d'intégration Mirror Networking, ainsi que le guide Unity WebGL pour les spécificités liées au navigateur.
6. Comment le système de matchmaking place les joueurs et arrête les serveurs
Le profil tanks-webgl de l'échantillon est conçu pour le navigateur :
Taille du match : une équipe de 2 à 4 joueurs. Après 30 secondes dans la file d'attente, le minimum passe à 1, ce qui vous permet de tester seul. Supprimez cet élargissement pour une vraie partie.
Aucune règle de latence. Les navigateurs ne peuvent pas envoyer les pings que les jeux de bureau utilisent pour mesurer la latence. Le matchmaker localise le serveur à partir des adresses IP publiques des joueurs à la place.
Origines autorisées.
allowed_cors_originsrépertorie les pages autorisées à appeler le matchmaker. Ajoutez votre véritable hôte, par exemple votre page itch.io, avant de publier.Tickets abandonnés. Les navigateurs peuvent fermer un onglet sans en avertir le jeu, ainsi un ticket non apparié expire de lui-même après 5 minutes.
Le jeton d'authentification (Auth Token) est inclus dans le build client, comme pour tout jeu utilisant le matchmaker. Il ne donne aucun accès à votre compte Edgegap.
Le serveur arrête son propre déploiement, ce qui met fin à la facturation :
30 secondes après le départ du dernier joueur ;
lorsque personne ne rejoint dans les 2 minutes.
Lorsque vous téléversez une nouvelle version du serveur, mettez à jour application.version dans le matchmaker (Arrêter, Modifier, Démarrer), sinon les matchs continueront de déployer l'ancienne version. L'étape 6 du guide Unity WebGL aborde le matchmaker en détail.
Limites connues
Le Matchmaking est désactivé par défaut. Par défaut, l'échantillon ne comporte aucun SDK et l'objet EdgegapMatchmaking est inactif. Suivez l'étape 2 pour l'activer.
Le match ne se termine jamais de lui-même. Tanks n'a pas de manches ni de vainqueur, le serveur ne s'arrête donc que lorsqu'il est vide. Pour votre propre jeu, arrêtez le déploiement lorsque le match est terminé.
Aucun placement basé sur la latence dans le navigateur. Les serveurs sont placés à partir des adresses IP des joueurs. Le script client peut mesurer la latence dans les versions pour ordinateur de bureau avec une règle
latenciesdans un profil distinct : écrit mais non testé.L'extension solo est destinée aux tests. Avec l'exemple de profil, un joueur qui attend 30 secondes joue seul.
Ce qui a été testé
Testé de bout en bout sur Edgegap, deux fois, avant le 15 octobre 2026 (la pull request n° 1 de l'échantillon, fusionnée ce jour-là), sur Unity 6000.3.11f1 :
Boucle complète : deux clients WebGL servis depuis
http://localhost:8080, un matchmaker actif et une version de l'application avec mise à niveau WS et TLS sur le port 7778. Les deux clients ont été appariés, se sont connectés viawss://au port externe du déploiement dès la première tentative, et le serveur s'est arrêté de lui-même après leur départ.Matchmaking désactivé (par défaut) : la scène se charge sans aucun script manquant, et les builds de serveur WebGL et Linux réussissent.
Matchmaking activé (SDK 3.5.5) : les builds de serveur WebGL et Linux réussissent. Exécuté en dehors d'Edgegap, le serveur consigne « Not running on Edgegap, self-stop disabled » et continue de fonctionner.
Non testé : clients de bureau avec balises de latence, et hébergement du build WebGL sur itch.io avec cet échantillon.
Questions Fréquemment Posées
Questions sur l'exécution de l'exemple Tanks de Mirror dans le navigateur avec Edgegap.
Un jeu Mirror WebGL peut-il utiliser le matchmaking ?
Oui. Le matchmaker d'Edgegap fonctionne depuis le navigateur : le client envoie un ticket, le matchmaker démarre un serveur dédié à proximité des joueurs, et chaque client se connecte via wss://. Listez les pages qui hébergent votre jeu dans allowed_cors_origins et ignorez la règle de latence.
Quel transport Mirror fonctionne dans le navigateur ?
SimpleWebTransport. L'échantillon Tanks l'exécute sur le port 7778, avec SSL désactivé sur le serveur et wss sur le client. Sur Edgegap, configurez ce port sur WS avec TLS Upgrade activé, et Edgegap gère le certificat.
Pourquoi le matchmaking est-il désactivé dans l'échantillon Tanks ?
Ainsi, l'échantillon s'ouvre et se compile sans packages supplémentaires. Installez le SDK Unity Edgegap (3.5.5 ou plus récent), puis activez l'objet EdgegapMatchmaking dans la scène MirrorTanks. Désactivez-le pour désactiver à nouveau le matchmaking.
Les serveurs de Tanks continuent-ils de fonctionner après une partie ?
Non. Le serveur de l'échantillon arrête son propre déploiement 30 secondes après le départ du dernier joueur, ou après 2 minutes si personne ne le rejoint, afin que les serveurs vides ne vous soient pas facturés.

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.









