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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
38 V. Bestehende Systeme<br />
Spielobjekte lassen sich in beliebiger Form aus Daten und Verhalten zusammensetzen. Der<br />
Ansatz erlaubt große Flexibilität und damit den Einsatz in weiteren Projekten. Wegen des Verzichts<br />
auf die objektorientierte Modellierung wird sich <strong>ein</strong>e Erweiterung des Systems allerdings<br />
als schwierig herausstellen. Änderungen am Quelltext <strong>für</strong> die Komponentenmodellierung würden<br />
sich auch auf andere Programmteile auswirken. Zum Beispiel wäre die Frage zu klären, wie<br />
Abhängigkeiten zwischen den Eigenschaften der Spielobjekte implementiert werden könnten.<br />
Hier liegt gerade das Manko dieses Ansatzes. Die Aufgabe der objektorientierten Modellierung<br />
bedeutet die Abkehr von <strong>ein</strong>em wohlverstandenen Prinzip, das gerade <strong>für</strong> die modulare <strong>Entwicklung</strong><br />
<strong>ein</strong>steht. Das wirkt sich auch darin aus, dass k<strong>ein</strong>e Objektstruktur im eigentlichen Sinne<br />
existiert, zu der zum Beispiel über <strong>ein</strong>e <strong>ein</strong>heitliche Schnittstelle neue Objekte hinzugefügt oder<br />
bestehende gelöscht werden können.<br />
Weder über das Erreichen von Persistenz noch die Übermittlung der Daten werden in den Quellen<br />
Aussagen getätigt. Ersteres wird allerdings dadurch gefördert, dass Komponenten nichts<br />
anderes als Vektoren von Werten sind, die folglich direkt mit <strong>ein</strong>er Datenbankrelation korrelieren.<br />
5.3 Worldforge Atlas Middleware<br />
Hinter dem Namen Worldforge verbirgt sich <strong>ein</strong> vielschichtiges Opensource Projekt, das sich<br />
zum Ziel gesetzt hat, Entwicklern freier Spiele Werkzeuge an die Hand zu geben. Atlas, als<br />
Teil dieses Projekts, ist <strong>ein</strong> Kommunikationsprotokoll <strong>für</strong> Prozesse, die auch auf lokal verteilten<br />
Rechnern laufen können. Im Folgenden beziehen wir uns auf die C++-Referenzimplementierung,<br />
die zusätzlich <strong>ein</strong> Objektmodell definiert. Die Dokumentation jedoch ist sehr dürftig und die<br />
exakte Verwendung des Systems geht aus dem Quelltext nicht unmittelbar hervor.<br />
5.3.1 Systembeschreibung<br />
Atlas <strong>für</strong> sich all<strong>ein</strong>e definiert lediglich das Format <strong>für</strong> den Austausch von Objekten zwischen<br />
Prozessen. Die Referenzimplementierung hingegen bietet <strong>ein</strong>iges mehr. Sie gibt vor, wie Spielobjekte,<br />
Typen und Operationen implementiert s<strong>ein</strong> müssen, um mit Hilfe <strong>ein</strong>er gegebenen<br />
Netzwerkschicht versendet werden zu können.<br />
Den Kern des Systems bilden fünf elementare Datentypen, die sowohl von Spielobjekten verwendet<br />
werden als auch selber versendbar sind:<br />
Integer: Eine ganze Zahl.<br />
Float: Eine Gleitzahl.<br />
String: Eine Zeichenkette.<br />
List: Eine geordnete Liste anderer Objekte.<br />
Map: Eine ungeordnete Abbildung von Schlüsseln auf andere Objekte.<br />
38 <strong>Jens</strong> <strong>Pfau</strong> · Stephan Mehlhase