[Programmieren] Was sind diese Defs?

...komplette Frage anzeigen

1 Antwort

Scheinbar, um Modder zu unterstützen, gibt es von dem Entwickler einen großen Ordner (...)

Ist das nun eine Vermutung oder woher hast du die Information, dass diese Dateien für Mods gedacht sind? Um welches Spiel handelt es sich überhaupt?

Man programmiert eine Klasse BeispielDefs, welche alle BeispielDef enthält, die es in dem Programm gibt. Der Zweck dieser Klasse ist lediglich, alle BeispielDef mithilfe von XML-Serialisierung in einer Datei darzustellen.

Die XML-Datei stellt alle Objekte dieser Klasse dar, die in einem bestimmten Kontext verwendet/erstellt werden, das ist richtig. Den Zweck der Datei kann ich dir vorerst nicht erklären.

Ist das eine gängige Methode, um zu serialisieren ?

Es gibt verschiedene Formen, wie man Daten serialisieren kann. Eine andere Möglichkeit wäre bspw. die Serialisierung der Daten im Binärformat.

Der Vorteil von XML liegt in dieser Hinsicht darin, dass die Daten auch noch für Menschen lesbar und so einfacher/schneller änderbar sind. Der Performance aber dient es nicht.

Daten werden so serialisiert, wie sie vorliegen. Wenn du also ein Objekt serialisieren möchtest, wird nur dieses serialisiert. Wenn du mehrere Objekte serialisierst, dann werden diese meist von einem anderen Objekt gehalten.

Bsp.:

class Game {
  public List<GameObject> objects;
}

Sie werden nur deshalb gesammelt, weil es bereits für die Anwendung ein Objekt geben muss, welches alle verwaltet. Hättest du ein Spiel, wo es pro Level verschiedene Gruppen an Gegnern gäbe, wäre es sinnvoller, die Gegner-Objekte je Level zu serialisieren, nicht je Objekttyp. Es wird nur das geladen, was gerade benötigt wird.

Crysali 03.07.2017, 12:55

Vielen Dank für deine Antwort!

Es handelt sich um das Spiel RimWorld und beispielsweise http://rimworldwiki.com/wiki/Modding\_Tutorials/Compatibility\_with\_defs behandelt die Thematik mit diesen Defs. Diese Dateien liegen ungeschützt da rum und ich habe mal in einem Forum zu dem Spiel gelesen, die wären als Beispiele gedacht, damit man Modding unterstützt. Die tatsächlichen Dateien für das Spiel sind natürlich geschützt.

0

Was möchtest Du wissen?