Entwicklung

Die folgenden Abschnitte richten sich ausschließlich an die am Projekt beteiligten Entwickler.

Grundlegendes zur Architektur

Fleet Commander ist eine Client-Server-Anwendung. Alle für die Simulation relevanten Daten werden auf dem zentralen Server ausgewertet. Die Clients erhalten lediglich die Information die sie Darstellen sollen und dürfen. Die Clients nehmen die Benutzeraktionen entgegen und senden sie zurück an den Server. Der Server prüft auf Korrektheit der Eingaben und führt sie aus.

Echtzeitanforderungen

Fleet Commander ist ein Echtzeitspiel. Allerdings mit nur geringen Anforderungen. Die Zeitdauer eines Spielticks, d.h. die zeitliche Auflösung liegt in der Größenordnung von einer Sekunde. Das ist auch die Rate mit der die Clients den Spielzustand auffrischen müssen.

Unterstützte Plattformen und verwendete Technologien

Server

Der Server ist in C++ programmiert. Derzeitiges Zielsystem ist Win32 (Konsole). Jedoch wird Wert auf plattformunabhängigen Quellcode gelegt, so dass es leicht sein sollte den Server auf andere Plattformen zu portieren. Hierfür kommen neben der C++ Standardbibliothek auch die weitgehend plattformunabhängigen Bibliotheken Boost::Threads (Multithreading) und Boost::Asio (Netzwerk) zum Einsatz.

Client

Der Client soll auf möglichst vielen Zielsystemen lauffähig sein. Gleichzeitig werden gewisse Ansprüche an Echtzeitgrafik-Fähigkeit gestellt. Eine Implementierung in Java wäre wünschenswert. Aber auch andere Möglichkeiten bestehen. Eventuell können mehrere voneinander unabhängige Clients für verschiedene Plattformen entwickelt werden.

Datenaustausch zwischen Server und Clients

Der Datenaustausch zwischen Server und Clients baut auf TCP/IP auf. Das auf Anwendungsebene verwendete Protokoll ist noch zu spezifizieren.

[...]