Mon workflow avec Unreal Engine

Il y a quelques années j’écrivais un article qui expliquait ma manière de travailler avec le moteur Unity. Cette fois-ci, je vais vous expliquer comment je travail avec Unreal Engine. Le workflow avec Unreal est effectivement un peu plus lourd. Avec Unity, beaucoup d’assets sont au format texte (prefabs, scripts, etc…), alors qu’avec Unreal, il n’y a que les fichiers de configuration et le code C++ qui est au format texte, le reste, c’est du binaire !

Gestion du code source : Git + Gitlfs + Github

Git n’est pas le meilleur outil pour versionner les sources d’une production Unity ou Unreal, mais peut y arriver quand même pas trop mal en utilisant git-lfs. La première chose à faire est de configurer le fichier .gitignore et enfin le fichier .gitattributes. Evidemment ces fichiers pourront être modifiés pour coller à votre projet.

Ensuite il faut stocker le projet, pour cela j’utilise github avec un bucket de stockage et bande passante pour git-lfs. Si votre projet fait plus de 1 Go, c’est obligatoire ! Le pack coûte $60 et vous permet d’avoir 50GB de stockage et 600GB de bande passante. C’est suffisant quand on travail sur un ou deux gros projet, mais attention à bien surveiller ce dashboard.

Exemple sur mon compte github du bucket 50Gb

Outil de gestion des sources : Fork

Fork est superbe outil de gestion des sources

Fork est un utilitaire graphique pour git qui permet de faire toutes les tâches basiques pour gérer le versionning de son projet. J’avais par habitude d’utiliser uniquement la ligne de commande, mais j’avoue n’utiliser presque que Fork désormais 🙂

Ecriture du code source : Rider for Unreal Engine

Si il y avait un outil à ABSOLUMENT tester dans cet article, c’est bien Rider pour Unreal Engine. Il est actuellement en preview public (et donc gratuit) et sera intégré à l’offre Rider une fois en phase finale. Pour faire simple, il y a l’avant et l’après Rider. Avec Visual Studio développer sur UE4 en C++ n’est absolument pas amusant ! C’est lent, la complétion tarde à venir, c’est une des pires expériences que j’ai eu en développement pour être honnête…

Rider change tout, au prix d’un chargement un peu long (comptez 15/20 secondes le temps qu’il parse tout), le confort ensuite est à la hauteur d’un projet C# avec Visual Studio (ou Rider). Complétion ultra rapide, inspection du code source d’Unreal instantané avec la touche F12, aide au formatage et au nommage des variables, refactoring avancé… On se trouve donc à écrire un peu plus de C++ avec Rider car c’est assez plaisant 🙂

Management de projet : Github

C’est probablement le point faible de mon workflow… Le management de projet avec github fonctionne, que l’on soit bien d’accord. Mais il y a pas grand chose. On va pouvoir créer des versions avec des dates échéance, des issues, etc.. Mais il n’y a pas de time tracking, pas de reporting financier, pas de vue avancées, etc…

J’ai expérimenté plusieurs outils comme Jira et YouTrack mais ce sont des outils un peu lourd, franchement je n’ai pas trouvé l’outil qui va bien encore pour ça. Vous utilisez quoi vous ?

Distribution Unreal : Officielle + Sources Oculus

Compilation des sources à gauche, le PC étant inutilisable, le Mac permet de se divertir en attendant 😉

Il est parfois nécessaire de compiler les sources du moteur pour accéder à certaines fonctionnalités. Je trouve dommage de ne pas pouvoir compiler un serveur dédié avec la distribution de base par exemple, et c’est bien dans ce cas de figure qu’on compile généralement les sources.

Ensuite il y a le cas Oculus, qui tarde à chaque itération du moteur à intégrer son travail. Pour avoir un SDK et des outils Oculus à jour, il faut donc compiler le fork Unreal par Oculus. Cela permet par exemple à l’heure où j’écris ces lignes d’avoir accès à l’Application Spacewarp, entre autre..

Compiler les sources de la branche 5.x prend à peine 2h30 sur ma machine !

Conclusion

Avoir un bon workflow avec Unreal est primordial si vous voulez mener à bien votre projet. C’est évidement le cas avec n’importe quel outil ! Si il y a bien une chose à retenir de cet article, c’est qu’il faut essayer Rider, vous ne verrez plus le code dans Unreal de la même manière après ça croyez moi.