Photon Bolt

Ce guide vous aidera à créer un serveur sans interface (headless) sur Edgegap pour un projet Unity utilisant Photon Bolt comme solution réseau.

Dans ce guide, nous utiliserons un projet de démonstration personnalisé comme exemple.

Préparation du projet Unity

Cloner le projet Unity

La premiĂšre Ă©tape consiste Ă  cloner le projet de jeu dĂ©mo d’Edgegap depuis git. Vous pouvez le faire avec cette commande dans votre invite de commande :

La commande créera un dossier contenant le projet source Unity, appelé demo-game.

Une fois le processus terminĂ©, vous pouvez ouvrir Unity Hub et ajouter le projet en appuyant sur le bouton Add dans l’onglet Projects, puis en trouvant le dossier du projet sur votre ordinateur :

Pour ouvrir le projet, vous devez avoir la bonne version d’Unity installĂ©e. Dans notre cas, nous utiliserons Unity 2020.3.3. Vous pouvez la trouver en visitant l’archive des tĂ©lĂ©chargements d’Unity : https://unity3d.com/get-unity/download/archive.

Une fois l’installation terminĂ©e, vous pouvez maintenant sĂ©lectionner la nouvelle version d’Unity via le menu dĂ©roulant adjacent au nom du projet dans Unity Hub :

Vous pouvez maintenant ouvrir le projet Unity pour passer aux étapes suivantes.

Configuration du jeu

Configuration de Photon Bolt

Ajouter l’App ID Photon et compiler Bolt

Pour que le jeu communique avec les services de Photon, vous devrez ajouter une application Ă  votre tableau de bord Photon. Si vous n’avez pas encore de compte chez Photon, vous pouvez facilement en crĂ©er un sur leur site web.

Une fois connectĂ©, vous pouvez crĂ©er une application et lui donner un nom. Chaque application possĂšde son App IDunique. Vous devrez copier et coller cet ID dans la fenĂȘtre Bolt Settings au sein du projet Unity :

Une fois l’ID saisi, vous pouvez fermer la fenĂȘtre Bolt Settings. Dans le mĂȘme menu Bolt qu’auparavant, vous devrez exĂ©cuter deux actions : Update Prefab Database et Compile Assembly, respectivement.

À ce stade, vous devriez pouvoir lancer la scĂšne StartScene du jeu sans aucune erreur ni avertissement dans la console de dĂ©bogage. Cependant, vous ne pouvez pas encore commencer Ă  jouer sur un serveur.

Cela conclut les modifications génériques nécessaires au fonctionnement de votre Photon Bolt. Ces changements fonctionneront à la fois pour les clients et les serveurs de votre jeu.

PrĂ©paration d’un serveur sans interface (headless)

Pour que votre application fonctionne efficacement avec des conteneurs, vous devrez apporter quelques changements à votre jeu pour créer une version « serveur headless ». Pour la plupart des projets, cela ne nécessitera que quelques étapes simples.

Exigences pour le projet Unity

Tout d’abord, il est essentiel de noter que le mode serveur headless de Photon Bolt nĂ©cessite le chargement d’une scĂšne contenant un script appelĂ© HeadlessServerManager.

Le script générique, non modifié, en question (tiré de la documentation de Bolt) ressemble à ceci :

Habituellement, il sera placĂ© dans un GameObject vide d’une scĂšne vide (qui ne sera utilisĂ©e que pour les builds de serveur headless).

Le script a été légÚrement modifié pour cette démo afin de correspondre à la structure du projet et il est actuellement placé dans un GameObject vide dans une scÚne située dans Assets/Scenes/BoltHeadlessServer.

Ajout de contrĂŽles du serveur headless Ă  votre jeu

Le script ci-dessus contient une mĂ©thode utilitaire statique appelĂ©e IsHeadlessMode, Ă  utiliser pour vĂ©rifier si le jeu en cours d’exĂ©cution est headless ou non. Si vous mettez Ă  jour un projet existant, vous voudrez peut-ĂȘtre ajouter cette vĂ©rification pour retirer ou ajouter des fonctionnalitĂ©s pour le serveur headless, comme empĂȘcher l’instanciation d’un personnage joueur.

ParamĂštres de build

Dans l'onglet Buid Settings du projet, ajoutez la scĂšne BoltHeadlessServer tout en haut, afin qu’elle soit la premiĂšre chargĂ©e par le serveur.

Ensuite, choisissez Linux comme plateforme cible et cochez Server Build.

Vous pouvez maintenant faire un build de votre jeu sous Linux avec les paramĂštres ci-dessus.

Pour les builds client, n’oubliez pas de dĂ©cocher la scĂšne BoltHeadlessServer et l’option IsServer afin que votre jeu fonctionne correctement.

Pour chaque Ă©tape concernant la crĂ©ation d’un serveur headless pour Photon Bolt, plus de dĂ©tails sont disponibles dans la documentation officielle.

Créer un conteneur pour le serveur

Si vous n’ĂȘtes pas familier avec Docker ou les conteneurs, vous pouvez en apprendre davantage en consultant Qu’est-ce que Docker ?

Pour crĂ©er un conteneur Ă  partir d’un projet Unity, veuillez vous rĂ©fĂ©rer Ă  Unity sur Docker.

Ajouter votre application Ă  Edgegap

Vous pouvez maintenant ajouter votre conteneur Ă  Edgegap afin qu’il puisse ĂȘtre hĂ©bergĂ© partout oĂč se trouvent vos joueurs.

Si vous ne savez pas comment ajouter une application Ă  Edgegap, veuillez vous rĂ©fĂ©rer au tutoriel d’intĂ©gration.

Cependant, vous devrez vous assurer que le nom de votre application est demo-game et qu’elle possĂšde une version appelĂ©e v1. Sinon, vous devrez mettre Ă  jour ces valeurs dans le script situĂ© dans Assets/Scripts/StaginController.cs.

De plus, dans le Assets/Scripts/StaginController.cs script, vous trouverez une variable constante appelĂ©e API_TOKEN. Vous devrez crĂ©er un jeton depuis votre compte Edgegap et le coller sous forme de chaĂźne dans cette variable. Ce jeton sera utilisĂ© pour autoriser les requĂȘtes API envoyĂ©es Ă  Edgegap.

Voici le script en question, avec le jeton d’Edgegap en bleu et les paramùtres de l’application en rouge :

Jouer au jeu de démonstration

Enfin, vous pouvez lancer un build client du jeu dĂ©mo pour y jouer. Vous pouvez soit crĂ©er une version client du jeu et la lancer, soit y jouer directement depuis l’interface d’Unity. Assurez-vous simplement de le dĂ©marrer sur la StartScene scĂšne.

Une fois lancĂ©, une interface apparaĂźtra. Elle contient un champ de texte en haut, deux gros boutons et une Ă©tiquette en bas Ă  gauche de l’écran montrant l’état actuel de Bolt.

Vous pouvez copier votre API Token depuis Edgegap dans le champ de texte en haut. Une fois votre Token collé, vous pouvez maintenant appuyer sur le bouton Request Server pour envoyer un appel API à Edgegap afin de démarrer un serveur.

Quelques secondes plus tard, vous devriez voir l’étiquette en bas de l’interface afficher le nombre de serveurs disponibles. Vous allez maintenant appuyer sur le bouton Connect to a random server pour rejoindre une partie et commencer Ă  jouer.

Mis Ă  jour

Ce contenu vous a-t-il Ă©tĂ© utile ?