Visual Computing Praktikum (WS 2012/13)

Status: 16.11.2012

Spiel-Logo

Projektmanager Lead Designer Stakeholdermanager
Peter Dörr Markus Strobel Markus Strobel


Szenario

Sepsis – Dawn of the DNA – ist ein rundenbasiertes Hexfeld-Strategiespiel, das den Spieler in seinen eigenen Körper versetzt. Dort tobt der ewige Kampf von Bakterien, Viren und Immunsystem, die um die Vorherrschaft und um wichtige Ressourcen wie Adenin, Thymin, Guanin, Cytosin oder Sauerstoff kämpfen. Dem Spieler obliegt es nun, fünf verschiedene Antikörper (Granulozyten, Makrophagen, Killerzellen, Leukozyten und Erythrozyten) gegen die schädlichen Eindringlinge (Influenza-Virus, Variola-Virus, Borrelien, Varizella und Rubella-Virus) ins Feld zu führen. Nur durch kluges taktieren und geschickten Einsatz der eigenen, unterschiedlich starken Antikörper ist es möglich, die Bakterien und Viren zu besiegen. Das Spiel bietet unterschiedliche Szenarien, auf denen verschiedenste Aufgaben für einen Sieg erfüllt werden müssen, z.B. Vernichtung aller Gegner oder Sicherung von wichtigen Ressourcen. Auf der zweidimensionalen Hexfeldkarte des Spiels sind je nach Szenario bereits einige Felder durch Tumore befallen, die eine Bewegung über diese Felder hinweg verhindern. Durch Features wie Sichtlinien und Fog of War wird die Suche nach den Fremdkörpern herausfordernd und bietet für den Spieler, aber auch für den Feind neue taktische Möglichkeiten. Um Bakterien und Viren zu besiegen, muss der Spieler mit den eigenen Einheiten auf angrenzende Felder ziehen und den Angriffsbefehl geben. Freundliche Einheiten wie Gegner besitzen kampfrelevante Eigenschaften, z.B. Lebenspunkte oder Angriffskraft, die unterschiedlich stark ausgeprägt sein können. Besitzt ein Gegner nach einem Angriff keine Lebenspunkte mehr, ist er besiegt und verschwindet. Auch können zwischen eigenen wie feindlichen Einheiten Ressourcen über ein Handelsmenü getauscht werden. Geplant sind weiterhin Stammzellen, die sich abhängig vom Szenario an bestimmten Stellen der Karte befinden, als neutrale Einheiten gelten und mit denen lediglich ein Ressourcenaustausch möglich ist. Auf dem Spielfeld stellen Blutbahnen die frei begehbaren Felder dar, die unbegehbaren Felder werden durch Gewebe oder Tumore dargestellt. Über diese Felder kann sich keine Einheit bewegen, noch hinwegsehen. Da im Internet nur sehr wenige Modelle von Bakterien und Viren zu finden sind, die zudem frei verwendet werden dürfen, dienen als Einheiten eigens für dieses Spiel in Maya 2010 erstellte, simple 3D Modelle. Ein Beispiel für ein solches Modell ist in Abbildung 1 zu sehen. Das GUI- und Menüdesign soll dem Spieldesign angepasst werden und in Verbindung mit dem Spiel ein stimmiges Gesamtbild ergeben.




Zeitplan

Zeitplan

Milestone-Komplexität Die erfolgreiche Einhaltung des Zeitplans setzt voraus, dass pro Woche mindestens 20 Arbeitsstunden zur Bearbeitung des Projektes aufgebracht werden. Die im Gantt-Diagramm eingetragenen Bearbeitungszeiträume basieren auf der geschätzten Komplexität und dem benötigten Zeitaufwand zur Bearbeitung des Milestones. Die Bearbeitungsreihenfolge der Milestones basiert primär auf den gegebenen Bearbeitungs-Deadlines und sekundär auf der nach Meinung der Entwickler sinnvollsten Reihenfolge, die eine effiziente und problemlose Implementierung des Projektes ermöglicht.




UML-Diagramm

Klassendiagramm
Der Einstiegspunkt des Programmes ist die Main-Klasse. Diese instanziert die Game-Klasse, die wiederum das SimpleApplication-Interface der JmonkeyEngine3 implementiert. Über das Objekt der Game-Klasse wird das Spielfeld (Playfield), Modelle und Grafiken, GUI, sowie Audio- und Visuelle Effekte initialisiert. Die Game-Klasse umfasst des weiteren die Spiellogik, sowie Event-handler für Maus- und Tastatureingaben. Mittels der Playfield-Klasse kann auf die Einheiten, Karteninformationen und den ConfigParser zugegriffen werden, der wiederum verschiedene XML-Dateien auslesen kann, um Karten- und Einheiteninformationen zu erhalten. Zum Testen des Programms wird eine eigene Klasse JUnitTest erstellt, in der verschiedene bisher nicht definierte Methoden bereitstehen. Die Network-Klasse übernimmt die Kommunikation mit dem Server und kann von jeder anderen Klasse instanziert und genutzt werden. Hierbei akzeptiert das Objekt der Network-Klasse eine Instanz einer beliebigen Klasse des Network-Packages, die jeweils einen Befehlstyp zur Client-Server Kommunikation beschreiben, und baut auf den Informationen dieses Objektes eine Verbindung zum Server auf, tauscht Informationen aus und übergibt die neuen Informationen an das Objekt.




Model-View-Controller


Model-View-Controller
Entsprechend dem Model-View-Controller-Architekturmodell wurde der Programmaufbau in die drei Bereiche Model(Datengrundlage), View(Benutzungsschnittstelle) und Controller(Steuerung) eingeteilt. Die Daten befinden sich in den Config-Dateien (MapConfig, MeepleConfig, GameConfig) und stellen das Model dar. Diese Daten können optional auch direkt vom Server geladen werden. Die GUI wurde dem View zugeordnet, sie stellt die Schnittstelle des Benutzers mit dem Programm dar. Dem Controller gehört die Netzwerk- und Game-Klasse an, da sie maßgeblich für die Steuerung und Spiellogik verantwortlich sind.

http://de.wikipedia.org/wiki/Model_View_Controller