- Il ne s’agit pas d’un outil pour jouer une nouvelle base Factorio, mais d’un projet expérimental permettant d’explorer le fonctionnement d’une base 2D existante dans l’espace 3D d’UE5
- La création des assets suit le processus suivant à partir des sprites du jeu : modélisation dans Cinema4D, textures Photoshop, export FBX, puis application de shaders UE5
- Quand le mod FUE5 exporter exporte les données internes de Factorio en JSON, FUE5 lit les types de bâtiments, leurs orientations et les connexions de câbles pour reconstruire visuellement la base
- Les convoyeurs, trains et robots logistiques utilisent les Blueprints d’UE5 et des splines ; les trains se déplacent en reprenant les itinéraires préalablement calculés par Factorio
- Sur les grandes bases, des baisses de FPS et une instabilité des événements Blueprint sont apparues ; l’optimisation vise 30 à 60 FPS en réduisant les polygones, textures, particules, mises à jour on-tick et LOD
Objectif de FUE5
- FUE5 signifie Factorio in Unreal Engine 5 : c’est un projet expérimental qui visualise le monde 2D de Factorio dans un espace 3D
- Il a été réalisé en environ 5 mois à partir du 10 janvier 2023 par l’artiste 3D Hurricane et le moddeur Factorio Nuke
- C’est un environnement de visualisation 3D qui importe une base Factorio et en reproduit visuellement le fonctionnement, sans gameplay
- L’utilisateur peut voler autour de sa base et l’observer dans un espace 3D
Création des assets et intégration dans UE5
- Les assets de Factorio, comme les machines d’assemblage et les bras robotisés, ont dû être recréés sous forme de modèles 3D et d’animations à partir des sprites du jeu
- Le pipeline de production suit cet ordre
- Modélisation 3D avec Cinema4D
- Création des textures avec Adobe Photoshop
- Export depuis Cinema4D au format FBX
- Import dans Unreal Engine 5, puis application de shaders pour le verre, le métal ou encore la fumée des cheminées
- Les logiques principales, comme les convoyeurs, les trains et le système logistique, sont implémentées avec le système de nœuds Blueprint intégré à UE5
- Pour aligner correctement les trains en mouvement et les objets sur les convoyeurs, il fallait des modèles 3D aux dimensions précises ; la logique système a donc été créée après la majeure partie de la modélisation
- L’export direct d’une base Factorio depuis le jeu vers l’environnement Unreal Engine réduit fortement le temps nécessaire pour construire manuellement une base dans UE5
Comment les données Factorio sont importées dans FUE5
- Le système de structures génère les structures d’une manière proche du placement de bâtiments dans Factorio
- Le mod FUE5 exporter lit les données internes du jeu et les exporte sous forme de fichier JSON
- Type de bâtiment
- Orientation du bâtiment
- Connexions de câbles
- FUE5 lit ce fichier JSON pour répliquer visuellement la structure de la base réelle et le comportement des véhicules
Convoyeurs, trains et système logistique
-
Convoyeurs
- Il fallait non seulement des modèles 3D pour chaque convoyeur, mais aussi un mécanisme permettant aux objets de se déplacer le long des convoyeurs
- Les convoyeurs sont représentés par des splines
- Lors de l’export de la base par FUE5 exporter, les segments continus de convoyeurs connectés qui se terminent dans un tunnel, se terminent d’eux-mêmes ou forment une boucle sont traités comme des systèmes indépendants
- FUE5 crée une spline pour chaque segment, et les objets se déplacent sur le même trajet que dans le jeu réel
-
Trains
- Comme il était difficile de répliquer directement les horaires de trains, les signaux et le pathfinding des locomotives, le système de pathfinding natif de Factorio est utilisé
- Pour qu’un train soit généré et se déplace dans FUE5, il faut définir sa destination et lui donner le feu vert avant d’exporter la base
- Ensuite, l’itinéraire de train préalablement calculé par Factorio est lu, transformé en spline, puis utilisé pour contrôler le déplacement du train dans FUE5
-
Robots logistiques
- Les robots de construction ont été exclus, la génération des bâtiments étant gérée par le système Construction Script natif d’UE5
- L’implémentation s’est plutôt concentrée sur les robots logistiques, un élément visuel important dans une base Factorio à moitié développée
- Chaque roboport génère aléatoirement, avec une certaine probabilité, un cluster de robots logistiques
- Chaque robot recherche des coffres logistiques à proximité et vole entre eux pour reproduire visuellement le transport de ressources
- Une fois la tâche de transport terminée, il se déplace vers le roboport le plus proche, puis disparaît
Problèmes de performance et optimisation
- Lors de l’import de grandes bases dans FUE5, les FPS chutaient fortement et les résultats des événements Blueprint devenaient instables
- Pour fonctionner entre 30 et 60 FPS, il a fallu optimiser en réduisant les éléments suivants
- Nombre de polygones
- Résolution des textures
- Particules
- Nombre de mises à jour on-tick
- Une grande partie des saccades initiales provenait du système de convoyeurs ; les performances ont été améliorées en allégeant cette partie
- Les pièces animées des structures ont fourni des FPS supplémentaires grâce à l’ajustement des LOD
- Exemple : les cylindres rotatifs des centrifugeuses
- Exemple : les engrenages et pistons sur le toit des machines d’assemblage
- L’approbation de Wube Software, le développeur de Factorio, était également nécessaire ; la publication du projet a été autorisée à condition qu’il soit réservé à un usage non commercial
Trailer et mise en scène visuelle
- Après les deux premiers mois de production, durant lesquels l’idée de base et la majeure partie du prototypage ont été finalisées, il est devenu plus facile de répliquer différents assets et systèmes de Factorio
- L’attention s’est ensuite déplacée vers la finition visuelle globale et la réalisation du trailer principal de sortie
- Le trailer montre une grande base créée avec FUE5 exporter ainsi que plusieurs éléments possibles dans l’environnement FUE5
- Le simple export d’une base depuis le jeu Factorio ne produisant pas un résultat propre et cinématographique, de nombreux éléments ont été ajustés manuellement en fonction de la caméra
- Une base spaghetti complexe et enchevêtrée s’est révélée plus intéressante visuellement qu’une structure composée de longs alignements d’un même bâtiment pour obtenir un SPM élevé
Conditions d’utilisation et plans de publication
- FUE5 n’est pas un jeu et ne dispose pas non plus d’interface utilisateur ; son utilisation nécessite donc des connaissances de base en UE5
- La méthode d’utilisation est décrite sur la page GitHub
- La procédure de base consiste à installer UE5, lancer le projet, puis sélectionner les chunks de base à exporter vers FUE5
- La procédure détaillée est disponible dans le how-to guide
- Le projet a été partagé en open source via GitHub, avec pour objectif de permettre à la communauté Factorio de découvrir un monde familier dans une nouvelle dimension et de créer de nouveaux résultats
- Des travaux sont en cours pour rendre le système existant plus facile à utiliser et plus fiable avec de grandes bases, et l’ajout futur de contenu de mods est également envisagé
1 commentaires
Commentaires sur Hacker News
Dans Factorio, on gagne en lançant une fusée, mais Space Exploration continue au-delà. On y construit des bases sur plusieurs planètes du système solaire, on exploite les ressources propres à chacune pour développer le système, puis on s’étend à l’espace interstellaire et à d’autres systèmes solaires
Il y a un écran de victoire intermédiaire au « quart du parcours », mais aussi un autre écran de victoire qui demande d’explorer un mystère à l’échelle de tout l’univers connu et requiert pas mal de connaissances en mathématiques. C’est une partie de plusieurs centaines d’heures, avec un niveau de finition remarquable
Le jeu a été transformé pour permettre de voyager entre les planètes en vaisseau spatial à l’aide de cartes stellaires et de systèmes solaires, et dans l’ensemble, ça fonctionne très bien. En revanche, il vaut mieux réduire fortement les biters. Ce mod demande de la patience, et l’intensité des combats s’accorde mal avec son rythme ; d’ailleurs, le mod lui-même affiche au démarrage une fenêtre conseillant de baisser les biters
Le nombre d’usines et de lignes de production à construire pour passer à l’étape suivante ne cesse de grimper. Je crois que ce n’est qu’au bout de presque 100 heures que je suis arrivé au point où j’importais depuis une autre planète deux lignes de produits nécessaires au niveau scientifique suivant
En conseil supplémentaire, je recommande d’augmenter le coût de la science. Étendre jusqu’au niveau suivant prend plusieurs heures, et il est facile de se retrouver à court de recherches avant, si bien qu’en pratique l’usine semble s’arrêter faute de travail
SE est excellent, mais c’est un puits à temps colossal. J’ai plus de 3 500 heures sur Factorio ; il y a sans doute quelque chose qui cloche
Cela dit, voir Factorio en 3D était vraiment superbe et impressionnant
pyanodons ajoute des chaînes de traitement du minerai très réalistes, des procédés pétrochimiques, des mécanismes de production d’énergie, une refonte des composants électroniques, ainsi que des éléments d’agriculture avec plantes et animaux. Son développeur principal, pyanodon, est ingénieur chimiste de profession
Une partie complète de py dépasse facilement les 1 500 heures. Ce n’est sans doute pas particulièrement amusant pour la plupart des joueurs vanilla, mais si vous avez aimé des mods comme Space Exploration ou Nullius, vous pourrez y trouver votre compte
[0]: https://mods.factorio.com/user/pyanodon
Et pour ceux dont la première réaction a été « comment est-ce que c’est légal ? », je cite : « Lorsqu’on leur a demandé si ce travail était légal, l’équipe de Factorio s’est montrée très compréhensive et a autorisé la publication du projet à condition qu’il ne soit pas utilisé à des fins commerciales »
Pour avoir vu le code source original, je dirais qu’il est plutôt correct, sans être particulièrement extraordinaire. C’est du C++ avec héritage multiple, les objets du jeu s’appellent des méthodes les uns les autres à travers plusieurs couches, et il y a aussi pas mal de code du genre « ce n’est peut-être pas idéal, mais ça marche et on ne va pas le changer maintenant »
Ce qui fait que tout cela tourne bien, c’est une batterie de tests automatisés très complète, ainsi qu’une culture où Rseding corrige vite les PR qui proposent du code moins optimisé. La partie intéressante, ce sont les algorithmes, et ils sont abordés dans les Friday Facts
Et https://old.reddit.com/r/factorio/comments/13bsf3s/technical... se lit aussi avec beaucoup d’intérêt. On y parle notamment de listes doublement chaînées et d’héritage multiple
https://www.factorio.com/blog/
https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...
Orange, et des tuiles grises apparaissent aussi dans la vue « GUI »
Le rythme lent du début et les graphismes 2D isométriques un peu ternes ne me convenaient pas. Mais les billets de blog étaient intéressants et les gens continuaient d’en dire le plus grand bien, donc à la 4e installation, j’ai tenu bon et décidé d’y avancer pour de vrai
Maintenant, je le considère comme l’un des meilleurs jeux de tous les temps. Techniquement, c’est incroyablement impressionnant, et même des bases gigantesques remplies de trains, de tapis, de robots, de bras mécaniques, etc. peuvent tourner à 60 FPS. Ça ne plante pas, c’est extrêmement amusant et très addictif. Les mods sont excellents et la communauté aussi
J’attends vraiment l’extension avec impatience. On dirait qu’on peut supposer qu’elle sera peaufinée dès le départ autant que Factorio
Le démarrage est plus rapide, il traite de processus du monde réel, il y a de la modification de terrain, et à mes yeux il est meilleur que Factorio sur tous les plans. Je pense que Factorio a défini le genre, et que Satisfactory comme Dyson Sphere Program ont presque réussi à le dépasser, mais en 3D, la dimension puzzle devient plus facile à résoudre
Captain of Industry, malgré davantage de dimensions, réussit à rendre les puzzles aussi difficiles que dans Factorio, avec bien plus de ressources à gérer
J’imagine qu’on verra une sorte de système de combat façon Factorio dans UE5
Imaginez un jeu où il faut exploiter et entretenir une usine. En même temps, des joueurs PvP en FPS courent partout dans l’usine, se battent et sabotent en permanence les lignes d’approvisionnement, qu’il faut alors réparer. On pourrait rejoindre l’équipe de maintenance de l’usine, ou devenir un joueur PvP qui balaie les ennemis tout en détruisant les lignes d’approvisionnement de l’équipe adverse
Bien sûr, des modèles destinés à l’impression 3D n’ont pas besoin d’un vrai UV mapping ni de texturing, donc mon travail était nettement plus simple
Certains outils se sont beaucoup améliorés. Par exemple, Substance 3D pour le texturing aide énormément, surtout quand l’UV automatique donne un résultat exploitable. Mais les outils de base de modélisation 3D eux-mêmes n’ont pas fondamentalement tant changé que ça par rapport à avant
Les modèles des captures d’écran ont aussi l’air d’avoir une topologie dense, donc la charge de travail a dû être assez importante
J’y ai joué comme un fou pendant 3 semaines avant de devoir me forcer à arrêter. Un jeu vraiment à part