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 ?

