AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stellaris SaveGame Datei einlesen

Ein Thema von Andreas L. · begonnen am 15. Apr 2020 · letzter Beitrag vom 17. Apr 2020
Antwort Antwort
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Stellaris SaveGame Datei einlesen

  Alt 16. Apr 2020, 10:23
Die Speicherstände von Stellaris (genauer: gamestate) sind weder JSON noch YAML sondern ein eigenes Format, das die Clausewitzengine zur Verfügung stellt. Das Format ist damit das gleiche, das auch in anderen Paradoxspielen (bspw. Europa Universalis, Crusader Kings, Hearts of Iron, Victoria...) genutzt wird.
Es gibt mit Sicherheit fertige Editoren dafür, aber vermutlich keine Bibliotheken, sodass man es selbst machen müsste.

Die wichtigsten Unterschiede zu JSON sind folgende:
  • Es gibt kein globales Objekt.
  • Statt durch Kommata sind Einträge durch Zeilenumbrüche getrennt.
  • Schlüssel sind nicht in Anführungszeichen umfasst.
  • Schlüssel und Wert sind durch ein Gleichheitszeichen anstatt durch einen Doppelpunkt getrennt.
  • Listen nutzen wie Objekte geschweifte anstatt eckige Klammern.
  • Es gibt keine Booleans und kein "null".
  • Bestimmte Eigenschaftswerte (Strings ohne umschließende Anführungszeichen) sind erlaubt, bspw. "yes", "no", "none", "planet", "male", etc.
  • Es gibt einen zusätzlichen Listentyp: Einträge getrennt durch Leerzeichen (bspw. "{ no no no no }).
(Es kann durchaus sein, dass ich etwas vergessen habe.)

Eine alle oben umfassenden Besonderheiten wären im folgenden Beispiel zu finden:

Code:
version="Verne v2.6.2"
version_control_revision=56809
date="2248.04.06"
required_dlcs={
   "Apocalypse"
   "Horizon Signal"
   "Megacorp"
}
planets={
   1534={
      name="WX12-677"
      planet_class="pc_asteroid"
      coordinate={
         x=163.440
         y=75.420
         origin=149
      }
      automated_development=no
      favorite_jobs={
      }
      auto_slots_taken={
         no no no no no no no no no no no no no no no no
      }
   }
}
In den meisten Fällen entspricht dieses Format gültigem YAML. Andersherum gilt das aber nicht: Nicht jedes gültige YAML ist auch eine gültige Gamestatedatei!
Danke für deine detaillierte Antwort Dann wird mir nichts anderes übrig bleiben als einen Parser zu schreiben. Wie würdet ihr/du das angehen? Hast du Interesse den Parser zusammen mit mir zu entwickeln?
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.397 Beiträge
 
Delphi 12 Athens
 
#2

AW: Stellaris SaveGame Datei einlesen

  Alt 16. Apr 2020, 10:55
Es gibt bereits Parser, die man z.B. als Python ausführen kann und wo man sich das Ding auch in JSON umwandeln lassen kann.

https://pypi.org/project/ClauseWizard/#files
Sieht so auch, als wenn es nur das Clause-Ding nach JSON gibt, aber wenn man den Text nur lesen, aber nicht ändern will, dann reicht es.

https://github.com/ClauText/ClauText
https://github.com/Shadark/ClauseWizard
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Stellaris SaveGame Datei einlesen

  Alt 17. Apr 2020, 11:18
Es gibt bereits Parser, die man z.B. als Python ausführen kann und wo man sich das Ding auch in JSON umwandeln lassen kann.

https://pypi.org/project/ClauseWizard/#files
Sieht so auch, als wenn es nur das Clause-Ding nach JSON gibt, aber wenn man den Text nur lesen, aber nicht ändern will, dann reicht es.

https://github.com/ClauText/ClauText
https://github.com/Shadark/ClauseWizard
Das ist ganz schön umfangreich Kannst du mir zeigen wie ich das nutzen muss um das SaveGame in z. B. JSON zu konvertieren?
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz