14.09.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!