Historyline Neuauflage

Kommentare anzeigen Worklog abonnieren

Worklogs Historyline Neuauflage

Zielsetzungen und Grundstruktur

Donnerstag, 9. Juli 2009 von Gravedigger

Historyline ist ein alter Klassiker, welcher auch heute noch eine große Fangemeinde hat. Leider ist die grafische Präsentation sowie Steuerung, milde ausgedrückt, nicht mehr zeitgemäß. Auch fehlt die mittlerweile obligatorische Möglichkeit in einem Netzwerk zu spielen.
Hartgesottene Freaks behelfen sich hier mit dem Versenden von Spielständen per Email, oder etwas eleganter mit VNC-Programmen.

Das spiel soll so konsequent objektorientiert programmiert werden, wie BlitzMax es zulässt. Ich arbeite normalerweise mit PHP / Java, im Vergleich dazu erwarte ich bei BlitzMax einige Einschränkungen bei der oop. Aber bis man in Java endlich seine Bibliotheken zusammengesucht und es geschafft hat, den Grafikmodus zu initialisieren, ist das Spiel mit BlitzBasic schon zur Hälfte fertig... Wink

Hatte gestern eine heftige Diskussion mit meinem Kollegen, welche Sprache für Historyline besser geeignet sei. Natürlich kam da wieder mal die typische Verachtung eines Profis Basic gegenüber zum Vorschein. Warscheinlich könnte ich das Spiel auch in Java oder gar C++ programmieren, allerdings ist mein Bestreben endlich Historyline in einer vernünftigen Auflösung spielen zu können und nicht, mich an perfektem Quellcode zu ergötzen...


die wichtigsten Zieldefinitionen:

1. Exakte Übereinstimmung mit dem Gameplay des Originals
2. Variable Auflösungen
3. Netzwerkmodus


Um nicht extra einen Single und Multiplayer-Modus programmieren zu müssen, wird auch für Single-Player Partien ein Gameserver gestartet. Dieser läuft dann als eigener Prozess im Hintergrund, von dem der Spieler nichts merkt. Das eigentliche Spiel läuft auf dem Server, der Client stellt lediglich das Interface zur Verfügung und übermittelt dem Gameserver die Aktionen des Spielers.
Der Server kann natürlich auch auf einem entfernten Rechner im LAN oder Internet laufen.


Meine erste Herausforderung war es, mit der Hexfeld Karte klar zu kommen und ein einfaches Interface zu erstellen:

user posted image

Dies gelang mir ansich recht schnell, allerdings habe ich danach noch zwei Tage damit verbracht, das Objektmodell zu optimieren. Zu diesem Zeitpunkt existieren für das Spiel 5 Klassen (warum heißen die bei Blitzmax eigentlich Types?).

die genaue Programmstruktur beschreibe ich der Faulheit wegen mal nicht. Wer genaueres Wissen will, kann gerne Fragen... Smile