Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
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