Comment ajouter des serveurs dédiés aux jeux multijoueurs Unreal

Pour les développeurs à la recherche de solutions serveur dédiées ("autorisées"), EOS recommande d'être intégré avec des services tiers comme Edgegap.

-> Cet article est basé sur la documentation de démarrage. Si vous rencontrez des problèmes ou des incohérences, veuillez vous assurer de vous référer au guide original, car il est plus fréquemment mis à jour.

0. Préparation

Vous êtes confiant dans vos constructions de serveur ? Passez à ✏️ Personnaliser l'image du serveur et Fonctionnalités avancées.

Déployez votre premier serveur dédié sur Edgegap

À la fin de ce guide, vous aurez déployé un serveur dédié avec Edgegap sans frais.

1. Connectez votre compte Edgegap

☑️ Pour commencer, nous aurons besoin que vous créiez un compte gratuit avec Edgegap. Pas de carte de crédit requise.

☑️ Une fois connecté, créez un jeton API Edgegap pour connecter votre plugin.

✅ Vous pouvez maintenant procéder à l'étape suivante.

2. Configurer les constructions de serveurs de jeu

Que vous utilisiez une machine Windows, Mac ou Linux, vous devez construire votre serveur pour le runtime Linux, car la plupart des fournisseurs de cloud de nos jours (y compris Edgegap) fonctionnent sur Linux. Ne vous inquiétez pas, aucune connaissance de Linux n'est requise pour accomplir cela avec notre plugin.

☑️ Construisez votre version d'Unreal Engine à partir du code source sur votre machine de développement,

installez la branche de version spécifique (par ex. 5.5) pour construire sur une base stable,

utilisez un disque dur à état solide (SSD) pour accélérer les constructions (de ~12+ heures à ~2+ heures),

ceci est seulement requis la première fois et chaque fois que vous mettez à jour votre version d'Unreal Engine.

Téléchargez la branche avec un client git ! Utiliser l'interface de github téléchargera toujours la branche release instable.

☑️ Installez l'outil de compilation croisée Unreal pour construire des serveurs de jeux pour Linux.

☑️ Redémarrez votre machine de développement, sinon vous rencontrerez des erreurs plus tard !

☑️ Désactivez la vérification de compatibilité de version d'Unreal Engine pour les serveurs dédiés en ajoutant ceci à votre DefaultEngine.ini :

[ConsoleVariables]

net.IgnoreNetworkChecksumMismatch=1

net.CurrentHandshakeVersion=2

net.MinHandshakeVersion=2

net.VerifyNetSessionID=0

net.VerifyNetClientID=0

☑️ Vérifiez que votre serveur utilise OnlineSubsystemUtils.IpNetDriver comme pilote par défaut ou pilote de secours dans DefaultEngine.ini .

☑️ Redémarrez Unreal Engine pour recharger les dernières modifications.

☑️ Créez un script cible de serveur dédié en copiant votre fichier <PROJECT>Editor.Target.cs dans le dossier racine du projet et en renommant la copie en <PROJECT>Server.Target.cs.

☑️ Remplacez toutes les références au mot Editor par Server dans votre script cible de serveur.

Lors de l'utilisation de l'exemple de jeu Lyra Starter, assurez-vous de dupliquer et de renommer votre LyraGameEOS.Target.cs fichier et le nom de classe contenant pour qu'ils correspondent à votre nom de projet.

☑️ Activez les journaux de serveur de sortie standard en ajoutant des remplacements dans votre script cible de serveur :

Copier

☑️ Pour réduire l'egress et l'utilisation des ressources du serveur, définissez MaxNetTickRate et NetServerMaxTickRate dans [/Script/OnlineSubsystemUtils.IpNetDriver] et reconstruisez :

Copier

✅ Vous pouvez maintenant procéder à l'étape suivante.

3. Construire et télécharger sur Edgegap

Travailler en équipe de développeurs signifie partager votre code. Lorsque les choses ne se passent pas bien, la dernière chose que vous voulez entendre est "cela fonctionne sur ma machine". Les serveurs de jeux doivent fonctionner de manière fiable sur n'importe quelle machine, car des serveurs de jeux réussis fonctionneront sur des milliers de machines serveur à travers le monde.

Pour aider à rendre votre serveur fiable, nous utilisons Docker - un logiciel de virtualisation pour garantir que toutes vos dépendances de code de serveur, jusqu'au niveau du système d'exploitation, seront toujours exactement les mêmes, peu importe comment ou où le serveur est lancé.

☑️ Vérifiez que Docker est installé et en cours d'exécution.

☑️ Reconstruisez notre plugin pour votre version Unreal Engine personnalisée construite à partir de la source.

☑️ Copiez le plugin compilé dans votre dossier Plugins à la racine de votre projet Unreal (pas du moteur).

☑️ Lancez votre nouveau Unreal Engine depuis Visual Studio et ouvrez l'élément d'édition de la barre d'outils / Plugins.

☑️ Activez notre plugin dans la section INSTALLÉ / Autres.

☑️ Configurez notre plugin en ouvrant l'élément d'édition Édition / Paramètres du projet / Edgegap :

Pressez toujours Entrée après avoir modifié des valeurs d'entrée pour vous assurer qu'elles sont correctement enregistrées.

  • Le jeton API est nécessaire pour télécharger votre serveur sur Edgegap, obtenez-en un en cliquant sur Obtenir le jeton.

  • Le nom de l'application sur Edgegap peut correspondre à votre nom de projet ou être personnalisé, assurez-vous d'utiliser uniquement des lettres minuscules, des chiffres ou des caractères tiret - et soulignement _.

  • Le chemin de l'image fournit éventuellement une icône personnalisée pour votre serveur de jeu sur Edgegap, sautez cela pour l'instant.

  • Le nom de version est utile pour suivre la compatibilité client/serveur et revenir en arrière en cas de problèmes. Les horodatages sont une grande option pour les noms de version des applications, par ex. 2024.01.30-16.50.20-UTC. Plusieurs versions d'application peuvent pointer vers le même tag d'image, tel que v1.1.0 et dev. En savoir plus sur Les applications et les versions plus tard.

Ne réutilisez pas la dernière version

pour éviter que notre système ne déploie une image obsolète (mise en cache).


☑️ Cliquez sur Créer une application. Compléter cette étape résultera en une nouvelle application apparaissant dans Edgegap Dashboard.

☑️ Ignorez les paramètres du registre de conteneur personnalisés pour l'instant, vous pouvez utiliser un registre tiers plus tard si vous le souhaitez.

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur Construire et pousser, attendez que le processus soit terminé et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unreal. Compléter cette étape fera que un nouveau dossier apparaîtra dans la racine de votre projet - Saved/LinuxServer. De plus, une nouvelle image apparaît maintenant dans votre page de tableau de bord Edgegap Container Registry sous votre dépôt, et une nouvelle 🏷️ Versions d'app apparaît dans votre tableau de bord sous votre application.

✅ Vous pouvez maintenant procéder à l'étape suivante.

4. Déployez un serveur sur Edgegap

C'est la dernière étape de ce guide, après quoi vous aurez un serveur déployé sur le cloud Edgegap, auquel des joueurs du monde entier pourront se connecter.

☑️ Ouvrez la page de tableau de bord des déploiements et cliquez sur Créer un déploiement.

☑️ Vous pouvez sélectionner ce qui suit (ou garder les valeurs par défaut) :

  • Application sur Edgegap de l'étape précédente.

  • Version d'application sur Edgegap de l'étape précédente.

  • Nombre de joueurs aléatoires émulant plusieurs joueurs essayant de jouer ensemble.

  • Zone de joueur pour émuler le matchmaking dans une zone spécifique, 3 zones sont proposées pour les tests dans le tableau de bord pour simplifier, 615+ zones disponibles via API, apprenez-en plus sur Déploiements et Matchmaking plus tard.

☑️ Une fois que vous êtes prêt, cliquez sur Déployer dans le cloud, attendez d'atteindre #3-déploiement-prêt. Assurez-vous que vos Journaux de conteneur ne montrent aucune erreur et que vos Métriques de conteneur n'indiquent pas une utilisation à 100% des ressources (vCPU ou mémoire), sinon de nouvelles connexions de joueurs peuvent être rejetées, ou votre serveur peut être coincé dans une boucle de redémarrage. Voir les étapes de dépannage ci-dessous pour résoudre tout problème.

☑️ Compléter cette étape résultera en un nouveau déploiement démarré sur votre compte Edgegap. Trouvez les détails de votre nouveau déploiement dans notre tableau de bord.

☑️ Maintenant, nous allons effectuer le dernier test et connecter votre client de jeu Unreal Engine à votre déploiement cloud. Prenez votre Hôte de déploiement à la place de l'IP du serveur et le port externe du déploiement, ouvrez la console Unreal dans le client de jeu (tilde ~) et tapez open {host}:{port} .

Le port externe de votre déploiement sur le cloud Edgegap sera choisi au hasard, afin qu'un éventuel attaquant (pirate) soit ralenti et détecté avant de pouvoir causer des dommages.

Désactivez le VPN lors des tests pour des conditions plus réalistes et recevez un déploiement à faible latence.

☑️ Une fois que vous vérifiez que vous pouvez vous connecter à votre déploiement sans problèmes et que vous avez fini de tester, arrêtez votre déploiement pour libérer de la capacité dans votre compte pour la prochaine construction. Si vous rencontrez des problèmes, inspectez les journaux de tableau de bord de votre déploiement. Si vous ne parvenez pas à trouver le problème, nous sommes disponibles dans notre Communauté Discord et heureux d'aider.

🙌 Félicitations pour votre premier déploiement sur Edgegap ! Si vous souhaitez en savoir plus, continuez à lire. Assurez-vous de vérifier notre matchmaking pour regrouper les joueurs avant de déployer un serveur de jeu.

Écrit par

l'équipe Edgegap

Sources et/ou collaboration de contenu avec

Services en ligne épiques