Alt-F4 #64 - Einen Zug anfordern 31.03.2023
übersetzt von dexteritas, EDLEXUS
Neues Jahr, selbe Alt-F4! Ausgabe #64 ist hoffentlich nicht nur für Freunde der Binärzahlen ein Fest, sondern auch für alle anderen. Erstautor OceanPhantom ist hier um und neue aufregende Entwicklungen in der Welt der mit Mods automatisierten Zugsysteme vorzustellen. Kann der alte Herrscher LTN vom Thron gestoßen werden? Finden wir es heraus!
Einen Zug anfordern
Das Zugsystem in Factorio ist großartig. Züge sind das Mittel der Wahl wenn es um Langstreckentransporte geht. Die Regeln sind sehr simpel, so dass die erste, in beide Richtungen befahrene Strecke zum ersten Außenposten schnell gebaut ist. Bei hunderten Zügen, welche notwendig sind, um den Hunger nach Ressourcen einer Megabasis zu stillen, führen diese wenigen Regeln aber schnell zu einem logistischen Albtraum.
Sie ermöglichen eine so unglaubliche Komplexität, dass u/minibetrayal auf Reddit vermutet, dass das Zugsystem tatsächlich Turing-vollständig sei. Und dann hat er sich der Aufgabe gestellt, das größte und nutzloseste Zugnetz, das es jemals gab zu bauen, um es zu beweisen. Somit wird das Schienensystem zusammen mit dem Schaltungsnetz und dem Fließband system (Alt-F4 #23 & Alt-F4 #24) zu einem weiteren unabhängigen Turing-vollständigen Teil von Factorio.
Wie könnte das Zugsystem mit all diesen verfügbaren Optionen noch besser werden? Hier kommt sie ins Spiel: Die Factorio-Modding-Gemeinschaft.
Wir haben bereits zuvor darüber gesprochen, wie Mods das Schienensystem verbessern. Sie haben die erste Iteration des Tankwaggons eingeführt. Sie haben das Zugverhalten verhändert, mit Mods wie Train Supply Manager (TSM) (zu Deutsch: „Manager für die Zugversorgung“), über die wir bereits in Alt-F4 #15 besprochen haben.
Dabei ist mir aufgefallen, dass ALT-F4 zwar in mehreren früheren Artikeln (Alt-F4 #28 & Alt-F4 #37) kurz darauf eingegangen ist, dass es aber noch keinen Artikel gibt, der sich eingehend mit der Mod Logistic Train Network (zu Deutsch: „Logistisches Zugnetz“), kurz LTN, befasst. Bis vor kurzem war LTN einzigartig, denn die einzige andere bemerkenswerte Mod, die die Funktionsweise von Zügen veränderte, war der bereits erwähnte TSM.
Das änderte sich im November 2022, als nicht nur ein, sondern gleich zwei neue Konkurrenten auf den Markt kamen, die im Gegensatz zu TSM direkt mit dem Logistikkonzept von LTN konkurrieren. Mit zwei neuen Konkurrenten, Project Cybersyn und Rail Logistics Dispatcher (zu Deutsch: „Bahnlogistik-Disponent“), die kürzlich veröffentlicht wurden, scheint jetzt der perfekte Zeitpunkt gekommen zu sein, um alle drei Optionen zu vergleichen und gegenüberzustellen.
Um zu verstehen, was diese Mods so beliebt macht, müssen wir zunächst verstehen, wie sie das Verhalten der Vanilla-Züge verändern. Im Kern verändern alle drei Mods dynamisch die Fahrpläne der Züge auf der Grundlage von Signalen aus dem Schienennetz. Dadurch verhält sich das Schienensystem mehr wie das logistische Vanilla-Netzwerk, was diese Mods zu extrem leistungsfähigen Werkzeugen für den Aufbau von Viele-zu-viele-Zugnetzwerken macht.
Viele-zu-viele-Netzwerke sind in Factorio-Vanilla leicht machbar (wir haben ein Tutorial zum Bau eines solchen in Alt-F4 #37). Als kurze Zusammenfassung: Ein einzelner Kombinator für Vergleiche kann verwendet werden, um das Zuglimit an einer Station auf 1 zu setzen, wenn bestimmte Bedingungen erfüllt sind, z. B. wenn eine Station, die eine Ressource annimmt (eine Anforderungsstation), unter einen Schwellenwert fällt. Umgekehrt kann dasselbe an einem Bahnhof geschehen, der eine Ressource liefert (ein Anbieterbahnhof). Falls gewünscht, können weitere Kombinatoren für weitere Funktionen hinzugefügt werden, z. B. die Anhebung des Zuglimits bei weiteren Schwellenwerten oder das Hinzufügen eines maximalen Zuglimits.
Der Nachteil dieses Ansatzes ist, dass er am besten funktioniert, wenn er mit einer einzigen Ressource arbeitet. Kombinatoren sind in der Lage, alles zu tun, was ein Computer tun kann, sodass es möglich ist, ein Zugnetzwerk zu haben, das mehrere Ressourcen auf jedem Zug handhaben kann, und sogar jeden beliebigen Zug eine beliebige Ressource handhaben zu lassen. Die schiere Menge an Schaltkreisen, die mit der letzten Variante eines Zugnetzwerks mit vielen Ressourcen verbunden ist, macht es jedoch zu einer Herausforderung, an der sich nur wenige versucht haben, und noch weniger haben es geschafft. Alle drei Mods erlauben es jemandem mit einem rudimentären Verständnis von Schaltkreisen, Züge für andere Ressourcen wiederzuverwenden und Bahnhöfe mit mehreren Gegenständen einzurichten.
Logistisches Zugnetzwerk – Das Original
Logistic Train Network (LTN) wurde ursprünglich in den Factorio-Foren von ssilk im Oktober 2016 entwickelt und anschließend von Optera implementiert und im April 2017 für Factorio Version 0.14 veröffentlicht. Es ist eine der beliebtesten und einflussreichsten Mods in der Geschichte von Factorio. Sie ist bis heute beliebt, wie die “rekursiven” Mods zeigen, die später als Ergänzung zu LTN erstellt wurden, und dient als direkte Inspiration für die beiden anderen Mods, die wir später besprechen werden. Während ich hier auf LTN eingehe, ist dieser Artikel eher dazu gedacht, die Unterschiede zwischen den Mods hervorzuheben, als ein Handbuch zu sein; eine umfassendere Übersicht über die Signale und Funktionen findet ihr im LTN-Subforum
LTN fügt die „Logistic Train Stop“ Entität (zu Deutsch: „logistische Zughaltestelle“) und 22 Signale hinzu, die zur Steuerung des Netzwerks verwendet werden. Bei Verwendung mit Mods, die weitere Lokomotiv- und Wagentypen hinzufügen, fügt LTN auch weitere Signale für jede neue Lokomotive und jeden neuen Waggon hinzu.
Die logistische Zughaltestelle muss verwendet werden, damit die Mod funktioniert, und ersetzt vollständig die Vanilla-Zughaltestelle. Diese neue Ergänzung ist eine hybride Einheit, die aus einer Zughaltestelle, einer Lampe (die als Eingang für Signale dient) und einem gelben Kombinator für Konstanten (der als Ausgang dient) besteht. Zusammen mit einem Konstantenkombinator zur Konfiguration des Bahnhofs beträgt die minimale Grundfläche für die Haltestelle $2\times2 + 1\times1$ (für einen Anbieter, der globale Vorgaben verwendet, ist nur die Haltestelle selbst erforderlich).
Obwohl die Anzahl der Signale entmutigend sein kann, können viele von ihnen (insbesondere die unteren beiden Reihen) sicher ignoriert werden, ohne dass das Netz beeinträchtigt wird.
Das einzige Signal, das unbedingt erforderlich ist, ist das Signal „Halt ist Depot“ in der oberen linken Ecke. Im LTN beginnen und enden alle Lieferungen in Depotbahnhöfen, und ein Zug muss erst in einen solchen Bahnhof einfahren, bevor sein „Gehirn“ von der Mod übernommen wird. Dieses Signal verwandelt eine Haltestelle in das Äquivalent zu den Roboports des Logistischen Netzes. Aufgrund ihrer zentralen Rolle im Netz eignen sich diese Bahnhöfe auch hervorragend für die Betankung.
Die anderen beiden Arten von Haltestellen sind der Anbieter und der Anforderer. Man könnte meinen, dass die Signale mit der Anbieter- und der Anforderungskiste anzeigen, um welche Art von Halt es sich handelt, aber das ist nicht der Fall. Tatsächlich zeigt ein positives Ressourcensignal an, dass die Haltestelle ein Anbieter für diese Ressource ist. Ein entsprechendes negatives Signal zeigt an, dass die Haltestelle ein Anforderer für diese Ressource ist. Bei diesen beiden Signaltypen handelt es sich lediglich um „Schwellenwerte“, d. h. um einen Mindestbetrag, der verhindert, dass ein Zug versucht, eine Ressource von dieser Haltestelle zu übernehmen oder an diese Haltestelle zu liefern, wenn die empfangenen Signale diesen Wert nicht erreichen. LTN bietet die Möglichkeit, stattdessen Stapelschwellen zu verwenden, um die Flexibilität zu erhöhen. Allerdings müssen Flüssigkeiten das reguläre Schwellensignal verwenden.
Die Tatsache, dass das Vorzeichen ($+$ oder $-$) des Signals das Verhalten der Stationen steuert, führt zu einem häufigen Fallstrick, bei dem ein unbekannter Benutzer feststellen kann, dass seine Anfragestation ungewollt zum Anbieter geworden ist. Die Abhilfe für dieses Verhalten besteht darin, den Schwellenwert zu erhöhen, entweder pro Station oder durch Änderung des globalen Schwellenwerts in den Mod-Einstellungen.
Diese Signale müssen alle in den Lampenteil der hybriden Einheit gesendet werden, der als Eingangsanschluss der Haltestelle fungiert. Ein weiterer häufiger Fehler ist das Senden der Steuersignale an den falschen Teil der Hybrideinheit.
Der dritte Teil der Einheit, der Kombinator, der als LTN-Ausgang dient, ermöglicht die exakte Be- und Entladung von Zügen sowie Haltestellen mit mehreren Gütern. Über ihn gibt LTN die erwartete Lieferung aus, so dass die Stapelgrößen und Filter für die entsprechende Frachtart und -menge konfiguriert werden können. (Das Signal „Gesperrte Slots“ sollte auch an die Eingangslampe gesendet werden, um sicherzustellen, dass überschüssige Ladung nicht in den Händen des Greifarms verbleibt, da dies den nächsten Zug verunreinigen würde).
Ein Nachteil von LTN ist seine steile Lernkurve. Es kann schwierig sein, als neuer Spieler die Bahnhöfe richtig zu konfigurieren, und es ist ziemlich einfach, Fehler zu machen, die sich auf die gesamte Basis auswirken. Eine weitere Komplikation besteht darin, dass LTN sein eigenes Zuglimit-Signal verwendet und dieses anstelle von Vanilla-Zuglimits für seine Anforderungs- und Anbieterbahnhöfe einsetzt. Dieses Signal funktioniert jedoch nicht mit seinen Depot-Haltestellen, die stattdessen die Verwendung von Vanilla-Zugbegrenzungen erfordern. (Optera, der Autor der Mod, hat auch erklärt, dass es keine Pläne gibt, dies zu ändern).
Project Cybersyn - LTN Lite
Benannt nach dem Projekt Cybersyn der chilenischen Regierung Allende wurde diese Mod nur einige Wochen nach RLD veröffentlicht. Projekt Cybersyn stellt einen Mittelweg zwischen der Simplizität von RLD und dem Reichtum an Möglichkeiten im LTN dar. So werden einige kompliziertere Features, wie die Kontrolle über die Zuglänge in Abhängigkeit von der Station, weggelassen, um stattdessen eine einfachere Benutzung zu ermöglichen.
Im Gegensatz zu LTN, welches die Zughaltestelle komplett ersetzt, setzt Projekt Cybersyn auf eine neue Entität, welche direkt neben einer Vanilla-Zughaltestelle platziert werden muss. Zusammen mit einem Kombinator für Konstanten, mit welchen die Haltestelle eingestellt wird, ist der minimale Fußabdruck $2 \times 2 + 2 \times 1 (\text{oder } 1 \times 2) + 1 \times 1$. Für Depots oder Betankungsstationen werden nur die Zughaltestelle und der cybernetische Kombinator benötigt. Lesern mit Adleraugen wird bereits die „Kein Strom“-Meldung aufgefallen sein. Projekt Cybersyn ist die einzige Mod, welche Entitäten hinzufügt, die Strom benötigen. Die Verwendung von mehreren cybernetischen Kombinatoren erlaubt den Zugriff auf kompliziertere Funktionen. Außerdem verwendet Projekt Cybersyn das Vanilla-Zuglimit, was eine durchaus willkommene Änderung darstellt.
Die cybernetischen Kombinatoren haben fünf verschiedene Modi: Station, Depot, Betankungsstation, Stationskontrolle und Waggonkontrolle. Wie im LTN müssen Züge zunächst in ein Depot geschickt werden, bevor die Mod ihnen einen Fahrplan zuordnet. Allerdings müssen Züge nicht ins Depot zurückkehren, um neue Fahrpläne zu erhalten. Um dieses Feature möglichst optimal auszunutzen, müssen Stationen, Depots und Schienenwege möglicherweise verändert werden.
Eine zweite große Änderung ist es, dass beladene Züge standartmäßig keine neuen Aufträge erhalten können. Im LTN wird der Nutzer gewarnt, wenn Züge nicht vollständig entladen werden, was zur Kontamination der Logistik führen kann, falls der Nutzer nicht sichergeht und die Entladung mit filternden Greifarmen realisiert. Solange es nicht in dem Kombinatoreinstellungen explizit erlaubt ist, verbietet Projekt Cybersyn dieses Verhalten einfach vollständig.
Als Drittes kann der Refueler Mode (zu Deutsch: „Betankungsmodus“) in Verbindung mit dem Depot Bypass (zu Deutsch: „Depot-Umgehung“) dazu genutzt werden, dass Züge nur noch ins Depot zurückkehren, falls sie neuen Treibstoff benötigen. Die Anzahl der Züge, welche benötigt werden um die gesamte Fabrik zu versorgen, kann so nocheinmal drastisch reduziert werden.
Projekt Cybersyn fügt insgesamt nur drei neue Signale hinzu, was das System insgesamt vereinfacht. Erhalten werden die Signale: Anforderungsschwellwert, Priorität und Signale für gesperrte Slots (welche in ihrer Funktion identisch zu den Signalen in LTN sind), während alle anderen LTN-Signale ersatzlos gestrichen werden.
Eine der besten Änderungen meiner Meinung nach ist es, dass die Cybersyn-GUI nicht nur anzeigt, dass Stationen sowohl Anbieten als auch Anfordern können, sondern es auch ermöglicht, eine dieser Funktionen zu verbieten. Das bedeutet, das der Trick, einfach sehr hohe Schwellwerte für das Angebot zu verwenden, nicht mehr nötig ist. Das Zusammenfassen von Eingang und Ausgang in einer einzelnen Entität beugt außerdem gut Verwechselungen vor.
Das hinzufügen eines weiteren Kombinators im Stationsmodus erlaubt es, Schwellwerte in Abhängigkeit vom Gegenstandstyp festzulegen. Dies kann auch im LTN erreicht werden, benötigt aber zusätzliche Kombinatoren für jeden Rohstoff mit anderem Schwellwert. Projekt Cybersyn ermöglicht all diese Einstellungen mit nur einem zusätzlichen cybernetischen Kombinator und einem Kombinator für Konstanten, was besonders für Stationen mit vielen verschiedenen Gegenständen ein Platzersparnis darstellt. Der Modus Waggonkontrolle ist dazu gedacht, den Kombinator neben einen Waggon zu platzieren und ermöglicht das setzten von Filtern. Auch gibt er aus, welche Gegenstände in diesen Wagen ein- oder ausgeladen werden sollen, was eine Unterscheidung zwischen den Waggons ermöglicht und die Informationen nicht nur Zugeweise zur Verfügung stellt. Bei Bedarf können mehrere Kombinatoren hinzugefügt werden.
Nach Nachteilen muss man suchen: Cybernetische Kombinatoren können in einigen Anwendungen Platz sparen, in anderen benötigen sie mehr Platz. Außerdem benötigen sie Strom zum funktionieren. Die automatische Erlaubnislisten kann etwas knifflig in der Bedienung sein und ist inkompatibel mit modifizierten Waggons und diagonalen Stationen. Auch gibt es keine Möglichkeit, die Zusammensetzung der erlaubten Züge zu kontrollieren ohne die automatische Erlaubnisliste zu deaktivieren. Eine gewisse Einteilung, welche Züge zu welchen Stationen dürfen ist über die Netzwerkmaske möglich.
Ein angekündigtes Feature (zum Redaktionsschluss bereits in der experimentellen Version verfügbar) ist eine Management-GUI, vergleichbar mit dem LTN-Manager, was eine von mehreren Modifikationen von Dritten ist, welche einen Überblick über die verwendeten Stationen, die verbundenen Inventare, Anforderungen, … bietet. Wenn die Management-GUI in Cybersyn implementiert ist, wird sie die selben Informationen bereitstellen.
Rail Logistics Dispatcher – eingebaute GUI
Die als zweites rausgebrachte Mod, RLD, ist auch die mit den radikalsten Änderungen, primär einer eingebauten GUI.
Wie Cybersyn verzichtet RLD darauf, die Vanilla-Zughaltestelle zu ersetzten sonder fügt eine weitere Entität hinzu, welche diese kontrolliert. Der hinzugefügte Dispatcher ist kleiner, benötigt keinen Strom und verwendet die Lampengrafik ähnlich wie LTN, um schnell erkennen zu lassen, ob die Station ordnungsgemäß funktioniert. Insgesamt benötigt die Station einen Fußabdruck von $2 \times 2 + 1 \times 1$, wobei der zweite einen Abstand von einer Kachel zur Zughaltestelle benötigt.
Während Dritt-Mods wie LTN Combinator Modernized (zu Deutsch: „modernisierter LTN-Kombinator“) und brandneu auch Cybersyn Combinator (zu Deutsch: „Cybersyn-Kombinator“) vielen geholfen haben, den Einstieg auch ohne Wissen über das Schaltungsnetz zu finden, sind sie doch immer zusätzliche Mods, welche das Spielerlebnis vereinfachen sollen. Mit dem im Hinterkopf hat man sich bei RLD dazu entschieden, eine Kontroll-GUI direkt mitzuliefern (Es gibt auch einen „Signal-Modus“, indem die Dispatcher wie im LTN mit Signalen kontrolliert werden können). Ähnlich wie in Projekt Cybersyn soll auch in RLD in Zukunft eine native Manager-GUI implementiert werden, welche einen Überblick über das gesamte Netzwerk ermöglicht.
Im Gegensatz zu den beiden vorher vorgestellten Modifikationen fügt RLD keinen neuen Signale hinzu. Alles was vorher durch Signale gelöst wurde, wie Schwellwerte/Netzwerk-IDs/Zugkonfigurationen/…, wird jetzt über eine GUI gelöst. Es gibt keine Schwellwerte pro Station oder irgendwelche globale Schwellwerte, allerdings können bestimmte Anforderungen und Schwellwerte gespeichert werden, um sie später wieder zu verwenden. Zusätzlich zur Gegenstandsanzahl und Stapelzahl können Anforderungen in RLD auch als Füllstände von Waggons definiert werden.
Anstelle der Signale über gesperrte Stapel, welche in PTN und Cybersyn zum Einsatz kommen, setzt RLD darauf, die Greifarme umzudrehen, damit sie die Gegenstände wieder in die Warenhäuser zurücklegen, aus denen sie gekommen sind. Einerseits macht das es schwieriger, Stationen zu verwenden, welche direkt vom Band beladen, andererseits können Züge, welche mehrere Gegenstände transportieren schneller beladen werden.
Durch die GUI ist RLD die einfachste der drei Mods, kommt allerdings mit einem großen Nachteil: Obwohl es sehr einfach möglich ist, Einstellungen zu speichern und später wieder zu laden, ist es nicht möglich, die Informationen im Blaupausen zu speichern. Limitierungen in der API führen dazu, das nur die Dispatcher-Entität kopiert wird, während die Einstellungen verloren gehen. Ein zweites kleineres Problem ist es, das die Eingangssignale möglicherweise vom Inventar über einen Kombinator isoliert werden müssen oder verschiedene Farben verwendet werden müssen, da der Eingang des RLD-Dispatchers negative Signale herausgibt, welche das System möglicherweise kontaminieren.
Ein Problem, welches der Modautor selbst angesprochen hat ist, dass er letztens Vater geworden ist und somit weniger Zeit hat. Bugfixes und Updates können deshalb eine lange Zeit in Anspruch nehmen, was für einige ein entscheidender Faktor sein könnte.
Abschlussgedanken
Die drei Mods sind in ihren Grundfunktionen beinahe identisch, so das jeder, der eine Mod beherrscht, schnell den Einstieg in einer der anderen findet. Jede hat ihre eigenen Vor- und Nachteile, welche ich hoffentlich oben aufgezeigt habe, so dass du dich nun selbst entscheiden kannst oder dich einfach nur freust, das es eine Auswahl gibt!
Beitragen
Wie immer suchen wir nach Leuten, die zu Alt-F4 beitragen wollen, sei es mit einem Artikel oder durch Hilfe bei Übersetzungen. Wenn du etwas Interessantes im Kopf hast, das du mit der Community in einer eleganten Art teilen möchtest, hier kannst du das tun. Falls du dir unsicher bist, beantworten wir gerne Fragen zu Inhalt und Struktur. Falls das nach etwas klingt, woran du interessiert bist, tritt unserem Discord bei, um es nicht zu verpassen!