A3O – TripleA Online

Habe nun schon mehrere Monate nichts mehr auf meinem Blog von mir hören lassen. Ich hatte keine Motivation und habe mich lieber mit anderen Dingen beschäftigt: vor allem mit A3O.

A3O (gesprochen TripleA O) ist ein TripleA / Axis & Allies Klon der komplett im Browser läuft. Dabei kommen moderne Webtechnologien wie HTML5 (v.a. Canvas) und ECMAScript 5 zum einsatz. Gestützt wird das ganze durch eine auf LAMP basierte Serverkomponente, die für die Spielinitiierung, den Spielablauf und das Einhalten der Regeln verantwortlich ist. Zur Zeit arbeite ich intensiv am Server-Backend (wie man vielleicht an meinem Twitter Stream erkennen kann) um grundlegende Mechanismen und ein erstes konkretes Regelwerk zu implementieren (nämlich Axis & Allies Revised LHTRv2.0).

Auf Clientseite gibt es bereits einen Prototypen, der allerdings komplett verworfen und neu implementiert werden wird. Beim implementieren des Prototyps zeigten sich gravierened Performance unterschiede der verschiedenen ECMA-Script/JavaScript implementationen und das ursprüngliche Konzept eines modularen, flexiblen Rendering Envoirements lässt sich auf manchen dieser Implementationen (Firefox 3.6) leider nicht performant genug umsetzen.

Das Projekt wird aller Voraussicht nach unter einer OpenSource ggf sogar Copyleft Lizenz veröffentlich werden. Der Quelltext ist bereits auf github.com öffentlich einsehbar steht aber bisher noch unter keiner konkreten Lizenz und unterliegt somit den regulären Copyright- und Urheberrechtseinschränkungen bis ich mich für eine Lizenz entschieden habe.

Auch wenn es sich um einen TripleA Klon handelt, stellenweise ähnliche oder gleiche Konzepte zum Einsatz kommen und versucht wird möglichst “Assetkompatibilität” zu erhalten und wo dies nicht möglich ist Konverter und Importiermechanismen zur Verfügung gestellt werden sind die Spiele grundsätzlich nicht kompatibel zueinander. Das heißt ein gemeinsames Spiel untereinander wird nicht möglich sein und Spielregeln bzw. Maps lassen sich nicht ohne vorherige Anpassung einbinden.

Mein Zeitplan sieht im Moment vor in den nächsten Wochen die Serverimplementation auf einen rudimentär lauffähigen Stand zu bringen. Features die dann vorhanden sein werden sind das Gameboard (platzieren, bewegen, entfernen von Einheiten, erforschen von Technologien, etc), das Turnhandling in Form einer Finite State Machine und das abbilden von in das System eingespeiste Kommandos bzw Changes auf das Gameboard und die FSM (Spielereingaben, die vom Client übermittelt werden). Signifikante Features, die zu dem Zeitpunkt noch fehlen werden sind Sessionhandling, Authentifikation, Lobby Features (Spiele erstellen, beitreten, etc) und vor allem die Battle Mechanik möchte ich noch etwas hinauszögern.

Zu diesem Zeitpunkt möchte ich die Entwicklung am Server vorerst einfrieren und die Entwicklung des Clients voran bringen. Vorläufiges Ziel ist ein hoch performantes Rendering auf HTML Canvas des Gameboard mit allen Informationen die es zur Verfügung stellt, bewegen von Einheiten und Phasen und Zugwechsel. Zu diesem Zeitpunkt habe ich dann auch endlich etwas aktuelleres zum Vorzeigen womit ich hoffe das Interesse an A3O auch in der Axis & Allies Community im Netz entfachen zu können. Denn es gibt eine begeisterte Online Spieler Community im Internet, die allerdings noch immer mit archaisch anmutenden Technologien spielt (PBEM, ABattleMap, Dicey, etc). Ein Browsergestütztes Axis & Allies ist das was dieser Online Community seit Jahren fehlt.