- code terraform debugging beginnt damit, eine Maschine, eine Aufgabe und ein erwartetes Ergebnis zu isolieren.
- Rover-Skripte lassen sich leichter reparieren, wenn Bewegung, Scannen, Abbau und Lieferung getrennt getestet werden.
- Stromprüfungen sollten erfolgen, bevor du die Automatisierungslogik umschreibst oder eine Produktionskette erweiterst.
- Drone-Probleme entstehen häufig durch fehlende Routen, nicht verfügbare Inventarobjekte oder schlecht getaktete Produktionsaufgaben.
- Kleine Testläufe zeigen Logikfehler schneller als der Start eines vollständigen planetaren Automatisierungszyklus.
code terraform debugging: Mit dem Fehler beginnen
code terraform debugging ist am effektivsten, wenn du jede Fehlfunktion als eng begrenztes technisches Problem behandelst. Statt mehrere Zeilen gleichzeitig zu ändern, legst du fest, was die Maschine tun sollte, beobachtest, was sie tatsächlich tut, und ermittelst den ersten Punkt, an dem diese Ergebnisse voneinander abweichen.
Ein Rover, der nicht abbauen kann, kann ein Bewegungsproblem, ein ungültiges Ziel, zu wenig Energie, einen vollen Lagerraum oder ein Skript haben, das den Abbaubefehl nie erreicht. Diese Probleme können im normalen Spiel ähnlich aussehen, benötigen aber jeweils eine andere Lösung.
Beginne in einem kurzen, wiederholbaren Testgebiet. Wähle ein nahegelegenes Rohstoffvorkommen, eine mit Strom versorgte Basisverbindung und einen zugänglichen Entladepunkt. Halte die Route einfach, bis das grundlegende Verhalten funktioniert.
| Symptom | Wahrscheinlicher Prüfbereich | Erster Test |
|---|---|---|
| Rover bewegt sich nicht | Startbedingung, Route, blockiertes Gelände | Führe einen kurzen Bewegungsbefehl zu einem sichtbaren Punkt aus |
| Rover bewegt sich, scannt aber nicht | Sensorreihenfolge, Zielreichweite, Skriptablauf | Teste das Scannen ohne Abbau oder Lieferung |
| Abbau endet vorzeitig | Energie, Lagerung, Rohstoffziel | Prüfe Energie und Fracht, bevor du die Logik änderst |
| Materialien kommen nie an | Drone-Route, Inventar, Ziel | Sende eine einzelne kleine Lieferanfrage |
| Fabrik wartet unbegrenzt | Fehlender Eingang, Energie, Aufgabenreihenfolge | Prüfe den ersten nicht verfügbaren Rohstoff |
Notiere vor jedem Test das erwartete Ergebnis. Eine klare Erwartung macht es leichter festzustellen, ob das Problem bei Bewegung, Sensorik, Energie, Lagerung oder der Aufgabenreihenfolge liegt.
Erwarteter Zustand
Definiere vor dem Start des Skripts die Position der Maschine, das Ziel, die verfügbare Energie, den Frachtraum und die nächste Aktion.
Beobachteter Zustand
Halte fest, was sich geändert hat und was nicht. Konzentriere dich auf das erste unerwartete Ergebnis statt auf den endgültigen Fehler.
Kleinste Änderung
Ändere jeweils nur eine Bedingung, einen Befehl oder eine Route und wiederhole anschließend denselben Test unter vergleichbaren Bedingungen.
Ein nützliches Debugging-Protokoll kann kurz sein:
- Startposition: Wo befand sich der Rover oder die Drone?
- Verfügbare Energie: War die Maschine mit einer funktionierenden Energiequelle verbunden?
- Zielstatus: War der Rohstoff, das Ziel oder der Produktionseingang verfügbar?
- Frachtstatus: War genügend Platz für den nächsten Gegenstand vorhanden?
- Letzte bestätigte Aktion: Welcher Befehl wurde definitiv abgeschlossen?
Dieser Ansatz verhindert einen häufigen Fehler: das sichtbare Symptom zu beheben, während die ursprüngliche Ursache bestehen bleibt. Wenn ein Rover einen Abbauort erreicht, aber ohne Rohstoffe zurückkehrt, funktioniert die Bewegung wahrscheinlich. Prüfe stattdessen das Scanergebnis, die Abbaubedingung, den Lagerstatus und den Auslöser für die Rückkehr.
Workflow zum Debuggen von Rover-Skripten
Die Rover-Automatisierung wird leichter wartbar, wenn das Skript einer vorhersehbaren Abfolge folgt. Ein zuverlässiges Muster lautet Bedingungen prüfen, bewegen, scannen, handeln, überprüfen und zurückkehren. Du kannst dieses Muster an verschiedene Rohstoffrouten anpassen, ohne das gesamte Skript neu aufzubauen.
Verwende eine vorläufige Testroute, bevor du eine lange Abbauschleife erstellst. Die erste Version sollte eine einzige Fahrt durchführen und dann anhalten. Sobald der Rover diese Fahrt zuverlässig abschließt, kannst du wiederholte Schleifen, mehrere Rohstoffziele oder ein fortgeschritteneres Wiederherstellungsverhalten hinzufügen.
| Testphase | Was zu überprüfen ist | Erfolgreiches Ergebnis |
|---|---|---|
| Initialisierung | Der Rover hat Energie und einen gültigen Ausgangszustand | Das Skript startet ohne unerwartetes Warten |
| Navigation | Das Ziel ist erreichbar | Der Rover kommt in der Nähe des vorgesehenen Ortes an |
| Scannen | Der Sensor kann das Ziel erkennen | Ein Rohstoff- oder Geländeergebnis wird zurückgegeben |
| Aktion | Der Abbaubefehl kann ausgeführt werden | Fracht- oder Rohstoffmenge ändert sich |
| Überprüfung | Das Skript prüft das Ergebnis | Der Fehler wird vor dem Fortfahren erkannt |
| Rückkehr | Der Entladepunkt ist erreichbar | Die Materialien kommen im vorgesehenen Basisbereich an |
Debugge nicht zuerst eine vollständige Route mit mehreren Knoten. Eine lange Schleife kann den ursprünglichen Fehler verbergen und die Trennung von Timing-, Fracht- und Energieproblemen erschweren.
Erstelle einen Test mit einer Aufgabe
Entferne zusätzliche Verhaltensweisen und lasse nur ein Ziel übrig, zum Beispiel das Erreichen eines nahegelegenen Vorkommens oder das Scannen eines markierten Bereichs. Damit soll bestätigt werden, dass der grundlegende Befehl in der aktuellen Umgebung funktioniert.
Füge eine Aktion hinzu
Nachdem die Bewegung funktioniert, füge das Scannen oder den Abbau hinzu, aber nicht beides gleichzeitig, wenn das Ergebnis unklar ist. Bestätige, dass der Rover seinen Zustand oder seine Fracht wie erwartet ändert.
Überprüfe das Ergebnis
Füge eine Bedingung hinzu, die prüft, ob die Aktion das beabsichtigte Ergebnis erzeugt hat. Wenn kein Rohstoff gesammelt wurde, leite das Skript zu einem sicheren Halt oder einem Diagnosezweig, statt blind weiterzulaufen.
Füge die Rückroute hinzu
Schicke den Rover zurück zu seinem Entladebereich und bestätige, dass der Rückweg mit dem neuen Frachtzustand funktioniert.
Verwandle den Test in eine Schleife
Erst nachdem eine vollständige Fahrt erfolgreich war, solltest du Wiederholungen, alternative Ziele, Verhalten bei niedriger Energie oder Routenauswahl hinzufügen.
Wenn ein Rover unerwartet anhält, vergleiche die letzte erfolgreiche Phase mit der ersten fehlgeschlagenen Phase. Wenn er die Navigation abschließt, aber nie mit dem Abbau beginnt, konzentriere dich auf die Zielerkennung und die Aktionsbedingungen. Wenn er erfolgreich abbaut, aber nicht zurückkehrt, prüfe Frachtlimits, Energiereserven und den Auslöser für die Rückkehr.
Halte das Wiederherstellungsverhalten zunächst einfach. Ein Rover mit niedriger Energie kann zur Basis zurückkehren, pausieren, bis das Aufladen möglich ist, oder sicher anhalten. Ein Skript, das eine fehlgeschlagene Aktion wiederholt versucht, kann Energie verschwenden und es schwieriger machen, das ursprüngliche Problem zu finden.
Prüfungen für Energie, Sensoren und Timing
Automatisierung kann fehlerhaft wirken, obwohl das eigentliche Problem im unterstützenden Netzwerk liegt. Rover- und Drone-Skripte hängen von den Bedingungen in ihrer Umgebung ab, darunter Energieverfügbarkeit, Verbindungsreichweite, Zugänglichkeit des Ziels und der Zeitpunkt von Produktionsaufgaben.
Prüfe das Solarnetz, bevor du ein funktionierendes Skript änderst. Wenn das Netzwerk zu wenig Energie liefert, können Maschinen an unterschiedlichen Punkten derselben Route pausieren. Dadurch entstehen uneinheitliche Ergebnisse: Ein Test gelingt während eines Zeitraums mit hoher Energieversorgung, während ein anderer scheitert, wenn mehrere Maschinen gleichzeitig arbeiten.
| System | Debugging-Frage | Praktische Reaktion |
|---|---|---|
| Solarerzeugung | Wird für die aktuelle Last genügend Energie erzeugt? | Pausiere nicht benötigte Maschinen und teste erneut |
| Energiespeicher | Ist gespeicherte Energie verfügbar, wenn die Erzeugung sinkt? | Führe eine kürzere Route aus oder verbessere die Reservekapazität |
| Rover-Sensor | Liefert der Scan ein gültiges Ziel? | Teste den Sensor in einem bekannten Rohstoffgebiet |
| Drone-Ziel | Kann das Ziel den angeforderten Gegenstand aufnehmen? | Verwende eine einzelne Lieferung zu einem eindeutig verfügbaren Lagerpunkt |
| Produktionskette | Fehlt ein Eingang oder kommt er verspätet? | Verfolge die Kette von der wartenden Maschine rückwärts |
Wenn sich eine Maschine bei identischen Tests unterschiedlich verhält, vergleiche die Energieverfügbarkeit und die Aktivität nahegelegener Maschinen, bevor du das Skript umschreibst.
Timing-Probleme verdienen besondere Aufmerksamkeit. Ein Skript kann eine Aktion anfordern, bevor das Ziel bereit ist, bevor eine Drone den Eingang geliefert hat oder bevor am Ziel genügend Lagerkapazität vorhanden ist. Füge zwischen wichtigen Aktionen ausdrückliche Prüfungen ein, anstatt anzunehmen, dass jeder Vorgang sofort abgeschlossen wird.
Eine Produktionsroutine kann beispielsweise dieser Logik folgen:
- Prüfe, ob der benötigte Rohstoff vorhanden ist.
- Bestätige, dass die Maschine Energie hat.
- Starte die Produktion.
- Warte, bis sich der Produktionsstatus ändert.
- Bestätige, dass der fertige Gegenstand vorhanden ist.
- Fordere die nächste Lieferung erst an, nachdem das Ergebnis verfügbar ist.
Vermeide eine einzige weit gefasste Bedingung für mehrere voneinander unabhängige Aufgaben. Eine Bedingung wie „fortfahren, wenn Ressourcen vorhanden sind“ sagt möglicherweise nicht aus, ob sich das Material in der Rover-Fracht, im Drone-Lager, einem Fabrik-Eingangsplatz oder einem zentralen Lager befindet. Mache jede Inventarprüfung spezifisch für die betreffende Maschine und das jeweilige Ziel.
Verwende kontrollierte Timing-Tests:
- Führe das Skript nur mit dem Ziel-Rover aktiv aus.
- Wiederhole den Test bei normaler Grundlast des Solarnetzes.
- Füge eine Drone-Route hinzu.
- Füge eine Produktionsmaschine hinzu.
- Vergleiche den Punkt, an dem sich das Verhalten ändert.
Dieser schrittweise Ansatz hilft zu erkennen, ob das Skript fehlerhaft ist oder ob mehrere Maschinen um dieselbe Energie- und Logistikkapazität konkurrieren.
Drone-Logistik und Produktionsketten
Drone-Automatisierung bringt mehr Abhängigkeiten mit sich als eine einzelne Rover-Route. Ein erfolgreicher Logistikzyklus benötigt eine gültige Quelle, einen verfügbaren Gegenstand, ein Ziel, das ihn aufnehmen kann, und genügend Netzwerkkapazität für den Transfer.
Wenn eine Fabrik anhält, debugge vom Ergebnis rückwärts. Beginne mit dem Gegenstand, den die Fabrik herstellen soll. Bestätige, dass die Maschine mit Energie versorgt und bereit ist, und prüfe anschließend ihr Eingangs-Inventar. Wenn ein Eingang fehlt, verfolge dieses Material zur vorherigen Verarbeitungsstufe und anschließend zur Drone-Route oder Versorgungslinie des Rovers zurück.
| Kettenstufe | Fehlerfrage | Empfohlene Prüfung |
|---|---|---|
| Gewinnung | Wurde der Rohstoff gesammelt? | Prüfe die Rover-Fracht und das Sammelergebnis |
| Lagerung | Wird das Material am erwarteten Ort gelagert? | Prüfe das Inventar und die Kapazität des Ziels |
| Transport | Wurde eine Lieferanfrage erstellt? | Teste einen Gegenstand auf einer Route |
| Verarbeitung | Hat die Maschine den Eingang erhalten? | Vergleiche das Eingangs-Inventar vor und nach der Lieferung |
| Ergebnis | Wurde der fertige Gegenstand erstellt? | Prüfe das Ausgangslager und den Produktionsstatus |
Eine wartende Produktionsmaschine ist normalerweise nur das letzte Symptom. Suche den ersten fehlenden Gegenstand in der Kette, statt die Fabrik wiederholt neu zu starten.
Führe einen Logistiktest mit einem einzigen Gegenstand durch, bevor du ein vollständiges Versorgungsnetz aktivierst. Wähle einen Rohstoff und ein Ziel. Wenn diese Lieferung erfolgreich ist, füge das nächste Material oder die nächste Verarbeitungsstufe hinzu. So entsteht eine verlässliche Grundlage für die Erweiterung.
Quelle
Bestätige, dass der Rover, die Lagereinheit oder die Verarbeitungsmaschine den angeforderten Gegenstand tatsächlich verfügbar hat.
Route
Prüfe, ob die Drone einen gültigen Ausgangspunkt, ein gültiges Ziel und einen erreichbaren Weg hat.
Kapazität
Stelle sicher, dass das Ziel die Lieferung aufnehmen kann und die Drone genügend Platz für ihre Ladung hat.
Priorität
Verhindere, dass Lieferungen mit niedriger Priorität Energie, Reparaturen oder wichtige Produktionsmaterialien verzögern.
Ein gutes Logistikskript sollte auch mit fehlenden Materialien umgehen, ohne in eine endlose Wiederholungsschleife zu geraten. Füge eine klare Ausweichoption hinzu, etwa Warten, eine andere Quelle anfordern, zur Basis zurückkehren oder die fehlgeschlagene Bedingung zur späteren Überprüfung protokollieren.
Benenne Routen in großen Automatisierungssystemen nach ihrer Funktion statt nach der Maschinennummer. Bezeichnungen wie „Erz-zur-Raffinerie“ und „Batterie-zur-Drone-Bucht“ machen das Debugging schneller als unbenannte Routeneinträge. Weise jeder Route nach Möglichkeit nur eine Aufgabe zu.
Die Erweiterung sollte einer stabilen Reihenfolge folgen:
- Beweise die Gewinnungsroute.
- Beweise die Übergabe an das Lager.
- Beweise die Drone-Lieferung.
- Beweise die Verarbeitungsmaschine.
- Füge Wiederholungen und Prioritätsregeln hinzu.
- Verbinde das fertige Produkt mit der nächsten Kette.
Diese Struktur begrenzt Kaskadenfehler und erleichtert es, einen Teil des Netzwerks auszutauschen, ohne jede aktive Maschine anzuhalten.
Debugging-Checkliste und zuverlässige Lösungen
Sobald ein Skript in einem kleinen Test funktioniert, solltest du es anhand einer wiederholbaren Checkliste prüfen, bevor du es in einem großen Terraforming-Projekt einsetzt. Das Ziel besteht nicht nur darin, die Maschine einmal zum Laufen zu bringen, sondern auch zu bestätigen, dass sie normale Änderungen bei Energie, Entfernung, Fracht und Produktionsbedarf bewältigen kann.
Vor der Aktivierung einer langen Automatisierungsschleife:
- Bestätige, dass der Rover oder die Drone Energie und eine gültige Startposition hat
- Teste den Zielscan, das Ziel oder den Produktionseingang unabhängig
- Prüfe die Frachtkapazität und den Lagerplatz an beiden Enden der Route
- Füge eine Reaktion auf fehlende Rohstoffe, blockierte Routen oder niedrige Energie hinzu
- Führe einen vollständigen Zyklus aus, bevor du wiederholte Automatisierung aktivierst
Bewahre eine kurze funktionierende Version neben der erweiterten Version auf. Wenn eine neue Schleife oder Lieferregel fehlschlägt, vergleiche sie mit dem zuletzt bekannten funktionierenden Skript, statt von vorn zu beginnen.
Verwende die folgenden Reparaturprioritäten:
| Priorität | Zuerst beheben | Warum es wichtig ist |
|---|---|---|
| 1 | Energie und Verfügbarkeit der Maschine | Eine energielose Maschine kann die Skriptlogik nicht validieren |
| 2 | Gültigkeit von Ziel und Zielort | Ungültige Endpunkte verursachen scheinbare Logikfehler |
| 3 | Inventar und Kapazität | Ein volles Lager kann ansonsten korrekte Automatisierung stoppen |
| 4 | Timing der Aktionen | Zu frühe Befehle können ausgeführt werden, bevor Eingänge oder Zustandsänderungen bereit sind |
| 5 | Optimierung | Verbessere Routenlänge und Durchsatz erst nach der Herstellung der Zuverlässigkeit |
Wenn eine Lösung funktioniert, notiere, was geändert wurde und unter welchen Bedingungen sie funktioniert hat. Halte die Maschine, Route, das Ziel, den Energiezustand und den Frachtstatus fest. Dadurch entsteht eine praktische Referenz für spätere Automatisierungsaufbauten.
Vermeide mehrere Verbesserungen während eines einzigen Tests. Wenn du gleichzeitig die Route änderst, eine neue Bedingung hinzufügst, die Produktion erhöhst und eine weitere Drone aktivierst, lässt sich das Ergebnis nicht sinnvoll interpretieren. Nimm eine Änderung vor, wiederhole denselben Test und behalte das Ergebnis nur, wenn sich das Verhalten verbessert.
Q: Was ist der beste erste Schritt für code terraform debugging?
Reduziere das Problem auf eine Maschine und eine Aufgabe. Teste Bewegung, Scannen, Abbau, Lieferung oder Produktion getrennt, bevor du die vollständige Automatisierungskette verbindest.
Q: Warum funktioniert ein Rover-Skript einmal und hält dann an?
Prüfe Energiereserven, Frachtkapazität, Zielverfügbarkeit und Rückkehrbedingungen. Wiederholte Durchläufe zeigen häufig einen vollen Lagerraum oder einen fehlenden Wiederherstellungszweig.
Q: Wie debugge ich eine Drone, die keine Materialien liefert?
Teste einen Gegenstand zwischen einer bestätigten Quelle und einem Ziel. Überprüfe das Inventar der Quelle, den Routenzugriff, die Kapazität des Ziels und den Zeitpunkt der Lieferanfrage.
Q: Sollte ich Routen optimieren, bevor ich Fehler behebe?
Nein. Erstelle zuerst einen zuverlässigen Zyklus. Sobald die Route regelmäßig abgeschlossen wird, kannst du Entfernung, Priorität, Energieverbrauch und Produktionsdurchsatz verbessern.
Ein stabiles Automatisierungsnetz entsteht durch kontrollierte Experimente. Beginne mit einer sichtbaren Route mit geringem Risiko, bestätige jede Übergabe und erweitere das System erst, wenn sich die vorherige Stufe vorhersehbar verhält. Mit diesem Vorgehen wird code terraform debugging zu einem wiederholbaren Bestandteil beim Entwurf von Rover-, Drone-, Energie- und Produktionssystemen und nicht zu einer Notfallmaßnahme für eine beschädigte Kolonie.