Plus de méthodes de build

Ces approches sont généralement plus lentes et nécessitent une compréhension approfondie d'Unreal Engine.

Explorez des méthodes de build alternatives adaptées aux utilisateurs plus avancés d'Unreal Engine et d'Edgegap :

  1. Plus de méthodes de build est une méthode rapide et automatisée adaptée à l'intégration continue.

  2. ⚡ Construire depuis le plugin est une méthode de build héritée nécessitant la construction d'Unreal Engine à partir des sources.

⚡ Construire avec des scripts

Construire avec des scripts est une méthode rapide, entièrement automatisée et facile, adaptée à l'intégration continue.

Préparation

Avant de commencer, assurez-vous de créer un compte gratuit chez Edgegap (aucune carte de crédit requise).

Configurez quelques éléments essentiels sur votre machine de développement :

Installer Docker Desktop (ou Docker CLI)
Accédez aux ressources Unreal Engine sur GitHub
Générer un jeton d'accès personnel GitHub (classique)
  • activer uniquement la permission [read:packages] ,

  • générer le jeton - conservez cette valeur en sécurité, vous ne la verrez plus.

1. Configurer le projet

Que vous utilisiez un ordinateur Windows, Mac ou Linux, vous devrez construire votre serveur pour l'exécution sous Linux, car la plupart des fournisseurs cloud aujourd'hui (y compris Edgegap) fonctionnent sous Linux. Ne vous inquiétez pas, aucune connaissance en Linux n'est requise.

☑️ Désactiver la vérification de compatibilité de version d'Unreal Engine pour les serveurs dédiés et définir IpNetDriver comme le pilote par défaut ou le pilote de secours pour le réseau de réplication :

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

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

☑️ Remplacez toute référence à mot Editor avec Serveur dans votre script de cible serveur.

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

✅ Vous pouvez maintenant passer à l'étape suivante.

Optionnel : Intégration Steam

Pour intégrer Steam, utiliser IpNetDriver comme votre pilote réseau par défaut et vérifier que le steamclient.so 64 bits pour Linux est copié dans l'image sur le chemin /home/ubuntu/.steam/sdk64/ .

Télécharger steamclient.so

Dockerfile
...
RUN mkdir -p /home/ubuntu/.steam/sdk64
COPY ./steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so
RUN chmod 755 /home/ubuntu/.steam/sdk64/steamclient.so
...

Assurez-vous de désactiver le réseau Steam, qui envoie des paquets via le relais Steam et peut provoquer des problèmes de connexion ou des pics de latence. Cela ne vous empêche pas d'utiliser d'autres fonctionnalités Steamworks ou de publier votre jeu sur la boutique Steam.

Config/DefaultEngine.ini
[OnlineSubsystemSteam]
bUseSteamNetworking=false

2. Construire et publier

Travailler en équipe de développeurs implique de partager votre code. Quand les choses tournent mal, la dernière chose que vous voulez entendre est « ça marche sur ma machine ». Les serveurs de jeu doivent fonctionner de manière fiable sur n'importe quelle machine, puisque les serveurs d'un jeu à succès tourneront sur des milliers de machines serveurs à travers le monde.

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

Nous recommandons de regarder "Ne jamais installer localement" (vidéo). Vous n'avez PAS besoin d'utiliser Dockerhub avec Docker. Docker ≠ Dockerhub. Considérez Docker comme un moteur de programmation et Dockerhub comme son App Store.

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

☑️ Téléchargez nos Edgegap Build Utils archive incluant :

  • scripts de build spécifiques à la plateforme :

    • BuildAndUpload.ps1 pour Windows,

    • BuildAndUpload.sh pour macOS et Linux,

  • Dockerfile - recette pour construire vos images Docker,

  • dockerignore - liste de fichiers non critiques à supprimer pour accélérer les builds,

  • StartServer.sh - script utilitaire gérant le cycle de vie d'Unreal Engine à l'exécution.

☑️ Déplacez le edgegap-unreal-buildutils dossier vers le répertoire racine de votre projet.

☑️ Éditez le BuildAndUpload script pour votre plateforme pour configurer :

  • identifiants GitHub utilisés pour récupérer des images Unreal Engine préconstruites pour les serveurs Linux,

  • détails du projet - version du moteur, configuration du serveur, nom du fichier .uproject,

  • Registre Edgegap identifiants utilisés pour téléverser vos builds terminés.

☑️ Exécutez le script modifié pour démarrer le processus de build et de téléversement. L'achèvement de cette étape ajoutera une nouvelle image dans votre page du tableau de bord Edgegap Container Registry dans votre dépôt.

☑️ Vous serez automatiquement redirigé vers créer un nouveau Applications et versions dans tableau de bord.

✅ Vous pouvez maintenant passer à l'étape suivante, ou aller directement à Plus de méthodes de build.

Dépannage et FAQ

ERREUR : échec de l'exécution de la fonction Build : le Dockerfile ne peut pas être vide

  • Certaines sources du plugin peuvent manquer Dockerfile et/ou StartServer.sh , veuillez récupérer une copie de ces fichiers depuis la version source GitHub de votre plugin vers votre plugin local.


open //./pipe/dockerDesktopLinuxEngine : Le système ne peut pas trouver le fichier spécifié.

  • Vérifiez que Docker est en cours d'exécution sur votre machine de développement.


format de référence invalide EdgegapLog : Avertissement : OnContainerizeCallback : Impossible de générer le conteneur, message : Échec

  • Vérifiez que le nom de votre application est défini et ne contient pas d'espaces en fin.

  • Assurez-vous d'appuyer sur Entrée pour confirmer la valeur saisie une fois l'édition terminée.


Impossible de trouver le fichier de règles de cible pour la cible « ProjectName » lors de la compilation d'un projet ?

  • Changez la configuration de build dans votre XYZServerTarget.cs fichier :

BuildConfig = EProjectPackagingBuildConfigurations::PPBC_Shipping;

403 Interdit, Impossible de pousser le conteneur, message : Échec

  • Veuillez vérifier que vos identifiants Docker sont correctement configurés.

  • Si vous utilisez le registre de conteneurs Edgegap, assurez-vous que le nom d'utilisateur n'inclut pas app-version-pull , qui est le profil n'autorisant que le téléchargement d'images. Votre profil devrait plutôt ressembler à l'adresse e-mail de votre compte.

  • Vérifiez que vous avez suffisamment d'espace libre dans Registre de conteneurs. Nous recommandons d'essayer de Plus de méthodes de build, et d'utiliser notre API pour supprimer les images plus anciennes. Les images sont stockées sur votre machine locale jusqu'à leur suppression pour les sauvegardes.

⚡ Construire depuis le plugin

Notre plugin hérité inclut des utilitaires avancés et nécessite la construction d'Unreal Engine à partir des sources.

Préparation

Avant de commencer, assurez-vous de créer un compte gratuit chez Edgegap (aucune carte de crédit requise).

Configurez quelques éléments essentiels sur votre machine de développement :

Installer Docker Desktop (ou Docker CLI)
Accédez aux ressources Unreal Engine sur GitHub
Configurez votre environnement de développement
Installez un plugin officiel Edgegap pour Unreal Engine

Choisissez l'un des plugins officiels :

1. Configurer le projet

Que vous utilisiez un ordinateur Windows, Mac ou Linux, vous devrez construire votre serveur pour l'exécution sous Linux, car la plupart des fournisseurs cloud aujourd'hui (y compris Edgegap) fonctionnent sous Linux. Ne vous inquiétez pas, aucune connaissance en Linux n'est requise.

☑️ Construisez votre version d'Unreal Engine à partir des sources sur votre machine de développement,

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

  • utilisez un disque SSD (Solid State Drive) pour accélérer les builds (de ~12+ heures à ~2+ heures),

  • cela n'est requis que la première fois et à chaque mise à niveau de votre version d'Unreal Engine.

☑️ Installez la chaîne d'outils de cross-compilation Unreal pour construire des serveurs de jeu pour Linux.

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

☑️ Désactiver la vérification de compatibilité de version d'Unreal Engine pour les serveurs dédiés et définir IpNetDriver comme le pilote par défaut ou le pilote de secours pour le réseau de réplication :

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

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

☑️ Remplacez toute référence à mot Editor avec Serveur dans votre script de cible serveur.

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

✅ Vous pouvez maintenant passer à l'étape suivante.

Optionnel : Intégration Steam

Pour intégrer Steam, utiliser IpNetDriver comme votre pilote réseau par défaut et vérifier que le steamclient.so 64 bits pour Linux est copié dans l'image sur le chemin /home/ubuntu/.steam/sdk64/ .

Télécharger steamclient.so

Dockerfile
...
RUN mkdir -p /home/ubuntu/.steam/sdk64
COPY ./steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so
RUN chmod 755 /home/ubuntu/.steam/sdk64/steamclient.so
...

Assurez-vous de désactiver le réseau Steam, qui envoie des paquets via le relais Steam et peut provoquer des problèmes de connexion ou des pics de latence. Cela ne vous empêche pas d'utiliser d'autres fonctionnalités Steamworks ou de publier votre jeu sur la boutique Steam.

Config/DefaultEngine.ini
[OnlineSubsystemSteam]
bUseSteamNetworking=false

2. Construire et publier

Travailler en équipe de développeurs implique de partager votre code. Quand les choses tournent mal, la dernière chose que vous voulez entendre est « ça marche sur ma machine ». Les serveurs de jeu doivent fonctionner de manière fiable sur n'importe quelle machine, puisque les serveurs d'un jeu à succès tourneront sur des milliers de machines serveurs à travers le monde.

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

Nous recommandons de regarder "Ne jamais installer localement" (vidéo). Vous n'avez PAS besoin d'utiliser Dockerhub avec Docker. Docker ≠ Dockerhub. Considérez Docker comme un moteur de programmation et Dockerhub comme son App Store.

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

☑️ Reconstruisez notre plugin pour votre version personnalisée d'Unreal Engine construite à partir des sources.

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

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

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

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

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

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

  • Chemin de l'image fournit éventuellement une icône personnalisée pour votre serveur de jeu sur Edgegap, passez pour l'instant.

  • Nom de la version est utile pour suivre la compatibilité client/serveur et revenir en arrière en cas de problème.

    • Les horodatages sont une excellente option pour les noms de version d'application, 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 Applications et versions plus tard.

☑️ Cliquez sur Créer l'application. L'achèvement de cette étape entraînera l'apparition d'une nouvelle application apparaissant dans Tableau de bord Edgegap.

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

☑️ Une fois satisfait de votre configuration, appuyez sur Construire et pousser, attendez que le processus se termine et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unreal. L'achèvement de cette étape entraînera la création d'un nouveau dossier apparaissant à la racine de votre projet - Saved/LinuxServer. De plus, une nouvelle image apparaît maintenant dans votre page du tableau de bord Edgegap Container Registry sous votre dépôt, et un nouveau Applications et versions apparaît dans votre tableau de bord sous votre application.

☑️ Dans la nouvelle version de votre application, définissez la variable d'environnement TARGET_FILE_NAME pour correspondre à votre DefaultServerTarget valeur de l'étape Plus de méthodes de build.

✅ Vous pouvez maintenant passer à l'étape suivante.

Dépannage et FAQ

ERREUR : échec de l'exécution de la fonction Build : le Dockerfile ne peut pas être vide

  • Certaines sources du plugin peuvent manquer Dockerfile et/ou StartServer.sh , veuillez récupérer une copie de ces fichiers depuis la version source GitHub de votre plugin vers votre plugin local.


open //./pipe/dockerDesktopLinuxEngine : Le système ne peut pas trouver le fichier spécifié.

  • Vérifiez que Docker est en cours d'exécution sur votre machine de développement.


format de référence invalide EdgegapLog : Avertissement : OnContainerizeCallback : Impossible de générer le conteneur, message : Échec

  • Vérifiez que le nom de votre application est défini et ne contient pas d'espaces en fin.

  • Assurez-vous d'appuyer sur Entrée pour confirmer la valeur saisie une fois l'édition terminée.


Impossible de trouver le fichier de règles de cible pour la cible « ProjectName » lors de la compilation d'un projet ?

  • Changez la configuration de build dans votre XYZServerTarget.cs fichier :

BuildConfig = EProjectPackagingBuildConfigurations::PPBC_Shipping;

403 Interdit, Impossible de pousser le conteneur, message : Échec

  • Veuillez vérifier que vos identifiants Docker sont correctement configurés.

  • Si vous utilisez le registre de conteneurs Edgegap, assurez-vous que le nom d'utilisateur n'inclut pas app-version-pull , qui est le profil n'autorisant que le téléchargement d'images. Votre profil devrait plutôt ressembler à l'adresse e-mail de votre compte.

  • Vérifiez que vous avez suffisamment d'espace libre dans Registre de conteneurs. Nous recommandons d'essayer de Plus de méthodes de build, et d'utiliser notre API pour supprimer les images plus anciennes. Les images sont stockées sur votre machine locale jusqu'à leur suppression pour les sauvegardes.

👉 Prochaines étapes

Continuez vers Unreal Engine avec notre Déploiement via le tableau de bord et découvrez-en davantage sur l'arrêt de vos déploiements, les variables injectées et la paramétrisation, ainsi que la découvrabilité des serveurs.

Mis à jour

Ce contenu vous a-t-il été utile ?