Rollenspiele in JavaScript

Rollenspiele in Javascript sind an sich eine schöne Sache. Man muss keine zusätzliche Software installieren und das Spiel als solches ist auch immer aktuell. Gezeigt hat dies neulich Mozilla mit dem MMORPG BrowserQuest welches komplett im Browser läuft. Möchte man RPGs selber schreiben so sollte man sich mal die Bibliothek RPG JS anschauen, welche unter http://rpgjs.com/ zu finden ist. Die Engine ist dabei unter MIT und GPL dual lizenziert.

Weitere Informationen gibt es unter:
http://www.guido-muehlwitz.de/2012/02/rollenspiele-in-html5/
http://www.golem.de/news/browserquest-mozilla-startet-browser-mmog-in-html5-1203-90802.html

Rebuild of Invertika

Nach einigen Monaten ist es Zeit den Zwischenstand für den neuen Invertika Server und den Client vorzustellen. Invertika soll somit auf einer neuen technischen Basis stehen. Diese neue technische Basis sieht so aus, das der Server in C# geschrieben wird und somit unter Mono und .NET läuft. Für den Client ist eine Implementation als Webapplikation angedacht. Das ganze hatte dabei mehrere Gründe:

  • die Produktivität ist in C# höher als in C/C++
  • es können keine Speicherlöcher entstehen
  • durch die automatische Speicherverwaltung wird der Entwickler entlastet
  • modernes und konsistentes Framework
  • Anpassung auf eigene Bedürfnisse
  • schnellere Entwicklung
  • IPv6 Unterstützung ist problemlos möglich
  • bessere Unterstützung von mobilen Geräten

Neben diesen Gründen sind es auch einige Dinge wie „typedefs“ welche nicht unbedingt zum Verständnis beitrugen oder mehrere Klassen und Strukturen in einer Datei, welche das ganze ziemlich unübersichtlich machen. Auch die Abhängigkeit von zu vielen Bibliotheken wurde verringert.

Der Invertika Code in der Entwicklung

Nach einer kurzen Planungphase ging es dann am 3. Januar los mit der Entwicklung. Zuerst wurde damit begonnen den Accountserver zu portierten. Dabei wurden im Gegensatz zum Original einige Dinge verändern:

  • das Netzwerk setzt nun statt auf der Bibliothek „enet“ direkt auf TCP auf
  • PhysFS wurde wegrationalisiert

Am 13. Januar (einem Freitag ;)) waren die größten Portierungprobleme beim Accountserver gelöst und es wurde begonnen den Gameserver zu portieren. Am Gameserver ist die einzige größere Änderung die Anpassung der Skriptschnittstelle, damit diese mit den CLR Sprachen kompatibel ist. Die Roadmap für die Portierung sah dabei so aus:

  • Januar 2012: Implementation des Invertika Server
  • Februar 2012 Implementation des Invertika Clients
  • März 2012: Test der Software

Wie sich das für eine ordentliche Roadmap gehört wurde sie nicht eingehalten. So ist einiges noch nicht fertig und auch am Client muss noch viel getan werden. Der Client sollte ursprünglich auch in C# geschrieben werden und es wurde damit auch begonnen. Theoretisch ließe sich diese Clientvariante auf die Plattformen Windows, Linux, Mac OS X, iOS und Android bringen, praktisch ist es mit kleineren und größeren Problemen verbunden.

Ein generelles Problem an einem solchen Client ist, das er auf der jeweiligen Zielplattform erst installiert (oder auch kompiliert) werden und außerdem vom Nutzer aktuell gehalten werden muss. Schöner wäre es, wenn man diese Hürde aus dem Weg geschafft wird. Mittlerweile ist es dank Techniken wie Websockets, Webworkern und Canvas möglich, den Client komplett als Webapplikation zu schreiben.

Die Anfänge des neuen Clients basieren dabei auf der Techdemo „mana.js“ welche unter https://github.com/bjorn/mana.js zu finden ist. Der Vorteil der webbasierten Lösung ist dabei die große Kompatibilität mit unterschiedlichsten Geräten solange sie über einen aktuellen Browser verfügen.

Die Techdemo des Clients auf einem iPad

Während der Entwicklung bekamen die einzelnen Teile auch Namen die wie folgt lauten:

  • invertika (Client)
  • invertika-account (Accountserver)
  • invertika-game (Gameserver)

Der Quelltext sollte in den nächsten Tagen im Repository (http://source.invertika.org) erscheinen und zur Mitarbeit einladen ;)

Weitere Informationen gibt es unter:
http://invertika.org

Das Invertika Update im März

Der letzte Sonntag des Monats März ist gekommen und das heißt, das es wieder eine neues Update für Invertika gibt. Bei Invertika handelt es sich um ein Open Source 2D-MMORPG für Linux und Windows. In diesem Update wurden einige Tilesets überarbeitet (unter anderem „castle_1“ und „indoor_3“). Der Client wurde um besseren Support für kleinere Maps erweitert und die interne Hilfe etwas umgearbeitet. Die Repositories wurden umorganisiert so das jetzt die Bibliotheken in einem extra Repository zu finden sind.

Das Vacare, Rostock, und der Nex wurden von Mappingfehlern befreit. Die neue Kirche in Burg Cedric hat einen neuen Fußboden bekommen, der Friedhof wurde überarbeitet und auch ein Lagerhaus gibt es nun. In Lauria wurden einige Map- und Skriptfehler behoben. Auch in Nelaro und Selphi Timlet gab es einige Skriptfehler welche nun der Vergangenheit angehören. Die Netheksäule wird jetzt auch im Spiel mit einem „ä“ anstatt mit „ae“ geschrieben. Auch ein paar neue Items sind hinzugekommen. Das Wegesystem wurde etwas ausgebaut und an einigen Stellen korrigiert. In Lauria muss/kann man nun einen Schlüssel suchen und bekommt dafür eine entsprechende Belohnung.

Wer jetzt neugierig geworden ist, der kann uns unter http://invertika.org besuchen und es ausprobieren.

Das Invertika Update im Februar

Auch im kürzesten Monat (dieses Mal mit einem zusätzlichen Tag) des Jahres gibt es wieder ein Invertika Update. Bei Invertika handelt es sich um ein freies 2D-MMORPG für Linux und Windows.

So wurden in diesem Monat viele Tilesets angepasst und verbessert, so das diese nun besser zusammenpassen, was man unter anderem an der Windmühle sehen kann. Selphi Timlets Marktstände wurden etwas überarbeitet und auch in Effendis Residenz, Narva, der Zethek Universität und im Tagebau und der Seleyzone gab es einige Korrekturen. Auch einige Spawnzonen wurden angepasst.

Daneben wurde auf vielen Maps Kollisions- und Warpfehler korrigiert und auch viele Skriptfehler wurden behoben. Auf der Webseite hat sich auch einiges getan. So ist seit einigen Tagen der neue Bugtracker verfügbar. Die bestehenden Bugs und Featurerequest wurden dabei bereits importiert. Dieser hat den Vorteil das man nun mit einem Account, im Forum und der Wiki schreiben kann sowie den Bugtracker benutzen kann.

Beim Client wurde die Hilfe etwas überarbeitet, dies wird man allerdings erst sehen sobald das PPA bzw. die Installer aktualisiert wurden. Auf der Werkzeugseite wurde das „ivktool“ verbessert, das dieses nun bestimmte Fälle wie z.B. fehlende Tilesets erkennt und dies auch anzeigt. Wer jetzt neugierig geworden ist, der kann sich Invertika unter http://invertika.org anschauen.

Das Invertika Update im Januar

Der erste Monat des neuen Jahres ist fast geschafft und so steht nun auch wieder das monatliche Invertika Update an. Bei Invertika handelt es sich um ein freies 2D-MMORPG welches unter Linux und Windows läuft.

In diesem Update wurde wieder einiges getan. Neben der obligatorischen Fehlerbehebung (Kollisionsfehler, Warpfehler, Rechtschreibfehler et cetera), gab es auch einige größere Überarbeitungen wie z.B. an Burg Cedric. Desweiteren wurde am Denkmal des großen Fehlerbehebers weitergearbeitet und einige Fehler am Turm von Elys wurden behoben. Eine der Inseln kann nun durch einen Tunnel betreten werden.

Auf Questseite ist auch einiges neues zu finden, wie z.B. die Suche nach Chris. Der Pangalaktische Donnergurgler wurde etwas überarbeitet, sowie das Feuerwerk in Burg Cedric. Auch am Client wurden einige Dinge verbessert, die in nächster Zeit in den Repositories / PPAs auftauchen sollten, was sich auch in einem Update der Packaging Dateien niederschlug.

Wer jetzt neugierig geworden ist, der kann uns unter http://invertika.org besuchen.