PC Darkstar One Mod "original (fixed)"

Norbert

Moderator
Teammitglied
Darkstar One Mod "original (fixed)"
Eigentlich ist es keine wirkliche Mod, sondern entspricht vielmehr dem Originalspiel, wobei einige der schwerwiegendsten Programmierfehler beseitigt wurden, die ansonsten in Verbindung mit den neuen Funktionsbibliotheken (vor allem der MissionLib.lua) aus der Mod "Versteckte Cluster" zum Absturz führen würden. Diese neuen Funktionsbibliotheken sollten zwar ursprünglich 100% abwärtskompatibel zu den Originalen sein, jedoch gibt es im Gegensatz zu denen keine Toleranz mehr gegenüber Progammierfehlern in den Missionsskripts, was die Kompatibilität zum Original auf ~99,9% senkt. Hier stehe ich auf dem Standpunkt, dass sich solche Fehler auf jeden Fall bemerkbar machen sollen, um sie zuverlässig erkennen und beseitigen zu können, und nicht einfach wegen Flüchtigkeitsfehlern oder gar schlampiger Programmierung übergangen werden dürfen. Fehlertolerante Grundfunktionen sind der denkbar schlechteste Weg für eine saubere Programmierung.

Diese "Pseudo-Mod" ist also lediglich als funktionierende Alternative zur Mod-Auswahl "original" im Hauptmenü gedacht, nachdem die "Versteckte Cluster"-Mod installiert wurde, welche die originalen Funktionsbibliotheken durch erheblich verbesserte/erweiterte und zusätzliche Äquivalente ersetzt hatte. Sinn und Zweck ist es auch, dass sich Neueinsteiger von Darkstar One jene Mod zwar sofort installieren können, jedoch meiner Meinung nach zunächst das Originalspiel komplett durchspielen sollten, um später die großen Unterschiede und Erweiterungen der Mod einschätzen zu können.

Neue Missionen, mehr Sternsysteme, geänderte Waffen-/Energie-/Ausrüstungsparameter, neues Upgradesystem mit DSO Stufe 30 u.v.a.m. wie in der "Versteckte Cluster"-Mod gibt es hier also nicht, all das ist genau gleich wie im Originalspiel geblieben. Es wurden nur 2 der kritischsten bisher gefundenen Originalfehler behoben, ohne dem das Spiel bei Verwendung der neuen fehlerintoleranten Funktionsbibliotheken garantiert früher oder später abstürzen würde. Nicht jedoch mit den alten, denn Minus mal Minus ergibt Plus. Aber man spart sich beim Wechsel zu "original (fixed)" anstelle von "original" das Wiederherstellen der 4 alten teils fehlerhaften Bibliotheken BattleLib.lua, BattleLibEx.lua, CameraLib.lua und MissionLib.lua. Sogar für fremde Mods wie z.B. der bekannten MesaMod kann das übernommen werden, indem einfach nur der Unterordner "scripts" von hier ins Hauptverzeichnis der anderen kopiert wird.


Systemvoraussetzungen:
  • Ab Windows 7 32-Bit sowie alle 64-Bit Windows-Versionen ab XP
    Die vom Kopierschutz befreite DVD von Purple Hills (Kalypso Media)
    • Die Bundles "Space Unlimited Compilation" und "Patrizier + Händler Box" enthalten neben weiteren Spielen ebenfalls Darkstar One von Purple Hills
    • Download des Spiels von GOG
    • Download des Spiels von Steam

  • Darkstar One Patch Version 1.3
    Nur für 32-Bit Windows XP/Vista und wenn noch die alte ursprüngliche kopiergeschützte DVD-Version von Ascaron/Ubisoft verwendet wird.
    Funktioniert aber wegen dem Kopierschutz nicht mehr mit Windows 10, hier müssen obige Bezugsquellen bemüht werden und die alte DVD darf ins Pixelgrab wandern. Ich bin mir nicht ganz sicher, ob das bei 32-Bit Windows 7/8/8.1 auch schon so ist, diese Versionen hatte ich nie.
    Bei der neuen DVD von Purple Hills oder den Downloads darf man diesen Patch jedoch keinesfalls anwenden, da er dort bereits enthalten ist. Ansonsten würde der Kopierschutz wieder mit installiert werden und das Spiel startet nicht mehr ("Forget to reboot"-Fehler und ähnliche Scherze).

  • Die Sprachversion des Spiels ist egal, "original (fixed)" funktioniert mit allen.

Installation:
  • Nach dem Download in den "Customization"-Ordner entpacken, damit sollte dort der neue Unterordner "Originalspiel" angelegt worden sein. Wenn nicht, muss er manuell unter "Customization" erstellt und der Download dort hinein extrahiert oder verschoben werden. Im Hauptmenü steht dann unter dem Button "Mods" die neue Auswahl "original (fixed)" zur Verfügung.
  • Besonders wichtig ist, dass alle 4 originalen Funktionsbibliotheken im Installationsordner des Spiels "lua\mission" durch die aus der Mod "Versteckte Cluster" ersetzt und die zusätzlichen 2 hinzugefügt wurden.
    (BattleLib.lua, BattleLibEx.lua, CameraLib.lua, CameraLibEx.lua, MissionLib.lua und MissionLibEx.lua)
    Ein Mix aus Originalen und Neuen führt unweigerlich zum Absturz! Zwar könnte durchaus auch der komplette Originalsatz verwendet werden, aber dafür wäre diese "Pseudo-Mod" hier völlig überflüssig.
  • Vgl. bei eventuellen Problemen bei der Installation auch die weiteren Hinweise im Thema Darkstar One - Modding (PC-Version) zur "Versteckte Cluster"-Mod. Die Vorgehensweise und allgemeine Struktur ist absolut gleich.

Spielstände:
Es dürfen wie üblich auf gar keinen Fall Spielstände aus anderen Mods übernommen und geladen werden! Dies führt unweigerlich früher oder später zum Absturz oder Fehlverhalten. Es muss also ein neues Spiel begonnen werden. Ausnahme davon sind Spielstände des Originalspiels, falls überhaupt noch welche vorhanden sein sollten. Die sind auch hier ausführbar, da ja nichts Relevantes am Spiel geändert/hinzugefügt wurde und sie somit kompatibel bleiben.

Grafische Modifikationen:
Grafik-Mods dürfen nahezu uneingeschränkt hinzugefügt werden. Wer z.B. die vielen optischen Modifikationen aus der Mod "Versteckte Cluster" übernehmen möchte, braucht daraus nur die Datei "user_data.zip" hierher ins Hauptverzeichnis "Originalspiel" zu kopieren. Am Handlungsverlauf ändert sich dadurch nichts, nur die Optik wird ein wenig verbessert und erweitert.

Eigene Modifikationen des Spielers:
(Wer selber nichts ändern möchte, kann diesen Abschnitt überspringen.)
Da hier nichts außer den korrigierten kritischen Fehlern und den beiden Flakmissionen geändert wurde, eignet sich "original (fixed)" auch gut als Grundgerüst für die Entwicklung eigener Mods. Hierfür ist das Modding-Handbuch "Modding_DE.chm" ein unverzichtbares Tutorial und Nachschlagewerk. Falls man selbst Missionsskripts schreiben oder ändern möchte, ist ebenso das Einarbeiten in die Funktionsbibliotheken und ihr Verständnis unbedingt erforderlich. Bereits erworbene Programmierkenntnisse sind dabei höchst nützlich, selbst wenn man die C-ähnliche Skriptsprache Lua noch nicht kennt. Die lässt sich ziemlich leicht im Selbststudium erlernen.
  • Es können problemlos neue Skripts im Unterordner "scripts" hinzugefügt werden, wobei man nur darauf achten muss, keine bereits registrierten Missionsnamen zu verwenden, ansonsten starten jene Originalmissionen nicht mehr und es kann zu Plotstoppern kommen.
  • Es sei denn, man möchte eine bestehende Mission durch eine verbesserte/geänderte Version derselben ersetzen, dann muss auch der ursprüngliche registrierte Missionsname übernommen werden (nicht zu Verwechseln mit dem .lua-Dateinamen, der ist fast egal). Dieses neue Skript hat immer Vorrang vor einer Mission mit dem gleichen registrierten Namen sowohl im Originalspiel (missions.bin) als auch dem lokalen Kompilat "user_scripts.bin". Damit eignet es sich hervorragend zum schnellen Testen von Änderungen und wird bei jedem Laden eines Spielstands vom integrierten Compiler geprüft und bei Fehlerfreiheit (nur Syntaxfehler; logische Fehler können trotzdem noch enthalten sein) in ausführbaren Binärcode übersetzt.
  • Um Änderungen an Sternsystemen, Handels- und Upgradesystem, Parametern für Schiffe, Waffen, Energie, Ausrüstung und sonstiger Objekte vorzunehmen, müssen zunächst aus dem Archiv "ds_3dadd.cpr" im Originalspiel einmalig alle ini-Dateien aus dem dortigen Ordner "inifiles" in den gleichnamigen Unterordner dieser Mod extrahiert werden (der Ordner "CollisionObjects" des Archivs wird nicht benötigt). Wirklich alle mitsamt den beiden Unterordnern, es dürfen keine fehlen, sonst wird später keine neue ini_file.bin erstellt und Änderungen bleiben wirkungslos. Anschließend muss nach jeder Änderung einer ini-Datei die Datei ini_file.bin gelöscht werden, sie wird beim Neustart des Spiels automatisch mit den geänderten Werten neu erzeugt (nur das Neuladen eines Spielstands nach Taskwechsel genügt nicht, das Spiel muss beendet und wieder gestartet werden, dann den Spielstand laden). Erst dann sind die neuen Modifikationen aktiv, wobei es in manchen Fällen erforderlich sein kann, das aktuelle Sternsystem zu verlassen, um Änderung daran nach dem Wiederbetreten sehen zu können.
  • Ich kann es gar nicht oft genug wiederholen: Spielstände des echten Originals sind nach solchen Veränderungen idR nicht mehr kompatibel und dürfen keinesfalls mehr geladen werden! Ggf. muss dann ein neues Spiel gestartet werden. Für Spielstände anderer Mods gilt das generell sowieso, die dürfen auch ohne eigene Modifikationen an dieser Stelle nie verwendet werden.


Gefixt wurden:
  • BAR_020, Sidequest N.O.M.A.D.
    Falsche Parameterübergabe (als Tabelle, müssen aber einfache Argumente sein) für die Funkmeldung eines NOMAD-Satelliten vor dem Tod des Forschers.
  • GLOBAL_023, Terminalmission "Rebellen und Politik":
    Schreibfehler in zwei Übergabeparametern.
  • STORY_024, Storymission "Angriff der Drohnen abwehren" in Segin:
    Schwerer Tabellenfehler für die Anfangsaktionen von Jack.

Als einzige zusätzliche Änderung habe ich den Respawn der Drohnen in den beiden Flakmissionen abgeschaltet, was diese Arcade-Ballerei bei maximal möglichem Upgrade der DSO zu jenen Zeitpunkten erheblich vereinfacht. Wer aber den originalen Schwierigkeitsgrad haben möchte, muss nur im Unterordner "scripts" die beiden Skripts FLAK_01.lua und FLAK_02.lua entweder löschen oder durch Anhängen der Dateiendung ".txt" umbenennen und damit deaktivieren.
Ansonsten werden außer bei den gefixten Missionen ausschließlich die unveränderten originalen Skripts gestartet, die alle im Kompilat "missions.bin" der Spielinstallation enthalten sind.

An dieser "Pseudo-Mod" werde ich sonst keinerlei weitere Änderungen oder Ergänzungen vornehmen, sie soll selbst mit allen weniger kritischen Fehlern und Ex-Ascarons Talent zur ineffektiven und sinnlos CPU-Zeit verbrennenden Programmiertechnik dem Originalspiel entsprechen (einzige Ausnahme sind natürlich die neuen Funktionsbibliotheken, welche das Spielgeschehen aber nicht beeinflussen).

Daher bitte nur kritische Fehler melden, welche reproduzierbare Abstürze verursachen, ohne deren Behebung es mit dem Spiel nicht weiterginge.
Ein Beispiel von vielen unkritischen Fehlern sind die teilweise fehlenden Funkvideos und Tonausgaben, die ich hier nicht beheben werde. Dazu gehören auch schwerwiegendere originale Bugs wie z.B. der manchmal endlosen Cutscene beim Frachtergeleitschutz. Für solche mehr oder weniger harmlose Bugfixes und Sonderwünsche ist die "Versteckte Cluster"-Mod da, dort verbessere ich auch winzigste Kleinigkeiten, wenn sie von euch oder mir entdeckt werden.

Sämtliche Abstürze mit dem Titel EXCEPTION_ACCESS_VIOLATION brauchen nicht gemeldet zu werden, da sie entweder durch unbehebbare interne Fehler des Spiels und/oder in Verbindung mit Grafiktreibern auftreten. Typische Beispiele dafür sind Speicherzugriffs-Verletzungen (read/write to virtual address), Divisionen durch Null, ungültige Eingabeparameter (one or more of the inputparameters are invalid), out-of-memory und array-size Fehler, usw. In diesen Fällen muss das Spiel einfach neu gestartet werden, manchmal ist sogar ein Rechner-Neustart notwendig.
Auch Fehler in den ini-Dateien können diesen Absturz verursachen, die Meldung ist in diesem Fall leider wenig aussagekräftig und weist nicht auf die wirkliche Ursache hin. Bitte bei eigenen Modifikationen darauf achten und nicht zu viel auf einmal ändern. Im Originalspiel und meiner anderen Mod sind diese Dateien garantiert absolut fehlerfrei, diese werden also niemals einen Absturz auslösen.


PS: Die winzige Inkompatibilität der neuen Funktionsbibliothek MissionLib.lua zum Originalspiel habe ich erst jetzt entdeckt, nachdem ich mich dazu aufgerafft hatte, es doch mal wieder zu starten, um genau das zu überprüfen. Und siehe da, das Original sagt mir "Freilich bin ich immer noch so buggy wie eh und je" :p und stürzt mit Fehlern ab, die ich schon damals ganz nebenbei während der Integration des Originals in die "Versteckte Cluster"-Mod behoben und später nicht mehr weiter an sie gedacht hatte.

PPS: Und... oh Mann... ist das Spiel ohne meiner anderen Mod laaangweilig, :sleepwenn man es bereits ein paar Mal durchgespielt und seine persönlichen Skills auf das Maximum gesteigert hatte. Der Wiederspielwert des Originals geht ja fast schon gegen Null (teilweise aber doch ganz interessant, um auch die mittlerweile ungeheuer vielen weniger offensichtlichen Unterschiede nochmal nachträglich nachzuvollziehen). Was für ein lahmes Schiff in höheren Ausbaustufen, weil z.B. das maximale Tempo vom Nachbrenner konstant auf 150% bleibt, nur seine Laufzeit verlängert sich mit jedem Energiesystem-Upgrade. Hier ist die Zeitbeschleunigung bei längeren Strecken wirklich noch Gold wert. Und natürlich noch vieles mehr als nur der Nachbrenner, was mir heute beim Original auf den Senkel geht. Aber ich werde mich trotzdem mal bis zum Schluss der Story zur DSO Level 20 durchquälen, für den Fall, dass es noch weitere kritische Bugs geben sollte. Die entsprechenden fehlerbereinigten Originalskripts werden in dem Fall noch hier mit eingefügt (den grauenhaften Programmierstil mit dem schrecklich uneffektiven Code lasse ich aber unangetastet, DIE unerfreuliche Arbeit mache ich mir nicht noch einmal).


edit: Test erfolgreich beendet.


Download auf Dropbox:

Originalspiel

Download auf dem Mirror: (Direktlink)

original fixed.zip

Zusätzliche Downloads:
Falls die "Versteckte Cluster"-Mod noch nicht installiert wurde, ist dieser Download am Ende des Startbeitrags von Darkstar One - Modding (PC-Version) verlinkt und enthält sowohl die neuen Funktionsbibliotheken als auch die Grafik-Mod. Andernfalls hast du beides schon und wenn die grafischen Neuerungen gewünscht sind, muss nur noch die Datei user_data.zip wie oben unter "Grafische Modifikationen" beschrieben hierher kopiert werden.
Auch das Modding-Handbuch, eine Systemkarte zur Offline-Nutzung im Browser sowie Darkstar One Skins sind dort zu finden.
 
Zuletzt bearbeitet:
Test beendet.
In der NOMAD-Sidequest hatte ich noch einen schwerwiegenden Originalfehler ausgemacht und behoben, durch den das Spiel kurz vor dem Tod des Oc'to-Forschers abstürzte. Die Sidequest konnte dadurch nicht zu Ende gebracht werden und man hätte sie links liegen lassen müssen.
 
Oben