L'exemple Incremental de PurrNet est un petit jeu multijoueur Unity : foncez à travers les arbres, aspirez le butin, ramenez-le à votre base et achetez des améliorations. Le fork d'Edgegap l'exécute sur des serveurs de jeu dédiés, donc aucun joueur n'héberge.
Le jeu lui-même ne change pas : les scènes, les prefabs et le code de gameplay restent tels que PurrNet les a écrits, à l'exception d'une ligne. Tout ce qui est spécifique à Edgegap se trouve dans son propre dossier Assets/Edgegap/ et s'ajoute au démarrage du jeu. Dans l'éditeur, le mode lecture conserve le flux habituel d'hôte et de clone ParrelSync de PurrNet.
Ce qui est nouveau dans le fork :
Matchmaking optionnel. Désactivé par défaut : les clients se connectent à une adresse et un port. Activez le Matchmaker Edgegap, et les joueurs cliquent sur Find Match à la place.
Des serveurs qui s'arrêtent lorsque les joueurs partent. Chaque serveur arrête son propre déploiement 30 secondes après le départ du dernier joueur, ou après 120 secondes si personne ne rejoint. Les serveurs inactifs ne coûtent rien.
Le réseau d'Edgegap s'étend sur plus de 615 emplacements Edge Cloud (en savoir plus). Lorsque le matchmaker est activé, chaque serveur démarre à l'emplacement disponible le plus adapté pour ses joueurs et n'est facturé que pendant qu'il fonctionne.
Cloner l'exemple : Fork de l'exemple Incremental sur GitHub
Guide complet : ajoutez Edgegap à votre propre jeu PurrNet grâce au guide d'intégration PurrNet
Plateformes : builds pour ordinateurs de bureau Windows, macOS et Linux (UDP). Jeu original par PurrNet, licence MIT ; graphismes par Kenney.nl.
Comment ça fonctionne
Le serveur dédié Linux démarre le serveur de PurrNet sur le port UDP 5000 et attend les joueurs.
Connexion directe (par défaut) : chaque client saisit l'hôte et le port du serveur, puis clique sur Connect.
Matchmaker (optionnel) : chaque client clique sur Find Match et envoie un ticket. Le Matchmaker Edgegap regroupe 2 à 4 joueurs, démarre un serveur près d'eux et envoie son adresse à chaque client.
Les joueurs coupent des arbres, ramassent du bois et achètent des améliorations sur le même serveur.
Lorsque tout le monde est parti, le serveur attend 30 secondes, puis arrête son propre déploiement.
Ce que le fork a modifié :
Chemin | Ce que cela fait |
|---|---|
| S'exécute avant le chargement de la scène. Dans les builds, désactive le démarrage automatique de PurrNet et ajoute les composants ci-dessous. |
| Builds serveur : démarre le serveur sur |
| Builds client : adresse et port, ou Find Match. Recharge la scène en cas de déconnexion. |
| Mode matchmaker : crée un ticket, attend son serveur, se connecte. |
| Tous les paramètres : mode, ports, URL du matchmaker et jeton d'authentification. |
| Tools → Edgegap → Build Linux Dedicated Server, ainsi que les builds en ligne de commande. |
| Image du serveur et configuration du matchmaker. |
| Le seul changement en amont : |

Échantillon incrémental de Purrnet, où le joueur coupe des arbres et rapporte le butin à sa base, en utilisant l'hébergement et l'orchestration de serveurs dédiés d'Edgegap.
1. Avant de commencer
Un compte Edgegap gratuit. Aucune carte de crédit n'est requise pour tester.
Unity 6 (
6000.3.x) avec Linux Build Support (Mono) et Linux Dedicated Server Build Support, ainsi que le module pour la plateforme de votre client.Docker Desktop, en cours d'exécution.
Clonez le fork et ouvrez-le dans Unity.
Git : Unity a besoin d'un client Git (2.14.0 ou plus récent) sur 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 d'abord en local
Compilez le serveur avec Tools → Edgegap → Build Linux Dedicated Server. Il est généré dans Builds/EdgegapServer/. Exécutez-le ensuite dans Docker :
docker build --platform linux/amd64 -t purrnet-incremental:local .
docker run --rm -p 5000:5000/udp purrnet-incremental:local
Le journal affiche Edgegap Server | Starting server on 0.0.0.0:5000.
Compilez le client (File → Build Profiles, n'importe quelle plateforme de bureau) et lancez-le deux fois. Chaque fenêtre affiche le panneau de connexion avec 127.0.0.1 et 5000. Cliquez sur Connect dans les deux fenêtres. Le serveur consigne Edgegap Server | 2 player(s) connected.
3. Mettre le serveur sur Edgegap
Poussez l'image vers votre registre Edgegap. Votre projet, nom d'utilisateur et jeton se trouvent sur la page Container Registry :
docker login registry.edgegap.com
docker build --platform linux/amd64 -t registry.edgegap.com/<project>/purrnet-incremental:v1 .
docker push registry.edgegap.com/<project>/purrnet-incremental:v1
Utilisez une nouvelle balise pour chaque build, jamais latest.
Dans le tableau de bord, créez une application, puis une version pour cette image :
Un port : nom
gameport, 5000, UDP.Votre nom d'utilisateur et votre jeton de registre, sinon les déploiements ne pourront pas récupérer l'image.
4. Jouer sur un serveur Edgegap
Sélectionnez Déployer sur la page de version. Lorsque le déploiement est prêt, notez son hôte (<id>.pr.edgegap.net) et le port externe de gameport. Il change à chaque déploiement.
Démarrez deux clients, saisissez cet hôte et ce port, puis cliquez sur Connecter. Une fois que les deux joueurs ont quitté la partie, le serveur arrête son propre déploiement après 30 secondes.
Pour les tests scriptés, les clients peuvent se connecter directement depuis la ligne de commande :
Game.exe -screen-fullscreen 0 -edgegapAddress <id>.pr.edgegap.net -edgegapPort <external port> -edgegapConnect
5. Ajoutez-le à votre propre jeu PurrNet
Le fork est une référence fonctionnelle : votre agent de codage peut copier ses fichiers testés au lieu de les écrire de zéro. Quatre modifications permettent à un jeu PurrNet de fonctionner sur Edgegap :
Le SDK Unity d'Edgegap.
Packages/manifest.jsonajoutecom.edgegap.unity-sdkdepuis son dépôt Git.Un serveur qui démarre et s'arrête tout seul.
Assets/Edgegap/EdgegapBootstrap.csdésactive le démarrage automatique de PurrNet dans les builds ;EdgegapServerLifecycle.csdémarre le serveur sur le port 5000 et arrête le déploiement lorsqu'il est vide.Un client qui se connecte à une adresse obtenue au moment de l'exécution.
EdgegapConnectPanel.cspour la connexion directe,EdgegapMatchmakingClient.cspour Find Match. Ou appelezFindMatch()depuis votre propre bouton Play.Une logique serveur qui n'a pas besoin d'hôte. Un
[ObserversRpc]qui configure l'état du serveur a besoin derunLocally: true. Sans cela, le serveur de l'échantillon Incremental ne faisait jamais apparaître d'arbre.
Ensuite, conteneurisez le serveur en prenant le Dockerfile du fork comme modèle, et créez la version de l'application comme à l'étape 3.
Avec votre agent :
« Charge la compétence edgegap, puis edgegap-purrnet. En utilisant github.com/edgegap/netcode-game-sample-unity-purrnet-incremental comme référence, ajoute le bootstrap Edgegap, le cycle de vie du serveur, le panneau de connexion et le client de matchmaking à mon projet PurrNet, corrige tout ObserversRpc qui configure l'état du serveur, et vérifie que cela fonctionne localement avec un serveur et deux clients. »
Pour chaque étape détaillée, manuellement, consultez le guide d'intégration PurrNet.
6. Activer le matchmaking (facultatif)
Le matchmaker est désactivé par défaut. Activez-le une fois que la connexion directe fonctionne :
Dans
matchmaker-config.json, définissezapplication.nameetversionavec votre application et votre version.Tableau de bord → Matchmaker → Créer un Matchmaker → téléversez le fichier → Créer et démarrer.
Dans
Assets/Edgegap/Resources/EdgegapSettings.asset, cochez Utiliser le Matchmaker Edgegap, puis collez l'URL de l'API et le Jeton d'authentification du matchmaker. Le jeton d'authentification n'autorise que les appels de matchmaking, il peut donc être inclus sans risque dans le client de jeu.Recompilez le client, lancez-le deux fois et cliquez sur Trouver une partie dans les deux instances. Le statut passe de recherche à partie trouvée, puis à connexion en cours et enfin connecté, les deux sur le même serveur.
Le profil casual associe 2 à 4 joueurs. Après 30 secondes, il accepte également un joueur seul, mais un ticket isolé risque de n'obtenir qu'un serveur proche de son expiration de 5 minutes ; testez donc avec deux clients.
Vous déployez une nouvelle version du serveur ? Poussez un nouveau tag, créez une nouvelle version de l'application, puis dans le matchmaker, faites Arrêter → Modifier application.version → Démarrer.
Pour ajouter le matchmaking à votre propre jeu PurrNet, suivez le guide d'intégration de PurrNet.
Limites connues
Bureau uniquement. L'échantillon utilise UDP, que les navigateurs ne peuvent pas ouvrir. WebGL nécessiterait le
WebTransportde PurrNet et un port WebSocket avec mise à niveau TLS. Non testé.Les clients sont approuvés. Comme en amont, les déplacements et la récolte sont gérés par les clients (règles réseau permissives de PurrNet). Un jeu compétitif devrait utiliser des règles plus strictes.
Pas d'accès en cours de partie. Les joueurs qui arrivent après le début d'un match n'y sont pas ajoutés (pas de réapprovisionnement), et le serveur ne vérifie pas le ticket de matchmaking du client (
MM_TICKET_IDS).Niveau gratuit : un seul déploiement à la fois, et le matchmaker redémarre toutes les 3 heures (son URL et son jeton restent les mêmes).
Ce qui a été testé
Testé de bout en bout sur Edgegap avec Unity 6000.3.11f1, le commit PurrNet a311c06, le UDPTransport de PurrNet et le SDK Unity Edgegap 3.5.5. Dernier push sur GitHub le 19 octobre 2026.
Connexion directe : deux joueurs se sont connectés et ont joué sur le même serveur Edgegap.
Matchmaker : les deux joueurs ont été associés sur le même serveur environ 35 secondes après avoir cliqué sur Find Match.
Arrêt automatique : à chaque fois, le serveur a arrêté son propre déploiement après le départ des joueurs.
Questions Fréquemment Posées
Questions concernant l'exécution de l'échantillon Incremental de PurrNet sur Edgegap.
Ai-je besoin du matchmaking pour exécuter l'échantillon PurrNet Incremental sur Edgegap ?
Non. C'est désactivé par défaut : les clients se connectent à l'hôte et au port d'un serveur. Activez le Matchmaker Edgegap dans l'asset des paramètres de l'exemple lorsque vous souhaitez que les joueurs cliquent plutôt sur Trouver un match.
Le fork d'Edgegap modifie-t-il l'échantillon de PurrNet ?
Une seule ligne. ResourceSpawner.InitSeed reçoit runLocally: true, ainsi un serveur dédié génère des arbres. Tout le reste se trouve dans Assets/Edgegap/ et s'ajoute à l'exécution, de sorte que la scène n'est pas modifiée.
Quand le serveur de jeu de la démo s'arrête-t-il ?
Il arrête son propre déploiement Edgegap 30 secondes après le départ du dernier joueur, ou 120 secondes après son démarrage si personne ne le rejoint. Vous ne payez que lorsque des joueurs sont dessus.
L'échantillon PurrNet Incremental peut-il fonctionner dans un navigateur ?
Pas encore. Il utilise l'UDP, que les navigateurs ne peuvent pas ouvrir. Une version WebGL nécessiterait le WebTransport de PurrNet et un port WebSocket avec mise à niveau TLS sur Edgegap, ce qui n'a pas été testé.

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.









