14.11.2012 Aufrufe

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

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.

<strong>Projekt</strong> MiCarpet <strong>Projekt</strong>bericht<br />

Lautsprecher<br />

Master<br />

Keyboard<br />

Slave 1 Slave 2<br />

CAVE<br />

Sensoren<br />

Abbildung 10.2: Hardware-Komponenten des Systems und physische Verbindung<br />

werden im Kapitel 11 ab Seite 77 beschrieben.<br />

10.3 Software<br />

10.3.1 Übersicht<br />

LAN<br />

Maus<br />

SIOS<br />

Aktoren<br />

Der Software-Teil des MiCarpet-Systems ist komplett [objekt-orientiert??] in [C++??] geschrieben<br />

und lässt sich konzeptuell in mehrere Komponenten aufteilen: die Kern-Engine (Abschnitt 12) inklusive<br />

Event-System (12.3), Scripting (12.5) und Physik (12.2), die Grafik (12.1) mitsamt Netzwerk-System<br />

(12.4), das SoundSystem in 15 und das Input-/Outputsystem als Schnittstelle zu Sensoren und Aktoren<br />

in Kapitel 14.<br />

Die Kommunikation unter den einzelnen Komponenten geschieht dabei größtenteils über das Event-<br />

System, welches eine sehr flexible Struktur des Systems erlaubt. Dies hat insbesondere auch den Vorteil,<br />

dass gerade das SoundSystem und das Input-/Output-System größenteils getrennt vom restlichen Teil<br />

der Engine entwickelt werden konnten und so die Gruppen mehr Freiheit in der Programmierung ihrer<br />

Softwarekomponenten hatten.<br />

Weiterhin sind die Komponenten so konzipiert, dass die Engine die Komponenten auch nur selektiv<br />

laden kann. So wird etwa auf den reinen Slaves nicht das Input-/Outputsystem, das Scripting und der<br />

Sound geladen, da die entsprechenden Geräte gar nicht angeschlossen sind bzw. die Kontrolle der Szene<br />

komplett vom Master ausgeht.<br />

10.3.2 Klassenstruktur<br />

Eine vereinfachte Darstellung des Systems als UML-Klassendiagramm ist in Abbildung 10.3 auf Seite 72<br />

zu sehen. Die Hauptklasse, die als erstes instanziiert wird, ist CGame. Sie initialisiert das Netzwerk (als<br />

Master/CNetMaster oder Slave/CNetSlave) und startet die eigentliche Engine (CEngine). Diese<br />

kümmert sich um mehrere Dinge: sie startet das Grafiksystem (CRender), lädt die Eingabe-/Ausgabeplugins<br />

(CExtModuleManager) und startet dann schließlich die gewünschte Szene (CLevel).<br />

6. Januar 2005 Seite 75

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!