# Davantage de méthodes de compilation

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

{% hint style="success" %}
Voir [](https://docs.edgegap.com/docs.edgegap.com-fr/unreal-engine "mention") pour vos premiers pas avec l'hébergement de serveurs de jeu Unreal Engine sur Edgegap.
{% endhint %}

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

1. [#build-from-containers](#build-from-containers "mention") est une méthode rapide et automatisée adaptée à l'intégration continue.
2. [#build-from-plugin](#build-from-plugin "mention") 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 <a href="#scripts-before-starting" id="scripts-before-starting"></a>

### 1. Configurer le projet <a href="#scripts-configure-game-builds" id="scripts-configure-game-builds"></a>

### 2. Construire et publier <a href="#scripts-build-and-upload-to-edgegap" id="scripts-build-and-upload-to-edgegap"></a>

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

{% embed url="<https://github.com/edgegap/edgegap-unreal-buildutils>" %}

☑️ **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](https://app.edgegap.com/registry-management/repositories/list) 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](https://app.edgegap.com/registry-management/repositories/list).

☑️ Vous serez automatiquement redirigé vers **créer un nouveau** [#app-versions](https://docs.edgegap.com/docs.edgegap.com-fr/learn/orchestration/application-and-versions#app-versions "mention") dans [tableau de bord](https://app.edgegap.com/application-management/applications/list)**.**

✅ Vous pouvez maintenant passer à l'étape suivante, ou aller directement à [#test-your-server-locally](#test-your-server-locally "mention").

## ⚡ Construire depuis le plugin <a href="#build-from-plugin" id="build-from-plugin"></a>

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

### Préparation <a href="#plugin-before-starting" id="plugin-before-starting"></a>

<details>

<summary>Configurez votre environnement de développement</summary>

* [Téléchargez le code source d'Unreal Engine](https://dev.epicgames.com/documentation/en-us/unreal-engine/downloading-unreal-engine-source-code#downloadingthesourcecode).
* [Installez Visual Studio](https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine).

</details>

<details>

<summary>Installez un plugin officiel Edgegap pour Unreal Engine</summary>

Choisissez l'un des plugins officiels :

* télécharger [#integration-kit](https://docs.edgegap.com/docs.edgegap.com-fr/developer-tools#integration-kit "mention"),
* ou télécharger [#legacy-plugin](https://docs.edgegap.com/docs.edgegap.com-fr/developer-tools#legacy-plugin "mention").

</details>

### 1. Configurer le projet <a href="#scripts-configure-game-builds" id="scripts-configure-game-builds"></a>

☑️ [Construisez votre version d'Unreal Engine à partir des sources](https://dev.epicgames.com/documentation/en-us/unreal-engine/building-unreal-engine-from-source) sur votre machine de développement,

* installez [branche de version spécifique (par ex. ](https://github.com/EpicGames/UnrealEngine/tree/5.5)[`5.5`](https://github.com/EpicGames/UnrealEngine/tree/5.5)[)](https://github.com/EpicGames/UnrealEngine/tree/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.

{% hint style="warning" %}
**Téléchargez la branche avec un client git !** L'utilisation de l'interface GitHub téléchargera toujours la branche instable `de version` .
{% endhint %}

☑️ [Installez la chaîne d'outils de cross-compilation Unreal](https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-requirements-for-unreal-engine) pour construire des serveurs de jeu pour Linux.

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

### 2. Construire et publier <a href="#plugin-build-and-upload-to-edgegap" id="plugin-build-and-upload-to-edgegap"></a>

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

☑️ [Reconstruisez notre plugin](https://dev.epicgames.com/community/learning/tutorials/qz93/unreal-engine-building-plugins) 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**:

{% hint style="warning" %}
Appuyez toujours sur Entrée après avoir modifié les valeurs saisies pour **vous assurer qu'elles sont correctement enregistrées**.
{% endhint %}

* **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 [application-and-versions](https://docs.edgegap.com/docs.edgegap.com-fr/learn/orchestration/application-and-versions "mention") plus tard.

{% hint style="warning" %}
**Ne réutilisez pas `latest` version** pour empêcher notre système de déployer une image obsolète (mise en cache).
{% endhint %}

☑️ 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](https://app.edgegap.com/application-management/applications/list).

☑️ 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](https://app.edgegap.com/registry-management/repositories/list), et un nouveau [#app-versions](https://docs.edgegap.com/docs.edgegap.com-fr/learn/orchestration/application-and-versions#app-versions "mention") **apparaît dans votre** [tableau de bord sous votre application](https://app.edgegap.com/application-management/applications/list)**.**

☑️ Dans la nouvelle version de votre application, définissez la variable d'environnement `TARGET_FILE_NAME`  pour correspondre à votre `DefaultServerTarget`  valeur de l'étape [#id-2.-configure-game-server-builds-1](#id-2.-configure-game-server-builds-1 "mention").

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

## 👉 Prochaines étapes

Continuez vers [#id-5.-deploy-to-cloud](https://docs.edgegap.com/docs.edgegap.com-fr/unreal-engine/..#id-5.-deploy-to-cloud "mention") avec notre [Déploiement via le tableau de bord](https://app.edgegap.com/deployment-management/deployments/list) 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.
