Die Engine

Das Team

Das Team, welches zusammen an seinem Traum arbeitet

DragonsDawn

the gaming engine...

Warum schreiben wir überall von Welten und nicht einfach von DragonsDawn? nter dem Namen DragonsDawn entwickeln wir zwei Dinge. Zum einen ein Server, der eine einfache Umsetzung Rundenbasierter Spiele erlaubt und eine Welt die auf diesem Server läuft. Natürlich fantasieren wir zwischendurch auch rum und überlegen uns was für Welten denn noch interessant wären. Für die Softwareinteressierten eine kurze Erläuterung der Serverarchitektur. Für die, die einfach nur Spielen wollen eine kurze Liste der geplanten Features der Welt findet ihr in der Rubrik Welten. Alles in betonter Kürze, da ich lieber die Features implementiere als sie zu beschreiben. enginehand

DragonsDawn - Server

Der Server ist, wie auch das restlich Spiel in Java programmiert. Die Basis bilden 6 Module.

  • Konfiguration: Dieses Modul verwaltet die Regeln der Welt, sprich Befehlssatz, Rassen, ...
  • Datenbank: Dieses Modul verwaltet den aktuellen Zustand der Welt
  • Befehlseinlesen: Das Einlesen von Befehlen der Spieler und Konvertierung in ein unabhängiges Format
  • Befehlsvalidierung: Das Validieren der Befehle, damit auch nur die Befehle für die eigenen Einheiten ausgeführt werden.
  • Auswertung: Auswertung der Befehle und Ereignisse.
  • Ausgabe: Die Ausgabe von Reporten und Statistiken.

Für diese allgemeine Abstraktion haben wir uns entschieden, um falls nötig eine spezielle Implementation einfach auswechseln zu können ohne die anderen Teile noch mal anfassen zu müssen. Z.B. falls die Datenbank zu lahm ist. Die derzeitige Implementation/Planung hat folgende Gestalt.

  • Konfiguration: XML - Konfiguration. Die Zuordnung zwischen Klassen und Daten erfolgt durch Attribute der XML-Blöcke.
  • Datenbank: Wir nutzen eine SQL Datenbank
  • Befehlseinlesen: Wir werden erstmal Befehle in der Struktur von German Atlantis, Eressea, ... benutzen, um die dafür geschriebene Clients, z.B. Magellan, mitnutzen zu können.
  • Befehlsvalidierung: Die Befehlsvalidierung Bedarf keiner weiteren Erweiterung, da sie im Kernmodul implementiert ist und die Abstraktion der Befehle auf Datenbankebene und dem Befehle einlesen stattfindet.
  • Auswertung: Ein XML - gesteuerte Multithreading Auswertung
  • Ausgabe: Wir werden um Clients nutzen zu können dem CR-Format (Computer Report) folgen aber von Anfang an ein XML - Report mitliefern

DragonsDawn - Entwicklungsstatistiken

Im Forum könnt ihr Euch weitere Informationen zum aktuellen Entwicklungsstand anschauen, Fragen stellen und uns Anmerkungen zukommen lassen. Aktuelle Revisionen werden auch immer im Forum angekündigt. Unten seht ihr noch einige Bilder, die den Verlauf der Entwicklung visualisieren.

In der ersten Grafik werden Coverage, Checkstyle und JUnit-Tests der letzten 50 Revisionen in Prozent dargestellt. Schlägt der JUnit-Graph nach unten aus, dann kann dies verschiedene Gründe haben. Z.B. kann es sein, dass der Server gerade ausgelastet war und die Speichertests fehlgeschlagen sind. Wenn die Coverage sinkt hat das in der Regel damit zu tun, dass viele neue Codezeilen geschrieben wurden, dies kann auch mit der zweiten Grafik verglichen werden. Statistik

In der zweiten Grafik sind die Anzahl der Tests, Codelines, Files sowie die Laufzeit (in Sekunden) der letzten 50 Revisionen dargestellt. Statistik

In der dritten Grafik werden Coverage, Checkstyle und JUnit-Tests in Prozent dargestellt. Der Ausschlag von Checkstyle nach unten (bei Revision 1908 und 2209) ist bedingt durch Einführung neuer Checkstyle regeln. Statistik

In der vierten Grafik sind die Anzahl der Tests, Codelines, Files sowie die Laufzeit (in Sekunden) dargestellt. Statistik

In der fünften Grafik sind einige Angaben zu unserer Konfiguration enthalten. Die Konfiguration ist komplett in XML-Dateien abgelegt. Statistik

Das Team

Aktuell arbeiten wir zu zweit an der Weiterentwicklung der Engine. In den letzten Jahren haben uns aber verschiedene Freunde bei der Entwicklung unterstützt.

  • lorgalis: Idee, Konzept, SpielDesign, JavaProgrammierung, XML-Programmierung ein bisschen
  • fetisch: Konzept, SpielDesign, HomePageDesign, HomePagePflege, Java-Programmierung ein ganz klein wenig
  • Lichtbringer: Erster Kritiker und Manager der DragonsDawn Fankurve
  • El Jaman: Konzept, SpielDesign, HomePageDesign, Zeichnungen
  • Darnest: Gründungsmitglied (Idee, Konzept)