
Comment ajouter des serveurs dédiés à l'échantillon Boss Room de NGO d'Unity avec le fork d'Edgegap
Ce tutoriel explique comment ajouter des serveurs dédiés à l'échantillon NGO Boss Room de Unity en utilisant le fork d'Edgegap, afin que vous puissiez héberger votre jeu multijoueur sur des serveurs lancés à la demande, dans une région proche de vos joueurs, dans le monde entier. L'échantillon Unity de base fonctionne uniquement en peer-to-peer, via des salons (Lobbies) ; ce fork est prêt à fonctionner en tant que serveur dédié, avec le plug-in Unity d'Edgegap déjà intégré.
Nous vous recommandons également de suivre notre documentation.
Partie 1 - Configuration & Installation
Avant d'ouvrir quoi que ce soit dans Unity, nous devons cloner le projet. Cela nécessite Git et Git LFS. Git LFS est ce qui permet de récupérer les fichiers graphiques volumineux de l'exemple, et un clonage sans cela vous laissera avec un projet vide. Sur macOS, nous installons les deux via Homebrew.
Installez les prérequis pour votre système d'exploitation :
macOS
Linux (basé sur Debian/Ubuntu)
Windows (PowerShell)
Confirmez que les outils sont installés :
Maintenant, clonez le projet. Nous le conservons dans un dossier simple et bien organisé. La commande git clone est la même sur tous les systèmes d'exploitation ; seule la syntaxe du dossier diffère. Git nomme le dossier cloné d'après le dépôt, nous le renommons donc en bossroom par la suite.
macOS / Linux
Windows (PowerShell)
Pour confirmer que les fichiers volumineux ont été correctement récupérés, vérifiez la taille du dossier Assets. Elle devrait s'élever à plusieurs centaines de mégaoctets. Si elle affiche zéro, cela signifie que Git LFS n'a pas récupéré les vrais fichiers. Veuillez donc revoir l'étape d'installation ci-dessus avant de continuer.

Une fois le projet cloné, ouvrez-le dans Unity avec la version exacte de l'éditeur sur laquelle le fork a été construit :
Ouvrez Unity Hub et sélectionnez "Add", puis "Add project from disk".
Recherchez et sélectionnez le dossier "bossroom" que vous venez de cloner.
Unity Hub vous signalera que le projet nécessite une version spécifique de l'éditeur. Au moment d'écrire ces lignes, ce fork est configuré pour Unity 6000.0.54f1. Installez cette version exacte plutôt que la dernière version LTS, car une version plus récente risquerait de casser certaines parties de l'exemple. Lors de l'installation de l'éditeur, veillez à inclure les dépendances du serveur Linux : "Linux Build Support" (y compris Mono et IL2CPP) et "Linux Dedicated Server Build Support".
Ouvrez le projet. Lors de cette première ouverture, il est probable qu'Unity passe en Safe Mode. C'est tout à fait normal et cela ne nécessite aucune réparation : un clone tout frais ne contient pas le package Unity Gaming Services dont dépend le client de matchmaking de l'exemple, package que nous allons ajouter maintenant.
Dans la barre de navigation supérieure, sélectionnez "Window", puis "Package Manager".
Définissez la source du package sur "Unity Registry".
Recherchez "Multiplayer Services" et sélectionnez "Install".
Ce package résout les références manquantes et fait sortir le projet du Safe Mode. Confirmez que la console n'affiche aucune erreur de compilation avant de continuer ; une compilation propre est indispensable pour tout ce qui suit.
Votre exemple est maintenant installé et s'ouvre sur la version d'Unity recommandée.
Partie 2 - Edgegap : Hébergement et orchestration de serveurs de jeux
Pour ajouter un serveur de jeu dédié à votre projet, ouvrez le plugin Unity d'Edgegap pour l'hébergement de serveurs de jeu. Il est déjà intégré dans ce fork. S'il n'est pas présent dans votre propre projet, ajoutez-le via le gestionnaire de packages d'Unity (Package Manager) en utilisant le lien figurant dans notre documentation.
La première étape consiste à ajouter un jeton (token) :
Sélectionnez "Get Token". Une fenêtre de navigateur s'ouvre.
Connectez-vous à la plateforme en utilisant votre méthode d'authentification unique (SSO) préférée. Vous devrez peut-être créer une organisation ; une fois cette étape complétée, votre jeton apparaît automatiquement. Copiez-le.
De retour dans le plugin, collez le jeton et sélectionnez "Validate Token".
Le reste des options du plugin s'affiche alors.
Tout d'abord, confirmez que vous avez installé les dépendances du serveur Linux, que nous avons installées avec l'éditeur dans la partie 1.
Ensuite, définissez Linux comme cible de build :
Sélectionnez "Edit Settings" pour ouvrir les paramètres de build d'Unity.
Basculez la plateforme vers "Linux Server".
Confirmez que vos scènes de jeu sont incluses et dans le bon ordre. Ici, la liste commence par "Startup", suivie de la scène "MainMenu", puis des scènes de gameplay.
De retour dans le plugin, compilez votre serveur à l'aide du bouton "Build Server". Après quelques secondes, la compilation réussit.
Sous "Containerize your Server", assurez-vous que Docker est en cours d'exécution en sélectionnant "Validate". Si Docker n'est pas installé, installez d'abord Docker Desktop ; c'est l'outil standard pour conteneuriser les serveurs de jeu et autres applications. Nous ignorons les paramètres optionnels pour ce tutoriel ; les détails de leur utilisation se trouvent dans notre documentation. Sélectionnez "Containerize with Docker". Après un court instant, la conteneurisation est réussie.
Vous pourriez maintenant tester votre serveur de jeu localement, mais nous allons ici passer directement au test en ligne. Téléversez le serveur conteneurisé sur la plateforme d'Edgegap :
Assurez-vous que l'application correcte est sélectionnée, puis sélectionnez "Upload Image and Create App Version". Après quelques secondes, un navigateur s'ouvre sur la plateforme.
La page "Create Version" est préremplie. Vous pouvez configurer des paramètres optionnels, notamment l'allocation de ressources vCPU, la mémoire, et plus encore, mais nous créons une nouvelle version avec les paramètres par défaut. Faites défiler vers le bas et sélectionnez "Submit".
La fenêtre contextuelle "Create Port" s'ouvre. Confirmez le port par défaut et le type de protocole de votre netcode. Notez que pour cet exemple, ce port est UDP sur 7777. Cela peut être différent avec d'autres netcodes. Veillez donc à consulter la documentation de votre netcode pour connaître le port exact correspondant à votre cas d'utilisation. Sélectionnez "Submit".

Enfin, déployez le serveur que vous venez de conteneuriser :
De retour dans Unity, sélectionnez l'application correcte et sa version dans la liste.
Sélectionnez "Deploy to Cloud". Cela déploie automatiquement le serveur de jeu sur la plateforme d'Edgegap.
Après quelques secondes de chargement, votre serveur de jeu est prêt et en ligne.
Partie 3 - Tests
Testons le déploiement. Commencez par sélectionner le déploiement pour ouvrir sa page de détails. Cette page contient une série d'informations sur votre serveur en cours d'exécution.
Pour vous connecter, faites défiler vers le bas et copiez l'IP de l'hôte (Host IP), et notez le port externe, par exemple 32699 dans notre cas.
Ensuite, lancez la scène de votre jeu et sélectionnez "Join with IP" (Rejoindre avec IP). Collez votre adresse IP et saisissez votre port externe. Ignorez les avertissements de développement, sélectionnez votre personnage et lancez le jeu. Il se connecte automatiquement à votre serveur de jeu hébergé sur le réseau d'Edgegap.
Félicitations, vous jouez maintenant à l'échantillon Boss Room d'Unity, modifié par Edgegap pour fonctionner sur des serveurs dédiés, en ligne.
Partie 4 - Étapes suivantes
C'est tout ce qu'il y a à savoir pour ajouter des serveurs dédiés à l'échantillon Boss Room d'Unity. Cela vous donne un projet Netcode pour GameObjects prêt à l'emploi hébergé sur Edgegap, déployé sur demande dans le monde entier.
Bien que jouer en solo soit satisfaisant, vous voudrez probablement jouer et faire des tests en ligne à deux joueurs. "Rejoindre avec l'IP" est une méthode valable, mais nous vous recommandons plutôt de configurer un matchmaker. Nous proposons un tutoriel pour déployer des serveurs dédiés à partir de l'UGS Matchmaker de Unity en utilisant ce même échantillon de Boss Room, ainsi qu'un tutoriel pour le matchmaker d'Edgegap, gratuit et entièrement géré.
Si vous avez des questions, rejoignez notre Discord.







