Technische Akademie Wuppertal / Zentrum Audiovisuelle Medientechnik (TAW/ZAM)

Anwendungsentwickler Inter- / Intranet



Projektarbeit "Diplomacy-Online"

Ein Strategiespiel um die Vorherrschaft in Europa

von Andreas Seier



nähere Infos unter:
http://aseier.de/Diplomacy




Stand: 22. Februar 2002




Projektarbeit "Diplomacy-Online"

Projektentwurf

  1. Zielbestimmung

Das Computer-Spiel "Diplomacy-Online" ist eine Umsetzung des Strategie-Brettspieles "Diplomacy" der Firma PARKER, ? 1993 Tonka Corporation, nach den von Christian Jentzsch überarbeiteten Spielregeln (Heute wird das Brettspiel von der Firma Hasbro vertrieben - nähere Infos unter: http://www.avalonhill.com/default.asp?x=games_diplomacy). Bei diesem Strategiespiel streiten sieben europäische Mächte (Countries), die von jeweils einem Mitspieler (Players) kontrolliert werden, zu Beginn des 20. Jahrhunderts um die Vorherrschaft in Europa.

Europa ist dazu in Land- und See-Gebiete (Land- & Sea-Provinces) gegliedert. Jede Macht verfügt über militärische Einheiten (Units), wobei diese Einheiten entweder Armeen darstellen, die sich in Land-Gebieten, oder Flotten, die sich in See-Gebieten und in Land-Gebieten mit Küste aufhalten können. In jedem Gebiet kann sich jeweils nur maximal eine Einheit aufhalten, die damit dieses Gebiet besetzt. Eine Reihe der Landgebiete beinhalten des weiteren Versorgungszentren (Centers), deren Besetzung durch Einheiten darüber entscheidet, über wie viele Einheiten eine Macht verfügt.

Der Spielablauf gliedert sich in Halbjahre (Frühjahr und Herbst), beginnend mit dem Frühjahr 1901. Ein Habjahr besteht aus folgenden Phasen:

Am Ende jeder Auswertungsphase erhalten die Spieler eine Übersicht über die Auswertung und den daraus resultierenden Spielstand.

Die vollständigen Spielregeln, sowie die Spielkarte und Links zu anderen Diplomacy-Spielen im Internet finden sich unter: http://aseier.de/Diplomacy

Pflichtkriterien

"Diplomacy-Online" soll als Client- / Server-Lösung realisiert werden.

Der Server übernimmt dabei die gesamte Steuerung des Spielablaufs. Auf dem Server werden Spiele eingerichtet und müssen sich Spieler für ein Spiel anmelden. Der Server sendet den Spielstand an die angemeldeten Spieler, nimmt Mitteilungen von Spielern an andere Spieler in der Verhandlungsphase entgegen und leitet diese entsprechend weiter, nimmt Spielzug-, Rückzugs- und Aufbau-Befehle der Spiele entgegen, wertet diese Befehle aus und erstellt einen neuen Spielstand. Des weiteren ist er für die dauerhafte Speicherung der Spielstände und -verläufe (Produktdaten) verantwortlich.

Der Client ist das User-Interface (UI) für die Mitspieler. Diese UI nimmt die Anmeldedaten, Spielzüge, Mitteilungen an andere Mitspieler des Spielers entgegen, sendet diese an einen ausgewählten Server. Im Gegenzug nimmt er die Datenpakete, die ihm der Server sendet entgegen (Anmeldungsbestätigungen, Mitteilungen der Mitspieler, Spielstände) und stellt diese dar. Der Client soll, da er eventuell als Java-Applet realisiert werden soll, keine Produktdaten dauerhaft speichern, sondern diese immer bei Bedarf vom Server anfordern.

Nach meinen bisherigen Nachforschungen gibt es Spielergemeinschaften im Internet, die Diplomacy bzw. Varianten davon mit anderen Karten über das Netz spielen. Dabei handelt es sich um pbe-Spiele (play-by-eMail). Die Mitspieler kommunizieren untereinander und mit der auswertenden Stelle (dem Judge) via eMail. Als Judge fungieren entweder reale Personen oder Serverprogramme, die in der Lage sind, die eingegangenen eMails an den Judge automatisch einzulesen, auszuwerten und Spielstände per eMail zu versenden, bzw. Spielstände und ganze Spielverläufe auf einem Web-Server abzulegen. Des weiteren existieren Visualisierungsprogramme (u.a. auch in Java), die die formalisierte ASCII-Ausgabe der Judge-Server in Form einer graphischen Karte visualisieren. Diese Visualisierungstools können entweder von den Spielern eingesetzt werden, bzw. werden direkt von Judge-Servern ausgerufen, um die angesprochenen Web-Spielstands-/verlaufs-Seiten zu generieren.

Aufgrund der Tatsache, dass Visualisierungstools existieren und für die Grundfunktionalität des Projekts nicht unbedingt erforderlich sind (auch wenn sie die Attraktivität des Produkts deutlich steigern würde), wird das UI erst einmal keine Visualisierung der Spielstände vorsehen. Die Eingabe der Spielzüge soll jedoch dahingehend vereinfacht werden, dass der Server im Rahmen der Übermittlung der Spielstände auch Listen aller möglichen Zugoptionen für die einzelnen Einheiten mitliefert, aus denen der Spieler nur noch die gewünschten Befehle für seine Einheiten auswählen kann. Dies verhindert auch die Eingabe von nicht gültigen Befehlen.

Auf Seiten des Servers steht erst einmal die Kommunikationsfähigkeit mit den Spieler-Clients im Vordergrund des Projekts. Die Auswertungsfunktionalität des Servers wird im Rahmen dieses Projekts als zweitrangig angesehen, da zum einen schon Judge-System existieren und zum anderen integrierte Kommunikationssysteme zwischen Server (Judge) und Client (Player) fehlen. Nichts desto trotz halte ich die Auswertungsfunktionalität für wichtig, aber für unrealistisch, im Rahmen der kurzen Projektzeit zu realisieren.

  1. Wunschkriterien

Aus der Darstellung der Pflichtkriterien ergeben sich die Wunsch- und Abgrenzungskriterien dieses Projekts. Als Wunschkriterien werde daher angesehen:

      1. Abgrenzungskriterien

Als Abgrenzungskriterien gilt:

    1. Produkteinsatz

      1. Zielgruppe / Anwendungsbereich

Zielgruppe sind natürlich alle Leute, die gerne Strategiespiele spielen. Da davon auszugehen ist, dass sich ein Spiel über längere Zeiträume hinstrecken können (bei Setzung eines virtuellen Diplomacy-Halbjahres auf eine reale Woche und ca. 15 zu spielenden Diplomacy-Jahren, resultieren ca. 30 Wochen reale Spielzeit), sind natürlich ausdauernde Mitspieler gefragt.

Das Spiel soll in lokalen Netzwerken gespielt werden können (z.B. als Nebenbeschäftigung während eines TAW-Kurses) oder aber auch im Internet.

      1. Betriebsbedingungen

    1. Anwendungsfälle / Funktionalität

      1. Server/Judge

Beim Starten des statischen Teils des Servers sind folgende Schritte erforderlich:

Beim Starten des Server-Objekts laufen folgende Schritte ab:


... weiteres am Montag

      1. Client/UI

Beim Starten des Clients sind folgende Schritte erforderlich:

Registrierung und Anmeldung werden an den Server gesendet. Dieser bestätigt die Anmeldung / Registrierung , bzw. weist sie zurück.

Bei Zurückweisung oder bei Fehlern des Verbindungsaufbaus wird die Startfolge wiederholt.

Bei Bestätigung der Anmeldung sendet der Server

Bei Aufrechterhaltung der Verbindung sendet der Server bei Bedarf (d.h. bei Änderungen) aktualisierte Listen und Spielstände.

Aus der Liste der laufenden Spiele kann sich der Spieler Spiele auswählen, um sich den Spielstand anzeigen zu lassen. Die Auswahl wird an den Server gesendet, der wiederum den entsprechenden Spielstand zurückliefert. Der Client zeigt dann den Spielstand an.

Aus der Liste der auf Mitspieler wartender Spiele kann sich der Spieler ein Spiel auswählen, an dem er sich beteiligen möchte. Auch diese Auswahl wird an den Server gesendet. Dieser bestätigt die Spielbeteiligung oder weist sie zurück (vielleicht war jemand schneller mit der Anmeldung). Als Bestätigung wird der Spielstand gesendet.

Aus der Liste der auf dem Server existierenden Karten kann der Spieler eine Karte auswählen, um unter Angabe weiterer Parameter (Dauer der Spielrunden und -phasen, Spielname) ein neues Spiel zu eröffnen. Die Auswahl wird an den Server gesendet, der wiederum kann die Eröffnung bestätigen oder abweisen.

Aus der Zusendung der Spielstände von Spielen, an denen der Spieler beteiligt ist, ergeben sich unterschiedliche Handlungsanforderungen an den Spieler abhängig davon, welche Phase des Spiels gerade ansteht.

    1. Produktdaten

Für die permanente Sicherung der Produktdaten ist der Server zuständig. Die Clients nehmen keine permanente Produktdatensicherung vor.