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.
36 V. Bestehende Systeme<br />
und Anordnung der Spielobjekte sowie Möglichkeiten, den Zustand des Systems persistent zu<br />
machen. Auch die Kommunikation der Objekte mit weiteren Komponenten des Systems sowie<br />
der Synchronisierung mit anderen Teilnehmern bedarf <strong><strong>ein</strong>es</strong> eigenen Entwurfs.<br />
5.2 Thief und Deus Ex<br />
In den Spielen Thief und Deus Ex [Church, 2002; Duran, 2003; Doherty, 2003] werden die<br />
Spielobjekte mit Hilfe von Komponenten emuliert, wie in Kapitel 3.1.1.1 bereits vorgestellt.<br />
Deshalb soll hier k<strong>ein</strong>e erneute Beschreibung der Datenmodellierung gegeben werden. Es ist<br />
wichtig, dass der Begriff „Komponenten“ hier anders gebraucht wird als in der Beschreibung<br />
von Dungeon Siege (Kapitel 5.1).<br />
5.2.1 Systembeschreibung<br />
Ebenso wie die Daten der Spielobjekte wird deren Verhalten als Komponenten beschrieben. Die<br />
IDs der Objekte, die <strong>ein</strong> bestimmtes Verhalten zeigen können, werden in der entsprechenden<br />
Komponente, die dieses Verhalten implementiert, hinterlegt. Solche Komponenten können dann<br />
zum Beispiel Skriptobjekte, aber auch Objekte der Programmiersprache s<strong>ein</strong>.<br />
Objekttypen werden in der gleichen Struktur gehalten; <strong>ein</strong>e spezifische Instanz oder <strong>ein</strong> weiterer<br />
Typ erbt die Eigenschaften, sowohl Daten als auch Verhalten, ihres Vaters. Das erfordert, dass<br />
in <strong>ein</strong>er weiteren Datenstruktur die Vererbungslinien der Typen und Objekte hinterlegt sind.<br />
Sowohl die Beschreibungen der Daten und Spielobjekte als auch die der Typen werden datadriven<br />
abgelegt. Dies wird vor allem dadurch untersützt, dass Spielobjekte nichts weiteres als<br />
zusammengesteckte Eigenschaften sind.<br />
Spielobjekte können indirekt dadurch gruppiert werden, dass sie mit anderen den Eintrag in<br />
bestimmten Komponenten gem<strong>ein</strong>sam haben. Dies lässt, wie bereits erwähnt, andere Subsysteme<br />
des Spiels nur auf den <strong>für</strong> sie bedeutenden Informationen arbeiten.<br />
Spielobjekte und Typen, die genauso wie Spielobjekte modelliert werden, können zur Laufzeit<br />
nachgeladen werden. Das gleiche trifft <strong>für</strong> die Verhaltenskomponenten zu, die in <strong>ein</strong>er Skriptsprache<br />
definiert sind. Ob in diesem Modell Typen zur Laufzeit änderbar sind, so dass sich auch<br />
deren Kinder und Instanzen ändern, ist aus den Quellen nicht erkennbar. Das hängt zum <strong>ein</strong>en<br />
davon ab, ob vererbte Eigenschaften in dem Kindobjekt gehalten oder weiterhin aus der Vaterklasse<br />
angefordert werden. Zum anderen ist dies in zweitem Fall davon abhängig, ob erfolgreiche<br />
Zugriffe auf Eigenschaften in <strong>ein</strong>em Cache gehalten werden.<br />
5.2.2 Einordnung<br />
Aus den oben gegebenen Informationen und der Beobachtung, dass in den Quellen k<strong>ein</strong>e die<br />
Kommunikation betreffenden Themen behandelt werden, ergibt sich <strong>für</strong> dieses Modell die in<br />
36 <strong>Jens</strong> <strong>Pfau</strong> · Stephan Mehlhase