Alt-F4 #13 – Megabasenarchäologie  13.11.2020

Geschrieben von stringweasel, editiert von Conor_, Nanogamer7, Therenas, nicgarner, Firerazer,
übersetzt von Nanogamer7, dexteritas, EDLEXUS, lektoriert von BluePsyduck

Inhaltsverzeichnis

In dieser 13ten Ausgabe von Alt-F4, die geisterhafterweise auf Freitag den 13ten fällt (fast als hätten wir das so geplant), fokussieren wir unsere Aufmerksamkeit auf ein einziges Thema: So viele Raketenverteidigungen wie möglich zu produzieren. Jetzt stellt sich die Frage, was sind Raketenverteidigungen? Nun stringweasel ist hier, um uns aufzuklären und in eine einfachere Zeit mitzunehmen, die Zeit von 0.11.

Nauvis Archive: Eine Raketenverteidigung Pro Minute stringweasel

Seit Anfang an haben Spieler die Grenzen von Factorio ausgereizt; zu schauen, wie groß sie ihre Basis bauen können, bevor das Spiel zum Stillstand kommt und an einem langsamen und schmerzvollen UPS-Tod verendet. Über die Jahre hinweg wurden diese Grenzen wieder und wieder durchbrochen, da die Spieler immer wieder neue Höhen erreichten. Heutzutage zielen Rekorde es ab, kontinuierlich so viel Wissenschaftspakete wie möglich zu verbrauchen, gemessen in Wissenschaft pro Minute, oder spm (science per minute). Der relevanteste limitierende Faktor ist dabei, dass größere Fabriken auch deine „Updates pro Sekunde“, oder UPS, mit denen dein Computer laufen kann, verringern. Eine große Megabasis nahe der optimalen 60 UPS zu halten ist eine Kunst für sich, und mit niedrigeren UPS zu spielen verlangsamt physisch das Spiel, was es sehr zeitintensiv macht, deine Fabrik weiter zu vergrößern.

Aktuell scheint der Weltrekord in spm u/swolars 60 UPS 20 kspm Basis zu sein. Diese unglaubliche Basis läuft in Vanilla, aber wurde mit ein paar Mods und Konsolenbefehlen gebaut, um Erze und ähnliches zu generieren. Vor fast drei Jahren wurde der Rekord von u/SteveTrov mit seiner semi-vanilla 15 rpm Basis bei 15 UPS gehalten. (Beachte der Maßstab war rpm, kurz für Raketen pro Minute, weil das vor unendlicher Wissenschaft war, welche erst das spm-Maß möglich machte.) Auch bemerkenswert war die semi-vanilla 10 rpm Basis von u/AccidentalChef mit 10 UPS aus der selben Zeit, welche SteveTrov dazu bewegt hat auf 15 rpm zu gehen.

Dann gibt es die Sorte von Spielern, die wahre Vanilla-Megabasen bauen, ohne der Verwendung des Editors oder von Konsolenbefehlen, und manchmal sogar mit Beißern, welche große Bauten wesentlich schwerer machen. Dieser Rekord wird wahrscheinlich von Gh0stP1rate und Harmiebarmunds 10 kspm Basis mit 15 UPS gehalten, und wurde vor weniger Zeit erst gebrochen. Der vorherige Rekord dieser Sorte wurde wahrscheinlich auch von u/SteveTrov gehalten, welcher eine 5,8 kspm Basis im August 2020, laufend bei 90 UPS, hatte, die im „old-school Weg“ gebaut wurde.

Also, wie hat die größte Megabasis vor fünf Jahren ausgeschaut – sogar bevor wir Raketenwerfer hatten; in den Zeiten von Factorio 0.11? Es gibt eine Basis, die wirklich vom Rest herausgestochen ist, und ich hatte mit dem Ersteller DaveMcW ein Schwätzchen über sein Design.

Die Geschichte

Damals, vor 0.12, wurden Basen in Raketenverteidigungen pro Stunde, oder rdph (rocket defence per hour) gemessen. Raketenverteidigungen waren der finale Endspielgegenstand, der eine Siegesbedingung erfüllte, aber sie waren sehr teuer, daher das „pro Stunde“. Die Idee war es „die Landung einer Rettungsflotte zu beschützen“ – auch wenn keine Rettungsflotte je angekommen ist. Basen erreichten schon nur sehr selten 1 rdph, nicht zu sprechen von 60 rdph. Damals war es einfach kaum erreichbar Basen in so einem Maßstab zu bauen, und es wurde diskutiert ob das Spiel so große Fabriken überhaupt handhaben könnte. Zum Beispiel war die größte Fabrik damalig wahrscheinlich die von ColonelWill, welche 15 rdph erreichte, aber nicht konsistent, da die Ressourcen ausgingen. Und sie wurde mit Hilfe einiger Mods wie FARL errichtet. Dann, am 29. Juni 2015 zeigte DaveMcW der Welt mit seiner rekordbrechenden old-school 60 rdph (oder 1 rpm) Megabasis was möglich war.

Eine-Raketenverteidigung-pro-Minute Basis von DaveMcW (auf Reddit und in den Factorio Foren veröffentlicht).

Diese 6km-mal-6km Basis schockierte die Community, wie es deutlich im Topkommentar von u/TheWrongCat klar ausgedrückt wurde. Es hat einige von Factorio größten Baumeistern, inklusive u/Zistau, u/rootnegative und u/Xterminator5 überrascht. Sogar Wube’s Gründer u/kovarex kommentierte wie schwierig es wäre Factorio genug zu optimieren, um in dieser Basis 60 FPS/UPS zu erreichen (mehr dazu später). Diese Basis wurde sogar in FFF-93 als „die größte je gebaute Basis“ erwähnt, und wurde von den Entwicklern für einige Zeit lang als Optimierungs-Benchmark verwendet. DaveMcW hat viele Erwartungen gebrochen über was in Factorio möglich ist.

Es sollte erwähnt werden, dass es nicht als Überraschung kam, dass DaveMcW derjenige war, der diese rekordbrechende Basis designte; er war immer am Rand des Möglichen von technischem Factorio. Beispielsweise war er der ursprüngliche Erfinder des Blaupausenstrings, welcher später in Vanilla hinzugefügt wurde. Er baute das erste große Farbdisplay, Darude’s Sandstrom abbildend. Er erstellte die Mod namens Recursive Blueprints (zu Deutsch: „rekursive Blaupausen“) um Blaupausen zu automatisieren, und hat dann mit der Mod eine vollfunktionale Fabrik gebaut, die nur 9x14 Kacheln verbrauchte. Er hat sogar den Ursprung der originalen Alien-Artefakt-Grafik gefunden!

Was ist die große Sache?

Die Größe und der Durchsatz dieser Basis ist erschütternd, sogar für heutige Standards. Damals war Factorio bei weitem nicht so optimiert wie es heute ist, weshalb die Fabrik nur 2 FPS/7 UPS erreichte wenn sie mit voller Pulle lief! Um das mit dem zu vergleichen, was wir heute wissen, können wir auf die unglaubliche Menge an Schaltkreisen, die sie verbrauchte, schauen, welche die Hauptzutat für Raketenverteidigungen ist. Es stellt sich heraus, dass das fast mit einer vollen-Produktivitätsbonus 2,5 kspm Fabrik von heute gleichkommt. Was er gebaut hat war aber komplett neu; es war ausschließlich Vanilla, inklusive Beißer, ohne copy-paste-undo, keine Blaupausenbücher, kein persönlicher Roboterhangar, ohne einer Echtzeit-Kartenansicht, oder irgendwelchen vorhandenen Rechnern, alles während er mit 5 FPS/15 UPS (stillstehende Fabrik) spielte. Eine wahre old-school Basis.

Damals war es nicht trivial einfach diesen Durchsatz zu erreichen. Zum Beispiel haben Fließbänder um Ecken Kompression verloren. Dann gibt es die Effektverteiler, die in mehr oder weniger jeder Megabasis verwendet werden. Sie verkleinern deine Basis und erhöhen deine UPS, erfordern jedoch einen hohen Durchsatz an Gegenständen, um die Versorgung aufrechtzuerhalten. Heutzutage ist es trivial 12 Effektverteiler um eine Montagemaschine zu platzieren mit genügend Greifarmen und Fließbändern, um sie zu versorgen/entladen. Aber in 0.11 gab es keine Stapelgreifarm, und der einzige Stapelgrößenbonus war für Behälter-zu-Behälter Übertragungen, wo bis zu 5 Gegenstände auf einmal bewegt werden konnten. Dies bedeutete, dass es zu einem Problem wurde, einfach genügend Greifarme neben einer Montagemaschine zu platzieren. Im Bild unten zum Beispiel, beachte wie die Plastik produzierende Chemiefabriken vier Ausgangsgreifarme haben, obwohl sie nur von jeweils vier Effektverteilen betroffen sind.

Eine Bereich von Schaltkreisproduktion, der durch die Basis mehrfach gespiegelt ist. Beachte die Anzahl an Greifarmen um die Plastik-produzierende Chemiefabrik, und wie auf einem komprimierten Fließband wie die ganz rechte Kupferlinie die Gegenstände überhaupt nicht komprimiert ausschauen, sondern einigermaßen verteilt. (10-fach beschleunigt)

Noch bemerkenswerter ist genug Ressourcen für die Basis zu importieren; es wird ein Logistiknetzwerk benötigt, dass auch für heutige Standards noch massiv ist. Ein großer Grund dafür ist, dass es in 0.11 noch keine Abbauproduktivität gab, was hieß das Erzflecken sehr schnell aufgebraucht wurden, und eine Megabasis zu erhalten bestand leider aus konstantem Erneuern der Außenposten (daher das Hinzufügen von Abbauproduktivität in 0.15). DaveMcW löste linderte das Problem, indem er ein absolut gigantisches Außenpostennetzwerk mit Zügen baute. Mit 72 Entladestationen über vier separate Zugnetzwerke hatte er 216 Züge, die Erz aus 216 Außenposten importierten. (Nein, das ist kein Tippfehler.) Soviel benötigte er um seine Fabrik laufen zu lassen, ohne dass ihm Erze ausgingen, zumindest für 20 Stunden. Zusätzlich hatte er 1.091 beschleunigte Förderpumpe auf erschöpften Ölfeldern, alle mit Rohren zur Hauptbasis geleitet. Denk daran, in 0.11 gab es noch keine Kesselwagen.

Das weitläufige Schienennetzwerk selbst, welches DaveMcWs Lieblingsaspekt der Basis ist, ist auch faszinierend. Wie bereits erwähnt war es gigantisch, mit 216 Zügen zwischen den 216 Außenposten rasend bewegend (sie wurden mit Kohle betrieben). In 0.11 gab es keine Kettensignale, weshalb große Kreuzungen mit hohem Durchsatz als Ziel, und die sich nicht verklemmten, schwierig waren zu konstruieren. Seine Lösung war es den Bedarf für Kreuzungen komplett zu beseitigen. Stattdessen bestand jedes der vier gespiegelten Zugnetzwerke aus einer großen Schlaufe, wodurch sich Verkehr nie von gegenüberliegenden Richtungen kreuzte! In 0.11 hatten Fahrpläne auch nur eine Zeit-in-Station Bedingung. Um sicherzustellen, dass von allen Außenposten gleich viel genommen wurde, musste für jeden der 216 Züge eine eigene Wartezeit festgelegt werden. Es sollte auch erwähnt werden, dass das einfache Bauen von Schienen in 0.11 schon nicht so einfach war wie es heute mit der klick-und-zieh Mechanik ist. Vor 0.13 mussten Schienen Stück für Stück mit geraden und gekrümmten Schienenstücken platziert werden. Zum Vergleich, diese gigantische Schienennetzwerk hatte fast 77.000 Stücke an Schienen. Die meisten davon wurden wahrscheinlich händisch platziert, da sie von Robotern nur platziert werden konnten, wenn sie vom Logistiknetzwerk abgedeckt wurden (persönliche Roboterhangars waren nicht vorhanden).

Hauptstrecke (links nach rechts) mit einer Abzweigung zu einem Außenposten (unten) und einem Eisen-Außenposten (unten rechts). Beachte die alten Zuggrafiken und die am Boden liegenden Alien-Artefakte. (10-fach beschleunigt)

Schlussendlich ist meiner Meinung nach der beeindruckendste Teil der elegante und einfache Aufbau der Basis, obwohl sie mehr als den vierfachen Durchsatz jeder Basis, die davor kam, hat. Es brauchte DaveMcW 11 Monate, die Basis zu entwerfen und zu bauen, und das kannst du in der Genauigkeit seines Bauwerks sehen. Ein Fließband ist nur so schnell, wie es sein muss, und nie unnötig platziert. Alle Verhältnisse sind innerhalb weniger Prozent perfekt. Daher stauen sich Fließbänder auch selten zurück, was die Fabrik lebendiger aussehen lässt. Und alles ist wunderbar von einem einzelnen Punkt ausgehend und die Raketenverteidigung hervorhebend in vier Richtungen gespiegelt. Und der Fakt, das alles sogar ohne Mods und ohne persönlichem Roboterhangar erbaut wurde, ist verblüffend.

Betrieb der Fabrik in 1.0

Ich war neugierig, wie diese Megabasis in Factorio 1.0 mit all den Optimierungen, die die Entwickler in den vergangenen fünf Jahren vorgenommen haben, funktionieren würde. Also habe ich sie migriert. Es dauerte länger als erwartet, aber sie funktioniert! Zur Referenz: Auf meinem PC mit 0.11.22 läuft die Basis mit 2 FPS/6 UPS, aber in 1.0 erreicht sie etwa 65 FPS/65 UPS mit qualitativ hochwertiger Grafik! (Hinweis: Die Migration auf 1.0 ist keineswegs perfekt. Das Ziel war einfach, dass alle Maschinen ähnlich wie 0.11 laufen sollten. Es gibt wahrscheinlich etwas, das ich übersehen oder einfach ignoriert habe, zum Beispiel die vernachlässigbare Energieerzeugung.)

Visualisierung von Produktionsgraphen
Die neue Produktionsgrafik zeigt fast genau die vor mehr als fünf Jahren hergestellten Gegenstände. Der mittlere Bereich zeigt den Fail/Fix-Prozess (keine genaue Darstellung der aufgewendeten Zeit).

Einer der vier gespiegelten Schaltkreisaufbauten. Man beachte das Layout: Es ist mit vier ähnlichen Abschnitten von links nach rechts gespiegelt, und es zeigt drei sich wiederholende Reihenabschnitte.

Es waren ziemlich viele Änderungen erforderlich, um diese alte Basis in 1.0 zu betreiben. Es begann mit dem Hinzufügen von Elementen und dem Ändern von Rezepten, um 0.11 nachzuahmen, wobei die Flüssigkeitsmengen mit zehn multipliziert und das Verhältnis von fortgeschrittenen Schaltkreisen zu Kupferkabeln 8:1 und nicht 6:1 beträgt. Dann gab es einfachere Änderungen wie das Ersetzen kleiner Pumpenanlagen (bei denen DaveMcW auch der Experte war) durch einzelne Pumpen; die kleinen Pumpen von 0.11 waren viel schwächer als die heutigen Pumpen, so dass man mehrere parallel haben musste, um den vollen Durchfluss aufrechtzuerhalten. Eine weitere notwendige Änderung war das manuelle Hinzufügen eines Fließbands direkt vor den Greifarmen, wo es bisher nicht benötigt wurde und das für die meisten Außenposten gefixt werden musste! Und wie bereits erwähnt, war die Stapelgröße der Greifarme damals immer eins, außer beim Wechsel von einer Kiste zur anderen, dann betrug der Bonus fünf. Dies wurde individuell für jeden Greifarm mit Hilfe eines Skripts festgelegt.

Unterschied zwischen den alten Kleinpumpenanlagen und den neuen Pumpen (links), einschließlich der neuen Offshore-Pumpe (rechts) und der Zugabe von verschmutztem Wasser. Beachte auch die Änderung in der Art und Weise, wie Kachelübergänge gehandhabt werden.

Es gab noch einige andere Veränderungen, die zunächst nicht offensichtlich, aber recht interessant waren. Zum Beispiel war der Durchsatz eines Teilerfließbands in 0.11 durch seine Ausgangsgeschwindigkeit begrenzt, während er heute durch seine Eingangsgeschwindigkeit begrenzt ist. Ein gelbes Teilerfließband könnte zwei volle gelbe Fließbänder ausgeben, mit nur einem roten Fließband als Input. Ich musste auch sicherstellen, dass die Beißer nicht mit veralteten Abwehrmitteln in den Begrenzungsring eindringen konnten. Das liegt zum Teil daran, dass es in 0.11 keine Kolossalen Beißer gab, aber das Hauptproblem war, dass DaveMcW einen alten Gürteltrick verwendete, der die Angriffsanimation eines Speiers unterbrach und verhinderte, dass der Speier Schaden anrichten konnte. Das bedeutete, dass sich die Lasertürme nur auf die Nahkampfbeißer konzentrieren mussten. Dieser Gürteltrick funktioniert nicht mehr, was bedeutet, dass der Begrenzungsring auch mit Speiern handhaben muss. Um dieses Problem für 1.0 vollständig zu umgehen, ohne den Leistungseinfluss der Beißer zu verlieren, habe ich ein Skript verwendet, um die ~24.000 Lasertürme 50 Mal leistungsstärker zu machen.

Fließbandtrick mit Laser Grenzwall
Grenzwall in der 0.11 Basis, der das Fließband zeigt, das die Angriffsanimation des Speiers unterbricht. Beachte die alte 1x1-Laserturm-Grafik. (Bild von hier)

Schließlich musste ich alle vertikalen Zughaltestellen manuell modifizieren, was der zeitaufwendigste Teil war, da es über 100 davon gibt! Dies liegt daran, dass vor 0.13 vertikale und horizontale Bahnhöfe aufgrund der 2,5D-Weltprojektion von Factorio unterschiedlich lang waren. Alles in allem war es eine sehr interessante und aufregende Herausforderung, Engpässe und andere Probleme zu finden und zu beheben, indem nicht die Basis selbst, sondern das Spiel verändert und repariert wurde.

Kartenansicht des Schienennetzes, die nur ein Achtel der Außenposten zeigt.
Kartenansicht des Schienennetzes, die nur 27 der 216 Außenposten zeigt.

Erlebe diese Basis selbst

Diese Basis ist bemerkenswert und wird immer als eine der ersten echten Megabasen in Erinnerung bleiben. Und du kannst diese Basis selbst erkunden, indem du einfach den 1.0 Speicherstand und das notwendige kleine Mod-Paket hier herunterlädst. Oder, wenn du gerne retro bist und Geduld hast, kannst du einfach Factorio 0.11 und DaveMcWs Original 0.11 Speicherstand herunterladen. Oder, wenn du dich nur kurz umsehen möchtest, kannst du es dir sogar im Google Map-Format hier ansehen, das von Twinsen erstellt wurde. Allerdings wird es Internet-Punkte geben, die an die erste Person vergeben werden, die den Roboport findet, den DaveMcW vor fünf Jahren fallen gelassen hat.

Abschließend möchte ich darum bitten, dass einer der vier gespiegelten Schaltkreisaufbauten in den kommenden Hauptmenü-Simulationen von Factorio platziert wird. Der Aufbau ist chaotisch, aber immer noch hoch optimiert, präzise umgesetzt und sehr ansprechend anzusehen. Wichtiger noch: Auf dieser Basis wurden Megabasis-Prinzipien festgelegt, die in einer Zeit, in der die Kunst der hochoptimierten Builds gerade erst begonnen hatte, für die kommenden Jahre gültig sein sollten. Es ist eine Basis, an die man sich für immer erinnern wird. (Oder zumindest bis diese Rettungsflotte endlich eintrifft.)

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!