
Guide sur l'utilisation des services en ligne Epic (EOS) avec la plateforme d'orchestration de serveurs de jeu d'Edgegap
Dans ce tutoriel, nous allons couvrir chaque étape de la méthode la plus simple et la plus rapide pour ajouter un serveur de jeu dédié à n'importe quel projet Unreal. L'extension Docker d'Edgegap est la seule solution qui vous aide à éviter le processus très peu fiable de compilation d'Unreal à partir du code source, ce qui signifie que l'ajout de serveurs de jeu prend quelques minutes au lieu de plusieurs heures. Vous économiserez ainsi un temps précieux.
En parallèle de cette vidéo, nous vous recommandons de suivre notre documentation.
C'est parti !
Partie 1 - Configuration
Il y a cinq courtes exigences pour configurer votre projet.
La première est de créer votre compte Edgegap gratuit. Il suffit d'aller sur app.edgegap.com, de sélectionner votre méthode de connexion comme Google ou GitHub comme montré ici, et de créer votre organisation.
La deuxième étape consiste à installer et exécuter Docker Desktop. Docker est utilisé par des millions d'utilisateurs et d'organisations. Téléchargez-le simplement et suivez la procédure d'installation.
Troisièmement, vous devez télécharger l'extension Docker d'Edgegap. En utilisant le lien dans la documentation, ou dans les commentaires de cette vidéo, ou directement dans le marché des extensions de Docker, sélectionnez « installer ». Après quelques secondes de chargement, l'extension est maintenant disponible à utiliser.
La quatrième exigence est d'accéder aux ressources Unreal Engine sur GitHub. Epic Games décrit ce processus sur leur site web, mais la version courte est de vous connecter, ou de créer, un compte GitHub. Ensuite, dans votre compte Epic Game’s, sélectionnez le menu « Compte lié » et liez votre compte Epic Game’s à GitHub comme suit. Faites défiler l'accord de licence et acceptez les termes. Sélectionnez « Autoriser Epic Games » sur la fenêtre contextuelle suivante. Enfin, vous recevrez un email de GitHub vous demandant de rejoindre l'organisation « @EpicGames ». Cliquez sur le lien et sélectionnez le bouton « Rejoindre Epic Games ».
Enfin, la dernière étape consiste à générer votre Jeton d'accès personnel GitHub. En utilisant l'URL fournie dans nos documents ou dans les commentaires, entrez une note pour référence future et sélectionnez la case « readpackage ». Faites défiler la page et cliquez sur « Générer un jeton ».
Partie 2 - Edgegap : Hébergement et orchestration de serveurs de jeux
Passons maintenant à Unreal.
Dans cet exemple, nous allons utiliser l’échantillon multijoueur d’Unreal Engine – Lyra.
Pour commencer, sélectionnez simplement le bouton « Ajouter à ma bibliothèque ».
L’échantillon apparaîtra dans le lanceur Epic Games, sous l’onglet d’Unreal Engine, dans la section Fab Library. Sélectionnez simplement « Créer un projet » pour Lyra. Ou ouvrez votre propre projet personnel ici, si c’est celui que vous utilisez.
Ici, nous choisirons le nom du projet et l’emplacement sur l’ordinateur. Ensuite, sélectionnez « Créer » pour initialiser le projet.
Après un certain temps, le projet apparaît dans notre bibliothèque Unreal. Ouvrez-le.
C’est Lyra dans l’éditeur d’Unreal Engine.
Pour indiquer à Unreal quelle carte doit être utilisée sur le serveur de jeu, nous allons aller dans « Paramètres du projet », puis sélectionner « Cartes & Modes » et enfin sélectionner « ShooterGym » comme carte par défaut du serveur, comme ceci. Cela peut prendre quelques secondes pour se charger.
Maintenant, configurons le projet pour les serveurs dédiés sous Linux.
Tout d'abord, ouvrez l’extension Docker d’Edgegap pour les serveurs de jeux.
Saisissez le nom de votre projet et le Jeton Edgegap. Si vous n'en avez pas depuis votre compte, sélectionnez « Obtenir un jeton d’initialisation rapide » qui ouvre votre navigateur sur le tableau de bord d’Edgegap si vous êtes connecté. Copiez simplement le jeton dans la fenêtre contextuelle.
De retour dans l’extension, collez le jeton. Le bouton « Valider le jeton » devrait apparaître, cliquez dessus pour confirmer sa validité.
Votre plateforme est automatiquement sélectionnée, à savoir Unreal Engine.
Ajoutez votre projet à l’extension en sélectionnant le bouton « Parcourir » et en sélectionnant l’emplacement du projet parmi vos dossiers.
Une fois sélectionné, cliquez sur le bouton « Créer un projet » pour commencer la phase de construction de votre serveur de jeu.
L’extension renseigne automatiquement la version d’Unreal Engine utilisée par votre projet.
Maintenant, entrez le nom d’utilisateur de votre compte GitHub.
Ensuite, collez votre Jeton d'accès personnel GitHub généré précédemment. Il le validera automatiquement si c'est correct.
Quel que soit le système d’exploitation de votre machine, vous devrez construire votre serveur Linux. Pour ce faire, nous devons désactiver la vérification de compatibilité de version d’Unreal Engine pour les serveurs dédiés et définir IpNetDriver comme pilote par défaut ou pilote de secours pour le réseau de réplication.
Copiez l’extrait de code de notre documentation.
Ensuite, rendez-vous dans le fichier de configuration par défaut du moteur. Parmi votre projet, il devrait se trouver dans le dossier « Config » et nommé « DefaultEngine.ini ». Ouvrez le fichier avec votre IDE préféré.
Ici, collez simplement l’extrait de code complet à la fin du fichier.
Ensuite, nous devons créer un script de cible de serveur dédié en copiant le fichier <PROJECT>Editor.Target.cs dans le dossier racine du projet et en renommant la copie <PROJECT>Server.Target.cs. Remplacez toutes les références du mot « Editor » par le mot « Server » dans votre script de cible de serveur. Avec Lyra, nous avons déjà ce fichier cible, ajoutons simplement cet extrait de code pour activer les journaux dans les builds de livraison.
Concrètement, ce fichier devrait se trouver dans le dossier « Source » de votre projet, et ici nommé « LyraServer.Target ». Comme vous pouvez le voir, il n'y a aucune référence au mot « Editor », seulement « Server ». Nous sommes prêts à coller l’extrait de code à la fin du fichier.
Retournez à l’extension Docker d’Edgegap pour valider que les configurations ont été correctement saisies. Sélectionnez le bouton « Valider la configuration ».
Si vous avez correctement complété cette étape, les trois configurations devraient avoir une coche verte.
Cela nous permet de passer à la phase de construction du serveur de jeu.
Ici, nous pouvons afficher ou éditer les fichiers « Dockerfile », « dockerignore » et « StartServer.sh ». Bien que cela soit utile, nous allons garder tout cela aux paramètres par défaut pour cet exemple.
La prochaine étape est votre construction Docker. Cela inclut le nom de l’image et le tag. Lesquels nous garderons également par défaut.
Commençons à construire le projet en sélectionnant le bouton « Construire le projet ». Comme vous pouvez le voir, le processus démarre automatiquement.
Félicitations, vous avez ajouté un serveur de jeu dédié à votre jeu !
Partie 3 - Tests
Une fois le processus de construction terminé, nous sommes prêts à tester le serveur localement.
Sélectionnez la dernière version dans le menu déroulant “tag”.
Ensuite, sélectionnez simplement “Démarrer le serveur local” pour déployer le serveur en tant que conteneur sur votre Docker pour jouer localement.
Pour vérifier, nous reviendrons à notre exemple Lyra. En sélectionnant le menu déroulant à côté du bouton “play”, nous choisirons “Nouvelle Édition + Fenêtre” pour générer un joueur.
De retour dans l'éditeur principal, tapez “open” avec la cartographie des ports de votre conteneur local. Cela est codé en dur pour être 127.0.0.1 : 7777.
Ensuite, ouvrez la fenêtre créée précédemment, et l'exemple Lyra se connecte au serveur de jeu conteneurisé local. Prouvant que cela fonctionne, comme montré à l'écran.
Nous arrêterons de jouer dans l'éditeur et commencerons le processus pour déployer le serveur de jeu sur le réseau edge d'Edgegap.
Retournez à l'extension Docker et arrêtez le serveur local.
La dernière étape est de déployer le serveur de jeu conteneurisé sur la plateforme d'Edgegap.
Sélectionnez la version que vous souhaitez déployer et cliquez sur “Télécharger l'image”.
Après quelques secondes, une nouvelle fenêtre de navigateur s'ouvre vous invitant à créer une application.
Le nom est prérempli, et vous pouvez sélectionner une icône de votre choix. Cliquez sur “Créer l'application” pour continuer.
Ce sont les paramètres de déploiement de votre serveur de jeu, y compris les exigences en matière de ressources. Cela peut être personnalisé, mais nous garderons les paramètres par défaut pour l'instant.
Faites défiler vers le bas et sélectionnez “Soumettre”.
Ceci est l'option “Créer un port”, où un port et un protocole peuvent être sélectionnés. Encore une fois, nous utiliserons le port par défaut de 7777 et le protocole UDP pour l'instant. Sélectionnez “Soumettre”.
Retournez une fois de plus dans l'extension Docker, et sous la “Version de l'application Edgegap”, ouvrez le menu déroulant et assurez-vous que le nom correspond au déploiement que vous venez de créer.
Cliquez sur “Déployer sur le Cloud” pour déployer votre serveur de jeu. Voici la fenêtre des détails de votre déploiement. Faites défiler pour trouver l'URL de votre hôte et le port externe du serveur.
Copiez l'URL.
Retournez dans l'éditeur Unreal. Encore une fois, nous sélectionnerons “Nouvelle Édition + Fenêtre” pour générer un joueur.
Maintenant, tapez “open” et collez l'URL depuis la page de détails du déploiement.
Et voilà, Lyra est fonctionnel. Félicitations, vous jouez à votre jeu multijoueur en ligne !
Optionnellement, vous pouvez retourner à l'extension Docker et arrêter le déploiement pour tester.
Partie 4 - Prochaines étapes
Voici le processus d'intégration étape par étape à EOS Lobby en utilisant Edgegap à partir de notre documentation. Veillez à utiliser cette version, car elle est mise à jour plus fréquemment.
Ce guide vous montrera comment intégrer Edgegap pour fonctionner avec les lobbies EOS dans votre projet de jeu Unreal. Certaines étapes nécessiteront l'envoi de requêtes à notre API à l'aide d'un jeton, et les commandes curl fournies ci-dessous vous permettront de prévisualiser chacune de leurs réponses afin que vous puissiez déterminer comment les gérer dans votre code. Lorsque vous utilisez le jeton dans vos requêtes, veillez à conserver le mot-clé token.
Vous devrez également avoir une version d'application déjà configurée sur notre plateforme pour notre projet. Dans ce cas, nous vous recommandons d'utiliser le plugin Edgegap Unreal pour accélérer le processus de test. Pour plus d'informations sur le plugin, vous pouvez lire notre documentation ici.
Avertissement : Par mesure de sécurité, il n'est pas recommandé que le propriétaire du lobby EOS envoie des requêtes directement à l'API Edgegap dans un environnement de production, car le client a accès au jeton de l'API. Vous devriez plutôt utiliser un service distinct pour gérer ces requêtes.
1. Obtenir et stocker l'IP publique des joueurs
Pour commencer, chaque joueur qui rejoint un lobby - y compris le propriétaire du lobby - doit obtenir son IP publique et la stocker en tant que propriété de membre du lobby.
curl --location --request GET 'https://api.edgegap.com/v1/ip' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
2. Créer un déploiement
Une fois que le propriétaire du lobby décide que le match est prêt à commencer, une requête doit être envoyée pour créer un nouveau déploiement sur Edgegap, en utilisant les IP publiques stockées.
curl --location --request POST 'https://api.edgegap.com/v1/deploy' \
--header 'Content-Type: application/json' \
--header 'Authorization: [EDGEGAP_API_TOKEN]' \
--data-raw '{
"app_name": "[EDGEGAP_APP_NAME]",
"version_name": "[EDGEGAP_APP_VERSION]",
"ip_list": [
"[LOBBY_MEMBER_IP]"
]
}'
Ensuite, le propriétaire du lobby devra continuer à interroger le déploiement, en utilisant le request_id fourni dans la réponse de la requête de création de déploiement. Une fois que la réponse contient le current_status du déploiement défini sur READY, le propriétaire du lobby devra définir les valeurs d'IP et de port du déploiement en tant que propriétés du lobby EOS.
curl --location --request GET 'https://api.edgegap.com/v1/status/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
3. Se connecter au déploiement
Lorsque les joueurs reçoivent la notification indiquant que les valeurs d'IP et de port ont été attribuées, ils peuvent les comparer avec le cache du client, puis les utiliser pour se connecter au serveur afin de jouer le match.
4. Terminer le match et le déploiement
Une fois le match terminé, le propriétaire du lobby supprimera les valeurs d'IP et de port des propriétés du lobby EOS, ce qui informera tous les autres utilisateurs de se déconnecter proprement du serveur. Si l'application dispose de la configuration requise pour injecter des variables d'environnement, celles-ci peuvent être utilisées pour mettre fin au déploiement de l'intérieur à ce moment-là.
Pour mettre fin au déploiement depuis l'extérieur du serveur, une requête telle que la commande curl présentée ci-dessous peut être utilisée à la place.
curl --location --request DELETE 'https://api.edgegap.com/v1/stop/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
Si les joueurs restent dans le lobby, le propriétaire du lobby peut alors répéter les étapes à partir de la demande d'un nouveau déploiement afin de lancer un nouveau match avec les mêmes personnes.







