1 Punkte von GN⁺ 2023-07-03 | 1 Kommentare | Auf WhatsApp teilen
  • Es ist kein Tool, um eine Factorio-Basis neu zu spielen, sondern ein experimentelles Projekt, mit dem sich die Abläufe einer bestehenden 2D-Basis im 3D-Raum von UE5 ansehen lassen.
  • Die Asset-Erstellung erfolgte auf Basis der Spiel-Sprites in der Reihenfolge Modellierung in Cinema4D, Texturen in Photoshop, Export als FBX und Anwendung von Shadern in UE5.
  • Wenn das FUE5-exporter-Mod die internen Daten von Factorio als JSON exportiert, liest FUE5 Gebäudetypen, Ausrichtungen und Kabelverbindungen aus und rekonstruiert die Basis visuell.
  • Förderbänder, Züge und Logistikroboter nutzen UE5-Blueprints und Splines; bei den Zügen werden von Factorio vorab berechnete Routen übernommen.
  • Bei großen Basen kam es zu FPS-Einbrüchen und instabilen Blueprint-Events, daher wurde durch Reduzierung von Polygonen, Texturen, Partikeln, on-tick-Updates und LODs auf 30–60 FPS optimiert.

Ziel von FUE5

  • FUE5 steht für Factorio in Unreal Engine 5 und ist ein experimentelles Projekt zur Visualisierung der 2D-Welt von Factorio im 3D-Raum.
  • Es wurde vom 3D-Artist Hurricane und dem Factorio-Modder Nuke ab dem 10. Januar 2023 über rund 5 Monate entwickelt.
  • Es ist eine 3D-Visualisierungsumgebung, die eine Factorio-Basis importiert und ihren Betrieb visuell nachbildet; Gameplay ist nicht enthalten.
  • Nutzer können in 3D um ihre eigene Basis herumfliegen und sie erkunden.

Asset-Erstellung und Integration in UE5

  • Assets wie Montageanlagen oder Greifarme aus Factorio mussten auf Basis der Spiel-Sprites als 3D-Modelle und Animationen neu erstellt werden.
  • Die Produktionspipeline bestand aus folgender Reihenfolge
    • 3D-Modellierung in Cinema4D
    • Erstellung der Texturen in Adobe Photoshop
    • Export aus Cinema4D im FBX-Format
    • Import in Unreal Engine 5 und Anwendung von Shadern für Glas, Metall oder Schornsteinrauch
  • Kernlogik wie Förderbänder, Züge und Logistiksysteme wurde mit dem grundlegenden Blueprint-Node-System von UE5 umgesetzt.
  • Damit sich bewegende Züge und die Ausrichtung von Gegenständen auf Förderbändern korrekt stimmen, waren 3D-Modelle mit exakten Abmessungen nötig; deshalb wurde die Systemlogik erst nach Abschluss des Großteils der Modellierung erstellt.
  • Durch den direkten Export einer Factorio-Basis aus dem Spiel in die Unreal-Engine-Umgebung verringerte sich der Aufwand, Basen in UE5 manuell nachzubauen, erheblich.

So gelangen Factorio-Daten in FUE5

  • Das Struktursystem erzeugt Bauwerke ähnlich dazu, wie Gebäude in Factorio platziert werden.
  • Das FUE5 exporter mod liest interne Spieldaten aus und exportiert sie als JSON-Datei
    • Gebäudetyp
    • Gebäudeausrichtung
    • Kabelverbindungen
  • FUE5 liest diese JSON-Datei und bildet die Struktur der echten Basis sowie die Fahrzeugbewegungen visuell nach.

Förderbänder, Züge und Logistiksysteme

  • Förderbänder

    • Es wurden nicht nur 3D-Modelle einzelner Förderbänder benötigt, sondern auch ein Mechanismus, mit dem sich Gegenstände entlang der Bänder bewegen.
    • Förderbänder werden als Splines dargestellt.
    • Wenn der FUE5 exporter die Basis exportiert, werden zusammenhängende Förderbandabschnitte, die in einem Tunnel enden, für sich selbst enden oder eine Schleife bilden, jeweils als unabhängige Systeme behandelt.
    • FUE5 erstellt für jeden Abschnitt einen Spline, und die Gegenstände bewegen sich entlang derselben Wege wie im eigentlichen Spiel.
  • Züge

    • Da es schwierig gewesen wäre, Fahrpläne, Signale und die Pfadsuche von Lokomotiven direkt nachzubilden, wird das grundlegende Pfadsuchsystem von Factorio verwendet.
    • Damit in FUE5 ein Zug erzeugt wird und sich bewegt, müssen vor dem Export der Basis Ziel und grünes Signal gesetzt sein.
    • Anschließend werden die von Factorio vorab berechneten Zugrouten eingelesen, als Splines erstellt und die Zugbewegung in FUE5 gesteuert.
  • Logistikroboter

    • Baurroboter sind ausgenommen; die Erzeugung von Gebäuden wird über das grundlegende Construction-Script-System von UE5 verarbeitet.
    • Stattdessen lag der Fokus auf der Umsetzung von Logistikrobotern, einem wichtigen visuellen Element in halbwegs ausgebauten Factorio-Basen.
    • Jeder Roboport erzeugt mit einer gewissen Wahrscheinlichkeit zufällig Cluster von Logistikrobotern.
    • Jeder Roboter sucht in der Umgebung nach Logistikkisten und fliegt zwischen ihnen hin und her, um den Ressourcentransport visuell nachzubilden.
    • Ist ein Transportauftrag abgeschlossen, fliegt er zur Position des nächstgelegenen Roboports und verschwindet dann.

Leistungsprobleme und Optimierung

  • Beim Import großer Basen in FUE5 fiel die FPS deutlich ab, und die Ergebnisse von Blueprint-Events wurden instabil.
  • Um mit 30–60 FPS zu laufen, war eine Optimierung durch Reduzierung der folgenden Elemente nötig
    • Polygonanzahl
    • Texturauflösung
    • Partikel
    • Anzahl der on-tick-Updates
  • Viele der anfänglichen Ruckler traten im Förderbandsystem auf; durch Optimierungen in diesem Bereich wurde die Leistung verbessert.
  • Für animierte Teile von Bauwerken wurde zusätzlich über LOD weitere FPS gewonnen.
    • Beispiel: rotierende Zylinder einer Zentrifuge
    • Beispiel: Zahnräder und Kolben auf dem Dach einer Montageanlage
  • Es war außerdem die Zustimmung des Factorio-Entwicklers Wube Software nötig; unter der Bedingung einer rein nichtkommerziellen Nutzung wurde die Veröffentlichung des Projekts erlaubt.

Trailer und visuelle Inszenierung

  • Nachdem in den ersten zwei Monaten die Grundidee und der Großteil des Prototypings feststanden, wurde es einfacher, verschiedene Factorio-Assets und -Systeme nachzubilden.
  • Danach verlagerte sich der Fokus auf die gesamte visuelle Qualität und die Erstellung des Haupt-Release-Trailers.
  • Der Trailer zeigt eine große mit dem FUE5 exporter erzeugte Basis sowie verschiedene Elemente, die in der FUE5-Umgebung möglich sind.
  • Allein durch den Export einer Basis aus Factorio ließ sich kein sauberes, filmisches Ergebnis erzielen, daher wurden viele Teile manuell an die Kamera angepasst.
  • Im Vergleich zu langgezogenen Strukturen mit einzelnen Gebäuden für hohe SPM waren komplex verflochtene Spaghetti-Basen visuell interessanter.

Nutzungsbedingungen und Veröffentlichungspläne

  • FUE5 ist kein Spiel und hat auch keine Benutzeroberfläche; für die Nutzung sind daher grundlegende UE5-Kenntnisse nötig.
  • Die Verwendung ist auf der GitHub-Seite beschrieben.
  • Das grundlegende Verfahren besteht darin, UE5 zu installieren und das Projekt zu starten, dann die zu exportierenden Basis-Chunks auszuwählen und nach FUE5 zu exportieren.
  • Die genauen Schritte sind im how-to guide zu finden.
  • Das Projekt wurde über GitHub als Open Source veröffentlicht, damit die Factorio-Community eine vertraute Welt in einer neuen Dimension erleben und neue Ergebnisse schaffen kann.
  • Es wird weiter daran gearbeitet, die bestehenden Systeme benutzerfreundlicher zu machen und sie auch für große Basen zuverlässig funktionieren zu lassen; außerdem wird die künftige Ergänzung von Mod-Inhalten geprüft.

1 Kommentare

 
GN⁺ 2023-07-03
Hacker-News-Kommentare
  • Das hier kurz erwähnte und gerenderte Space Exploration ist ein gewaltiger Factorio-Mod, und eines der tiefgründigsten Spiele, die ich je gespielt habe.
    In Factorio gewinnt man, wenn man eine Rakete startet, aber bei Space Exploration geht es genau danach erst richtig weiter. Man baut Basen auf mehreren Planeten des Sonnensystems, nutzt die einzigartigen Ressourcen jedes Planeten, entwickelt das Sonnensystem weiter und expandiert dann in den interstellaren Raum und in andere Sonnensysteme.
    Unterwegs gibt es einen Siegbildschirm am „Viertelpunkt“, aber es gibt noch einen weiteren Siegbildschirm, bei dem man ein Geheimnis erforscht, das sich über das gesamte bekannte Universum erstreckt und auch einiges an mathematischem Wissen verlangt. Das sind hunderte Stunden Spielzeit, und alles ist sehr ausgereift.
    Das Mod verändert das Spiel so, dass man mithilfe von Stern- und Sonnensystemkarten mit Raumschiffen zwischen Planeten reisen kann, und insgesamt funktioniert das sehr gut. Allerdings ist es besser, die Beißer stark zu reduzieren. Dieses Mod verlangt Geduld, und die Kampfintensität passt nicht gut zu diesem Spielfluss; das Mod selbst weist beim Start per Pop-up sogar darauf hin, die Beißer herunterzustellen.
    • Ich würde Space Exploration nur empfehlen, wenn man das Grundspiel schon ein paarmal durchgespielt hat und mehr will. Gefühlt sinkt die Zahl der Teile, die man für die Basisfabrik braucht, dafür steigt die Komplexität aber deutlich stärker.
      Die Zahl der Fabriken und Produktionslinien, die man bauen muss, um zur nächsten Stufe zu kommen, wächst immer weiter. Ich glaube, erst nach fast 100 Stunden war ich an dem Punkt, an dem ich zwei Produktlinien, die für die nächste Wissenschaftsstufe nötig waren, von einem anderen Planeten importiert habe.
      Als zusätzlicher Tipp würde ich empfehlen, die Wissenschaftskosten zu erhöhen. Der Ausbau zur nächsten Stufe dauert mehrere Stunden, und oft gehen einem vorher die Dinge aus, die man erforschen kann, sodass es sich anfühlt, als hätte die Fabrik nichts mehr zu tun und stünde still.
    • Ich persönlich finde es besser, die Beißer ganz auszuschalten. Auf anderen Planeten gibt es sie immer noch, aber das Gefühl ständiger Anspannung auf dem Heimatplaneten verschwindet.
    • Ich spiele gerade Space Exploration und es ist wirklich episch. Allerdings hat selbst der spezialisierte YouTuber Dosh Doshington, den ich für einen der besten Factorio-Spieler der Welt halte, mit Hilfe 300 Stunden gebraucht, um SE abzuschließen.
      SE ist großartig, aber ein gewaltiger Zeitfresser. Ich habe über 3500 Stunden in Factorio, ich glaube, da stimmt irgendetwas nicht mit mir.
      Trotzdem war es wirklich cool und beeindruckend, Factorio in 3D zu sehen.
    • Wenn „interplanetares Factorio“ genau dein Ding ist, dann ist Dyson Sphere Program ebenfalls einen Blick wert: https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog...
    • Ein weiteres Modpack, das hier erwähnt werden sollte, ist pyanodons. Wie Space Exploration erweitert es das Spiel stark nach dem Raketenstart, fügt aber auch davor schon Inhalte hinzu. Tatsächlich wird der Raketenstart selbst deutlich weniger wichtig und ähnelt anfangs eher einer optionalen blauen Wissenschaftstechnologie.
      pyanodons fügt sehr realistische Erzverarbeitungsketten, petrochemische Prozesse, Mechaniken zur Energieerzeugung, eine Überarbeitung elektronischer Bauteile und landwirtschaftliche Elemente mit Pflanzen und Tieren hinzu. Der Hauptentwickler pyanodon arbeitet hauptberuflich als Chemieingenieur.
      Ein kompletter py-Durchlauf geht leicht über 1500 Stunden. Für die meisten Vanilla-Spieler ist das vielleicht nicht besonders spaßig, aber wer Mods wie Space Exploration oder Nullius mochte, kann daran Gefallen finden.
      [0]: https://mods.factorio.com/user/pyanodon
  • Als Spieleentwickler ist der originale Factorio-Quellcode für mich wirklich einer der Spielcodes, die ich gerne sehen würde.
    Und für alle, die zuerst dachten: „Wie kann das legal sein?“ hier das Zitat: „Auf die Frage nach der Rechtmäßigkeit dieser Arbeit zeigte Factorio großes Verständnis und erlaubte die Veröffentlichung des Projekts unter der Bedingung, dass es nicht kommerziell genutzt wird.“
    • Das Factorio-Team ist bei solchen Dingen im Allgemeinen ziemlich entspannt, und vermutlich haben sie das Spiel genau deshalb von Anfang an so modfreundlich gemacht. Ich erinnere mich nur an einen Fall rechtlicher Schritte, und da ging es um Dinge wie den Weiterverkauf gestohlener Keys. Dahinter steckt wohl die Haltung, dass es auch für Factorio gut ist, wenn die Community coole Sachen baut.
      Aus der Sicht von jemandem, der den originalen Quellcode gesehen hat: Der Code ist insgesamt ziemlich okay, aber nicht besonders ehrfurchtgebietend. Es ist C++ mit Mehrfachvererbung, und die Spielobjekte rufen über mehrere Ebenen hinweg gegenseitig Methoden auf, außerdem gibt es einiges an Code nach dem Muster „vielleicht nicht optimal, aber es funktioniert und wir ändern es jetzt nicht“.
      Dass das alles trotzdem gut läuft, liegt an umfassenden automatisierten Tests und an einer Kultur, in der Rseding einen PR sofort korrigiert, wenn man weniger optimierten Code einreicht. Der interessante Teil sind die Algorithmen, und die werden in Friday Facts behandelt.
    • Auf GitHub gibt es Teile des Factorio-Quellcodeshttps://gist.github.com/Rseding91
      Und auch https://old.reddit.com/r/factorio/comments/13bsf3s/technical... ist sehr interessant zu lesen. Dort geht es um Dinge wie doppelt verkettete Listen und Mehrfachvererbung.
    • Factorio hat einen hervorragenden Entwicklungsblog. Er zeigt den Code zwar nicht, behandelt aber ziemlich tiefgehend die Probleme, die gelöst werden mussten.
      https://www.factorio.com/blog/
    • Naiv gefragt kam mir eher die Gegenfrage: Warum sollte das illegal sein? Warum müsste es zwingend unbezahlte Liebhaberei sein? Die Nutzung von Factorio-IP scheint auf visuelle Inspiration und das Parsen von Dateiformaten beschränkt zu sein und wirkt auch rechtlich klar als transformative Nutzung.
  • Bei der Stelle „Wenn man nicht programmieren kann, verbindet man einfach Knoten miteinander, und wenn es nicht funktioniert, verbindet man noch mehr, bis es immer chaotischer wird. Das ist verdächtig ähnlich zu diesem Fabrikspiel, das ich in letzter Zeit gespielt habe“ musste ich laut lachen.
    • Den Teil mochte ich auch. Besonders, weil das sogar dann genau dasselbe ist, wenn man programmieren kann. Nur manches wird etwas weniger wortreich, und manchmal gibt es immer noch jede Menge Spaghetti.
    • Das ist noch gar nichts. LabVIEW hat sogar ein ähnliches Farbschema!
      https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...

Orange, und in der „GUI“-Ansicht erscheinen auch graue Kacheln

  • Ich habe Factorio viermal installiert und dreimal wieder deinstalliert
    Das langsame Anfangstempo und die etwas leblose isometrische 2D-Grafik haben mich zunächst nicht abgeholt. Die Blogbeiträge waren aber interessant, und weil es von allen Seiten so gelobt wurde, habe ich es bei der vierten Installation durchgehalten und tatsächlich ein gutes Stück gespielt
    Inzwischen halte ich es für eines der besten Spiele aller Zeiten. Technisch ist es absurd beeindruckend, und selbst riesige Basen voller Züge, Förderbänder, Roboter und Greifarme laufen mit 60 FPS. Es stürzt nicht ab, macht enorm viel Spaß und hat ein hohes Suchtpotenzial. Die Mods sind großartig und die Community ebenfalls
    Ich freue mich wirklich auf die Erweiterung. Man kann wohl davon ausgehen, dass sie von Anfang an genauso poliert sein wird wie Factorio
    • Es tut mir im Voraus leid, dass ich hier ein potenziell lebenszerstörendes Risiko empfehle, aber ich kann Captain of Industry nur nachdrücklich empfehlen
      Der Einstieg ist schneller, es behandelt Prozesse aus der realen Welt, bietet Geländeverformung und ist meiner Meinung nach in jeder Hinsicht besser als Factorio. Ich halte Factorio zwar für das genreprägende Spiel, und auch Satisfactory und Dyson Sphere Program hätten es fast übertroffen, aber durch ihre 3D-Natur lösen sich die Rätsel leichter
      Captain of Industry hat trotz zusätzlicher Dimensionen ähnlich anspruchsvolle Rätsel wie Factorio und dazu noch deutlich mehr Ressourcen, die man verwalten muss
    • Wer Factorio mit schöner Grafik will, sollte Satisfactory spielen
    • Satisfactory ist auf jeden Fall ebenfalls einen Blick wert
  • Genau genommen ist das hier kein Factorio-Client, sondern ein Visualisierungstool. Trotzdem ist es wirklich großartig
    • Wie im Artikel schon gesagt wurde, wäre es extrem spannend zu sehen, was die Factorio-Bastler aus der Community darauf aufbauend alles zusammenhacken werden
      Ich könnte mir eine Art Factorio-artiges Kampfsystem in UE5 vorstellen
      Man stelle sich ein Spiel vor, in dem man eine Fabrik betreiben und instand halten muss, während gleichzeitig PvP-Spieler in Ego-Perspektive durch die Fabrik rennen, kämpfen und ständig die Versorgungslinien sabotieren, die dann repariert werden müssen. Man könnte Teil des Fabrik-Wartungsteams sein oder als PvP-Spieler losziehen, Gegner ausschalten und gleichzeitig die Versorgungswege der anderen Seite zerlegen
  • Das erinnert mich an die 3D-Visualisierungen, die man für Dwarf Fortress gesehen hat. Einiges wurde „gezeichnet“, anderes versuchte, in Echtzeit aktualisiert zu werden
  • Wow, in fünf Monaten so viele 3D-Modelle zu erstellen, ist ein enormes Talent. Da fragt man sich schon, ob die heutigen 3D-Modellierungswerkzeuge wirklich so gut geworden sind
    • Ich habe früher einmal ein paar Factorio-Maschinen modelliert, um sie als Schreibtischdeko in 3D zu drucken, und jede hat ungefähr sechs Stunden gedauert. Deshalb kann ich mir gut vorstellen, dass man in ein paar Monaten alles fertigbekommt
      Natürlich waren meine Modelle für den 3D-Druck viel einfacher, weil man dafür kein ordentliches UV-Mapping oder Texturing braucht
    • „Der Remodelling-Prozess hat wirklich Spaß gemacht, aber nächstes Mal sollte ich wohl lieber nach den originalen Factorio-Modellen fragen, um das, was von meiner geistigen Gesundheit übrig ist, zu schützen.“
      Einige Werkzeuge sind tatsächlich deutlich besser geworden. Zum Beispiel hilft Substance 3D fürs Texturing enorm, besonders wenn das automatische UV brauchbare Ergebnisse liefert. Die grundlegenden 3D-Modellierungswerkzeuge selbst haben sich aber im Kern nicht so stark verändert wie man vielleicht denkt
      Auch die Modelle auf den Screenshots wirken topologisch ziemlich dicht, also dürfte das eine ganze Menge Arbeit gewesen sein
  • Oder man spielt einfach Satisfactory im neuen Unreal 5 Experimental-Branch
  • Ehrlich gesagt habe ich den Artikel gar nicht gelesen. Aber wenn man wissen will, wie es aussieht, wenn Programmierung ein Spiel wäre, dann sollte man Factorio spielen. Refactoring, geringe Kopplung, Debugging – es ist alles drin
    Ich habe es drei Wochen lang wie verrückt gespielt und musste mich dann mit Gewalt davon losreißen. Wirklich ein einzigartiges Spiel
  • Wenn man tatsächlich ein echtes Factorio-artiges Spiel in 3D spielen will, empfehle ich Satisfactory
    • Auch bei Satisfactory können einfach ein paar Tage komplett verschwinden. Wie Factorio ein wirklich großartiges Spiel
    • Oder eben Dyson Sphere Program