Stranded: Alien Dawn – Erweiterte Modding-Tipps

Einige Tipps, die bei der Entwicklung komplexerer S:AD-Mods helfen würden.

 

Verwenden Sie die Versionskontrolle

Ohne ein Versionskontrollsystem ist es nahezu unmöglich, komplexe Software zu entwickeln. Bei den Mods handelt es sich tatsächlich um solche Software, auch wenn einige integrierte UI-Tools dabei helfen, sie zu vereinfachen (fast jeder kann mit dem Mod-Editor einen benutzerdefinierten Survivor erstellen).
Mit dem Versionskontrollsystem können Sie alle jemals an Ihrer Arbeit vorgenommenen Änderungen nachverfolgen, bei Problemen auf frühere stabile Versionen zurückgreifen und, was am wichtigsten ist, es mehreren Entwicklern ermöglichen, problemlos an demselben Projekt zu arbeiten.
Eine sehr beliebte Versionskontrolllösung ist GitHub. Es bietet Online-Hosting für Projekte und ermöglicht so mehreren Moddern die Entwicklung eines einzigen komplexen Mods.
Eine andere Lösung ist TortoiseSVN, ein GUI-Subversion-Wrapper, der zum Hosten des Projekts auf Ihrem eigenen Computer oder Ihrem Server verwendet werden kann. Das geht ganz einfach, die Dokumentation ist online verfügbar.
Beide Lösungsvorschläge sind selbstverständlich kostenlos (bzw. gibt es in einer kostenlosen Version).
Sobald die Versionskontrolle funktioniert, können Sie alle an Ihrem Mod vorgenommenen Änderungen verfolgen. Beispielsweise könnten kurz vor dem Hochladen der neuen Version Ihres Mods nach dem Speichern des Mods alle Änderungen überprüft werden. Dies ist ein unbedingter Schritt, da es sehr oft im letzten Moment zu Problemen kommt. Es wird berichtet, dass der Mod-Editor selbst Fehler aufweist.
Nach dem Hochladen auf Steam müssen die lokalen Änderungen auch in das Versionskontroll-Repository „übertragen“ werden.
Die Mod-Ordner, die unter Versionskontrolle stehen müssen, befinden sich in:

%appdata%\Stranded - Alien Dawn\Mods

Überwachung von Laufzeitfehlern

Wenn Sie Ihren Mod testen, zeigt das Spiel in der speziellen Mod-Karte alle Spielausgaben auf dem Bildschirm und in der Mod-Manager-Konsole an. Im Fehlerfall kann der Modder die genauen Meldungen sehen, die durch den Fehler generiert wurden, und das Problem beheben. Aber im echten Spiel, insbesondere in gespeicherten Spielen, in denen die neue Mod nicht vorhanden war, werden die Fehler nicht sichtbar sein. Daher werden viele Mods hochgeladen, ohne ausreichend getestet zu werden, und wir haben derzeit viele Fehlerberichte, bei denen ein Mod tatsächlich die Spiellogik stört.
Das Spielausgabeprotokoll, in dem eventuelle Fehler zu finden sind, wird in einer Datei gespeichert, die sich unter folgendem Verzeichnis befindet:

%appdata%\Stranded - Alien Dawn\logs

Das Problem besteht darin, dass das Spiel beendet werden muss, um das generierte Spielprotokoll zu löschen. Dies ist für das Debuggen nicht praktikabel, da es schwierig ist, die Fehler im Protokoll mit bestimmten Ereignissen im Spiel in Verbindung zu bringen. Es gibt eine einfache Möglichkeit, das Spielprotokoll außerhalb der Modding-Map in Echtzeit zu überwachen. Sie benötigen lediglich die Visual Studio-IDE. Wenn es über das Menü „Debuggen – An Prozess anhängen“ (oder die Tastenkombination Strg-Alt-P) an den Spielprozess angehängt wird, werden alle Spielprotokolle, einschließlich Fehler, in Echtzeit im „Ausgabe“-Fenster angezeigt. Der beim Anhängen zu suchende Spielprozess sollte „StrandedSteam.exe“ heißen. Für diejenigen unter Ihnen, die mit Visual Studio nicht vertraut sind, gibt es eine kostenlose Version namens „Community“, die von der Visualstudio-Website heruntergeladen werden kann.

Moduscode schreiben

Die S:AD-Game-Engine verwendet Lua als Spiellogiksprache, allerdings handelt es sich nicht um die Vanilla-Version, sondern um eine modifizierte – es gibt viele zusätzliche, geänderte oder entfernte Funktionalitäten in den Standardbibliotheken. Der Modding-Code „item“ ist ebenfalls in Lua enthalten, obwohl die Mod-Version nicht das Original verwendet, sondern eine eingeschränkte Umgebung, in der bestimmte Funktionen auf der schwarzen Liste stehen. Die Lua-Sprache selbst ist sehr einfach, jeder, der mit JavaScript oder Python vertraut ist, könnte sie verwenden ohne Probleme. Es gibt viele IDE, die zum Bearbeiten von Lua-Dateien verwendet werden können. Sehr beliebt sind Visual Studio Code und Sublime, beide sind kostenlos. Beachten Sie, dass Steam davon ausgehen könnte, dass das Spiel nach dem Schließen noch läuft, wenn die Lua-IDE aus der Modding-Umgebung gestartet wurde. Wenn das der Fall ist, schließen Sie einfach die IDE.

Benutze die In-Game-Konsole

Auf der Mod-Editor-Karte ist es möglich, über die ENTER-Taste eine In-Game-Konsole zu öffnen. Es ermöglicht die Überprüfung des Werts jeder Spielvariablen und ist somit ein gutes Testtool. Alles, was in die Konsole eingegeben wird, wird zur Laufzeit als Lua-Code ausgewertet und die Ergebnisse werden auf dem Bildschirm ausgedruckt.
Wenn beispielsweise ein Objekt ausgewählt wird, hat eine globale Variable namens SelectedObj das ausgewählte Objekt als Wert. Wenn Sie dies in die Konsole eingeben, wird der Inhalt des Objekts gedruckt, bei dem es sich um einen sehr großen Text handeln kann. Daher ist es gut, im Objekt nach bestimmten Informationen zu suchen. Wenn nach SelectedObj ein Punkt (.) eingegeben wird (da auf diese Weise in Lua auf Elemente zugegriffen wird), wird durch Drücken der TAB-Taste der Inhalt des Objekts in einer Liste angezeigt, aus der ausgewählt werden kann.
Eine weitere wichtige globale Variable, die beim Debuggen helfen könnte, ist UIPlayer. Dies ist ein Namensraum für viele wichtige Spielwerte. Beispielsweise enthält UIPlayer.labels.Buildings eine Liste mit allen platzierten Gebäuden, während UIPlayer.labels.Survivors eine Liste mit allen erzeugten Überlebenden ist. Wenn Sie diese in die Konsole eingeben, wird jedoch eine sehr große Textmenge protokolliert, was nicht sehr praktisch ist. Es gibt eine Hilfsfunktion namens ValueToStr, die verwendet werden könnte, um besser lesbaren Text anzuzeigen. Beispiele: ValueToStr(SelectedObj), ValueToStr(UIPlayer.labels).
Die Konsole unterstützt auch die automatische Vervollständigung über die TAB-Taste. Auf diese Weise ist es nicht erforderlich, den genauen Namen einer bestimmten globalen Variablen oder eines Objektmitglieds zu kennen.
Um den Bildschirm vom gedruckten Text zu befreien, verwenden Sie die Taste F9.

Arbeiten mit Spieldaten

Beim Erstellen neuer Dinge im Spiel ist es am einfachsten, den neuen Gegenstand auf einem vorhandenen Gegenstand aufzubauen. Bestimmte Mod-Elemente verfügen über die Option „Kopieren aus“ einer Vanila-Datenvoreinstellung. Dies ist jedoch nicht bei allen der Fall, und nicht alle Datenvoreinstellungen verfügen über ein Mod-Element. Oder vielleicht würde ein Mod mit den vorhandenen Voreinstellungen herumspielen, anstatt neue Voreinstellungen zu erstellen. Dieser Eingriff hat jedoch einen Nachteil, da die bloße Deaktivierung des Mods seine Auswirkungen nicht rückgängig machen würde – die Daten werden nicht neu geladen, wenn ein Mod deaktiviert wird, sondern nur der Spielcode.
Auf jeden Fall ist es nützlich, die Spieldaten irgendwie überprüfen zu können. Eine Möglichkeit besteht darin, die Spielekonsole zu verwenden, um den Inhalt der globalen Var-Voreinstellungen zu überprüfen. Es enthält fast alle Spieldaten, gruppiert nach voreingestellten Klassen. Wie im vorherigen Abschnitt beschrieben, wird durch Eingabe eines Punkts (.) nach jedem Namen in der Konsole eine Liste mit den Inhalten des aktuellen Kontexts angezeigt. Dabei konnten Ebene für Ebene sämtliche Inhalte analysiert werden.
Die Verwendung der Konsole hat jedoch ihre Grenzen, da der Dateninhalt zu komplex ist, um als großer Textblock untersucht zu werden. Es ist vielmehr erforderlich zu verstehen, welche voreingestellten Klassen im Spiel registriert sind, um für jede von ihnen ein explizites Tool aufzurufen. Es gibt einen Konsolenbefehl, der die voreingestellte Klasse akzeptiert und eine UI-Datenschnittstelle öffnet:

OpenPresetEditor("<PresetClass>")

Wo muss durch die spezifische Klasse ersetzt werden, die überprüft werden soll. Wenn Sie beispielsweise OpenPresetEditor („FXPreset“) in die Konsole eingeben, wird der FX-Editor geöffnet, der eines der geheimnisvollsten Datenelemente enthält – die visuellen und akustischen Effekte.

By injto4ka

Weitere Anleitungen:

Hinterlasse einen Kommentar

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish