Vom Spiel zur Wissenschaft      SS2004  

Katastrophensimulation

P.Lecznar, B.Prenaj, C.Riday

 

Projektbericht:

Als erstes war es die Aufgabe, das richtige Thema zu finden. Obwohl uns ziemlich verrückte Ideen kamen, die jedoch unrealisierbar waren, haben wir uns schliesslich für die Idee mit der Katastrophensimulation entschieden. Einerseits ist es ein sehr interressantes und wichtiges Thema, vor allem im Bereich Bau und Architektur, denn:
Wie/Wo stürmen die Leute aus einem Gebäude wenn's brennt?
Wie verhalten sich Fans, wenn in einem Fussballstadion eine Bombe
explodiert? Wo sind die kritischen Punkte?
Kann man Ausgänge geschickter konstruieren, um bei einer Flucht mehr
Personen pro Zeiteinheit durchschleusen zu können?
Einfache Räume kreieren und die Ausgänge möglichst geschickt platzieren
(gemeint: das evakuierung möglichst schnell erfolgen kann).
Anderseits gibt es verchiedene Arten, dies in eine Simulation, bzw. ein Spiel umzusetzen. Die Idee wurde von Prof. C. Hafner akzeptiert.
Die nächste Aufgabe war es, das Konzept soweit zu vereinfachen, dass die Idee zwar da ist, aber nicht zu viele Faktoren vorhanden sind, die einerseits das Ganze kompliziert und störend, anderseits langsam und unübersichtlich machen. Die Aufgabe war, zuerst eine Version auf Papier zu schaffen, um zu sehen, ob unser Konzept überhaupt verwendbar ist. Danach sollte erst das Programm selbst entstehen.
Unser erstes Ziel war es, einen schachbrettartigen Raum zu schaffen, mit einem Ausgang und mehreren sich in dem Raum befindenden Personen, welche Rundenweise eine nach der anderen Richtung Ausgang bewegt werden sollten. Gleichzeitig sollten sie Hindernisse, wie Terroristen mit Bombengürteln, Feuer, Explosionen oder Stellen, an denen ein Mord verübt wurde, umgehen. Dabei sollte am Anfang des Spiels alles definiert werden, wie z.B. die Anzahl Spieler, bzw. Personen oder die Art, Dauer und Frequenz der Hindernisse/Katastrophen. Obwohl eigentlich keine so schlechte Idee, wurde sie zwar nicht verworfen, aber ad acta gelegt. Danach kam uns die Idee bereits vorgegebene Levels (Räumlichkeiten) zu verwenden, in denen alles bereits vordefiniert ist. Ziel war es, seine Figuren so schnell wie möglich rundenweise Richtung Ausgang zu bewegen, wobei sich der Gefahrenherd pro Runde je nach Art vergrösserte. Auch diese Idee war nicht zufriedenstellend, so kam es uns in den Sinn, eine Zwei-Spieler-Simulation zu machen, wo zwei Personen gegeneinander antreten und die schnellere (der Spieler, welcher zuerst alle seine Figuren zum Ausgang führt) gewinnt. Dabei sollte auch der rundenweise grösser werdende Gefahrenherd berücksichtigt werden, welcher auch Figuren auf dem Spielfeld beseitigen könnte.
Wie sich dann später in einer Besprechung herausstellte, waren all diese Ideen immer noch zu kompliziert und mussten weiter vereinfacht werden. Dabei mussten wir aber vorsichtig sein, wollten wir doch nicht, dass unsere Simulation ihren eigentlichen Zweck verliert und man nicht mehr erkennen kann, was die Idee dahinter ist. Also entschieden wir uns, die erste Version weiter zu verfolgen und sie auszubauen, bzw. zu vereinfachen.
Die Schlussidee ist folgendermassen: Es gibt vordefinierte Räumlichkeiten, in denen der Spieler jedoch immer noch die Möglichkeit hat zusätzliche Wände, Ausgänge und Hot Spots einzufügen. Er kann definieren, wieviele Leute sich von jeder Gruppe im Raum aufhalten. Er kann bestimmen, ob sich die Personen auf total egoistische Art und Weise verhalten, oder ob sie panikartig herumrennen und versuchen einen Ausgang zu finden. Auch kann er bestimmen, ob sie geduldig sind und warten, falls ihnen eine Person ihnen auf dem Weg Richtung Ausgang begegnet. Je nach Patience-Wert kann das mehrmals vorkommen. Es gibt noch zusätzlich Anzeigen, wie viele Leute tot, und wieviele Leute es geschaft haben, dem Inferno zu entkommen.
Jetzt stellte sich das Problem, wie das Programm erstellt werden sollte. Da niemand von uns Ahnung im diesem Programmierbereich hatte, mussten wir am Anfang auf Resourcen von Ausserhalb unser Gruppe zurückgreifen, wie z.B. wie man ein Java-Script in eine www-Seite implementiert, usw. Sobald der Grundstein gebaut war, konnte die eigentliche Programmierung des Spiels selbst beginnen.
Wichtig war es, Prioritäten im Bezug auf das Verhalten der Personen zu setzen. Wie verhält sich ein Mensch, wenn er sich in einer brenzligen Lage befindet. Welche Algorithmen sind dazu nötig, das Verhalten eines Menschen, bzw. einer ganzen Gruppe zu definieren.

Zu Spiel

Download Source