iOS Open Source Game Engines

Bei der Spieleentwicklung auf iOS Geräten ist es von Vorteil eine Engine zu benutzen um sich einige „lästige“ Arbeit vom Hals zu schaffen. Unter http://maniacdev.com/2009/08/the-open-source-iphone-game-engine-comparison/ gibt es dazu eine schöne Liste von Open Source Engines für iOS. Dabei wurden nur Engines aufgelistet, welche auch darauf basierende Software im AppStore haben. Mir persönlich gefällt das Sparrow Framework ganz gut welches unter http://gamua.com/sparrow/ zu finden ist und sich für 2D Spiele eignet.

OpenOffice ist tot

Der Titel des Beitrages sagt eigentlich schon alles. Doch warum komme ich zu dieser Schlussfolgerung? Seit dem OpenOffice bei der Apache Foundation liegt (etwa ein Jahr) wurde einiges an OpenOffice getan. Auskunft darüber gibt eine Grafik unter https://blogs.apache.org/OOo/entry/an_apache_openoffice_timeline. Wenn man sich diese Grafik anschaut, merkt man das einiges daran getan wurde, aber effektiv lässt sich das kurz zusammenfassen: Verwaltung.

Das Problem an verwaltungstechnischen Aufgaben ist, das sie das Projekt bzw. die Software nicht voranbringen. Und LibreOffice legt doch ordentlich vor. So hat sich dort einiges getan in den letzten Monaten und der Nutzer sieht es auch. Es gab es schon einige Versionen mit neuer Optik, neuen Features und einer Menge Bugfixes. Auch an dem Ausbau der Javateile wird gearbeitet. Alles in allem ist die „Document Foundation“ nutzerzentriert und richtet sich auch nach den Wünschen derselben. Mein persönliches Lieblingsargument ist allerdings das „LibreOffice“ um Längen besser klingt als „OpenOffice“ bzw. „OpenOffice.org“.

Weitere Informationen gibt es unter:
http://www.heise.de/open/meldung/OpenOffice-Was-seit-dem-Wechsel-zu-Apache-passiert-ist-1472321.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

PlayN

Wer ein Spiel für ein Mobilgerät schreiben möchte hat das Problem das es eine ganze Menge dieser Systeme gibt. Die bekannteren sind sicherlich Android und iOS. Möchte man für diese Systeme ein Spiel schreiben, so wäre eine Abstraktionsschicht eine feine Sache. Eine solche bietet Google mit „PlayN“ unter der Apache Lizenz an. Mit diesem Framework wurde unter anderem die Google Chrome Version von Angry Birds geschrieben. Aktuell werden folgende Plattformen unterstützt:

  • Java
  • HTML5
  • Android
  • iOS

Auch Flash wird unterstützt, wobei das Backend dafür im Moment einen Maintainer sucht und deshalb in dieser Liste nicht auftaucht. Herunterladen kann man sich PlayN unter http://code.google.com/p/playn/.

Weitere Informationen gibt es unter:
http://code.google.com/p/playn/wiki/PlatformStatus
http://www.schockwellenreiter.de/blog/2012/03/12/playn/

Airtime installieren

Bei Airtime handelt es sich um eine freie (GPLv3) Software für Radioautomatisation welche von der tschechischen Non-Profit-Organisation Sourcefabric entwickelt wird. Hier soll es um die Installation der Software auf einem Ubuntu Server gehen.

Die installierte Airtime Oberfläche

Zuerst sollte (falls dies nicht schon der Fall ist) „gdebi“ installiert werden:

apt-get install gdebi

Nach der Installation von „gdebi“ kann es dann weitergehen.

wget http://apt.sourcefabric.org/misc/airtime-easy-setup.deb
apt-get update
gdebi airtime-easy-setup.deb
apt-get update 
apt-get install airtime

Zwischenzeitlich fragt die Installation nach dem Passwort für Airtime. Dieses Passwort kann allerdings später auch noch geändert werden. Nachdem der Prozess abgeschlossen ist, kann auf die Software zugegriffen werden. Dazu öffnet man den Browser und gibt die entsprechende URL z.B. „http://127.0.0.1“ ein. In der Oberfläche kann Airtime dann konfiguriert werden und der Sendebetrieb geplant werden.

Weitere Informationen gibt es unter:
https://github.com/sourcefabric/Airtime
http://sourceforge.net/projects/airtime/
http://en.flossmanuals.net/airtime-en-2-0/easy-setup/