Anforderungsdefinition
Erstellt am: Februar 15th, 2007Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w0074a9b/mageto/wp-includes/formatting.php on line 75
Hier ist nun die von uns heute verfasste vorläufige Anforderungsdefinition:
YaB – Yet another Bomberman
Wir von BlueScreenDeveloper haben uns die Aufgabe gestellt einen neuartigen Bombermanklon zu schaffen, der alle bisherigen Version an Spielspaß überbietet.
Auf dem Weg zum fertigen Spiel orientierten wir uns am Phasenmodell objektorientierter Programmierung. In Anlehnung an dessen sechs theoretische Phasen:
- Problemanalyse und Anforderungsdefinition
- Fachlicher Entwurf
- Softwaretechnischer Entwurf
- Programmierung und Modultest
- Systemintegration und Systemtest
- Installation, Betrieb und Weiterentwicklung
Problemanalyse und Anforderungsdefinition
Spielinhalt
- Eine vom Nutzer gesteuerte Figur bewegt sich durch die Spielumgebung. Diese ähnelt einem Labyrinth. In dem es verschiedene Arten von Hindernissen gibt, einige sind zerstörbar andere nicht. Unter den zerstörbaren Hindernissen sind verschiedene Arten von Powerup’s verborgen. Powerup’s werden beim Berühren automatisch aufgenommen.
- Abhängig vom Spielmodus gibt es verschiedene Spielziele:
- Singleplayer: Durch Vernichten von Gegnern und dem Sammeln von Powerup’s möglichst viele Punkte zu erzielen. Desweiteren ist ein Portal zu finden, welches in das nächste Level führt.
- Multiplayer: Hier gibt es zwei Untermodi. Deathmatch, jeder spielt gegen jeden, das Ziel ist als Letzter übrig zubleiben. Die zweite Variante ist Teamdeathmatch, in dem das gegnerische Team besiegt werden muss.
Features
- Internet: Der Highscore, des Singleplayermodus, wird online in einer MySQL Datenbank gespeichert. Das Spiel ist online verfügbar.
- Editor: Im Editor sind eigene Karten erstellbar.
- Es ist ein WYSIWYG-Edtior.
- Man kann die Karten speichern und im Spiel verwenden.
- Powerups können manuell und/oder automatisch gesetzt werden.
- Es gibt eine Hilsfunktion zu jedem Element des Editors.
- der Editor erkennt fehlerhafte Nutzereingaben und korrigiert diese auf Wunsch automatisch.
- HoverChange(HC)- Es können mehrere Editorfelder mit einer Mausbewegung verändert werden.
Steuerung
- Tastatur zur Spielsteuerung
- Pfeiltasten/WASD zur Bewegung der Spielfigur
- Leertaste/Strg zum Legen der Bomben
- Zahlentasten zum Einsetzen der mächtigsten Powerup’s
- Mausgesteuerte Grafikoberfläche für sonstige Funktionen (Highscore etc.)
Produktumgebung/ Systemvoraussetzungen
- Das Spiel ist für alle Betriebssysteme geeignet, auf denen auch Java funktioniert, also u.a. Windows, Linux oder Macintosh.
Netzwerkfunktionen
Erstellt am: Februar 15th, 2007Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w0074a9b/mageto/wp-includes/formatting.php on line 75
Ich habe nun erste Gehversuche mit den Netzwerkklassen in Java gemacht und einige Klassen geschrieben, die als Basis für unseren Netzwerkmodus dienen werden. Das folgende UML Diagramm gibt einen (vereinfachten) Einblick in die Klassenstruktur:

Die NetworkHost Klassen repräsentiert einen PC im Netzwerk/Internet. Mit Hilfe der abstrakten Methode startConnecting() wird ein seperater Thread gestartet, der versucht eine Verbindung zu einem zweiten PC aufzubauen. Kommt die Verbindung zustande, so erhält man ein Socket Objekt, mit dem die Kommunikation zu dem PC möglich ist.
Die Session Klasse stellt eine Netzwerksitzung dar, die sich entweder im CONNECTING, SETUP oder RUNNING Status befindet. Sie benötigt eine Referenz zu einem NetworkHost Objekt, d.h. es besteht eine existenz-abhängige Assoziation (Komposition) zwischen den Klassen. Praktisch gesehen, bieten die Network~ Klassen einen Low-Level Zugriff auf die Netzwerkfunktionen wohingegen die Session Klasse eine abstraktere Sicht auf das Netzwerk ermöglicht.
Innerhalb der Session Klasse existiert ein ObjectOutput- sowie ein ObjectInputStream, mit dem Objekte zwischen den PC’s ausgetauscht werden können, vorrausgesetzt die Objekte bzw. deren Klassen implementieren das Serializable Interface.
Ein kleines Chatprogramm, welches die Netzwerkfunktionalitäten (es funktioniert ebenso übers Internet) demonstriert, werde ich am 17. Februar beim Tag der offenen Tür an der Gebrüder-Montgolfier-Schule vorstellen.
Bomberman Projekt
Erstellt am: Februar 11th, 2007Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w0074a9b/mageto/wp-includes/formatting.php on line 75
Bomberman
Wir (das sind Max, Philipp, Tom und Georg) haben uns entschlossen im Rahmen des Informatikunterrichts einen Bomberman-Klon zu entwickeln. Dazu bleiben uns noch ziemlich genau zwei Monate, in denen wir alle Phasen des Software Engineerings durchlaufen müssen.
Zur Entwicklung verwenden wir Netbeans 5.5 in Kombination mit dem UML Plugin. Das Programm wird in Java entwickelt und soll folgende Anforderungen erfüllen: Es muss eine persistente Datenhaltung enthalten sein sowie eine grafische Oberfläche.
Die Anforderungen, die wir uns gestellt haben sind folgende (Ausschnitt):
- Komplette Implementierung des Bomberman Spielprinzips (man muss Bomben legen und somit den Gegen beseitigen)
- Das Spiel sollte zu zweit an einem PC spielbar sein
- Desweiteren sollte man das Spiel im Netzwerk auf zwei PC’s spielen können (entweder jeder gegen jeden oder in Teams à 2 Leute)
- Ein Leveleditor zum Erzeugen der Karten
- Eine Aufnahmefunktion mit der der Spielablauf aufgenommen und später wieder abgespielt werden kann
- Eventuell eine Speicherfunktion, damit man Spielstände wieder laden kann und später weiterspielen kann
- Etliche Powerups mit denen sich z.B. die Zeit verlangsamt oder mit denen man schneller Bomben legen kann