Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
34 V. Bestehende Systeme<br />
Informationen gefüllt, wobei Daten der Instanzdefinition die der Musterdefinition überschreiben.<br />
5.1.2 Einordnung<br />
Bei der Einordnung in die Taxonomie ist festzustellen, dass Spielobjekte k<strong>ein</strong>e eigenen Daten<br />
enthalten, sondern lediglich die Komponenten, mit deren Hilfe das Verhalten modelliert ist,<br />
<strong>ein</strong>en Zustand besitzen. Sowohl die Komponentendefinition als auch die Definition der Typen<br />
als Muster und der Spielobjekte an sich geschieht data-driven in Textdateien nach <strong>ein</strong>em proprietären<br />
Format.<br />
Es wird zwar k<strong>ein</strong>e explizite Aussage darüber getätigt, aber theoretisch ließen sich mit diesem<br />
System Objekte zur Laufzeit aus weiteren Definitionsdateien nachladen. Ebenso können<br />
zur Laufzeit bestehende Skripte geändert sowie neue hinzugefügt werden, die dann von weiteren,<br />
nachzuladenden Objekten als Komponenten enthalten werden können. Da die gesamte<br />
Typhierarchie vorgehalten wird und jeder Typ nur die Änderungen gegenüber s<strong>ein</strong>em Vorgänger<br />
speichert, können zur Laufzeit Typen geändert und weitere geladen werden. Sofern die Spielobjekte<br />
Referenzen auf ihren Typ halten und ebenfalls nur die Differenzen ihrer Daten zu denen<br />
ihres Typs speichern, würde sich damit die Änderung <strong><strong>ein</strong>es</strong> Typs auch auf dessen Instanzen<br />
auswirken.<br />
Zu der Kommunikation oder die Anordnung der Objekte zu<strong>ein</strong>ander betreffenden Fragen wird<br />
k<strong>ein</strong>e Aussage gemacht.<br />
Eine Übersicht über die Einordnung in die Taxonomie erkennt man auf Abbildung 5.2<br />
5.1.3 Evaluation<br />
Dieses Modell zieht s<strong>ein</strong>e Vorteile insbesondere daraus, dass alle Elemente data-driven definiert<br />
werden können. Verhalten wird unter anderem in Skriptdateien abgelegt, Muster und ihre Instanzen<br />
in Textdateien. Dadurch, dass die Definition von Objekttypen nicht durch <strong>ein</strong>e statische<br />
Vererbungshierarchie erfolgt, sondern durch das Kombinieren von unabhängigen Komponenten,<br />
lassen sich beliebig unterschiedliche Spielobjekte anlegen. Leistungskritische Komponenten können<br />
in der verwendeten Programmiersprache entwickelt werden, solche, die häufigen Änderungen<br />
während der <strong>Entwicklung</strong> unterliegen, in der Skriptsprache.<br />
Vor allem zur <strong>Entwicklung</strong> ist es von Vorteil, dass Typen, Spielobjekte und Verhalten, abgesehen<br />
von den C++-Komponenten, zur Laufzeit ohne Neukompilierung des Systems ausgetauscht<br />
werden könnten. Im Fall der Typen hat dies aber den Nachteil <strong>ein</strong>er größeren Speicherbelegung,<br />
weil die inneren Knoten der Hierarchie nicht verworfen werden können. Zudem bedarf es <strong>ein</strong>er<br />
längeren Zeit, <strong>für</strong> <strong>ein</strong> Objekt <strong>ein</strong> Datum festzustellen, wenn dazu der Typ des Objekts und<br />
dessen Vorfahren in der Hierarchie befragt werden müssen.<br />
Mit Hilfe entsprechender <strong>Entwicklung</strong>swerkzeuge, die auf Grund des Baukastenprinzips des<br />
Systems <strong>ein</strong>fach zu entwerfen sind, können somit sowohl Spieldesigner als auch Endanwender<br />
äußerst flexibel Spielinhalt nach ihren Wünschen formen. All dies fördert die Erweiterbarkeit<br />
34 <strong>Jens</strong> <strong>Pfau</strong> · Stephan Mehlhase