Das TMX Format

Auf der Website http://www.mapeditor.org gibt es einen freien Tilebasierten Mapeditor names Tiled. Der Editor wurde in Java geschrieben und wird unter anderem von Projekten wie The Mana World (http://www.themanaworld.org) benutzt.

Das Standardformat dieses Editores ist TMX. Dabei handelt es sich um eine XML Datei in der die Daten kodiert sind. Vor einiger Zeit war ich damit beschäftigt einen Reader für das Format zu schreiben. Leider ist die Dokumentation des Formates sehr lückenhaft, aber dank einiger tatkräftiger Hilfe auf der Mailingliste war der Reader nach einer Weile dann doch fertig. Doch nun zum TMX Format. Eine TMX Datei könnte z.B. so aussehen: ow-testmap.tmx

Als erstes kommt der map Tag in dem alle anderen tags untergeordnet sind. Der erste Tag von Interesse ist dann der tileset Tag. In diesem Tag stehen der Name des Tilesets, die FirstGID (dazu später mehr), die Breite und Höhe der Tiles sowie das Quellbild des Tilesets.

Nachdem die Tilesets definiert sind beginnen auch schon die Layer Definitionen. Eine Karte kann aus mehreren Layern bestehen z.B. einem Kollisionlayer. Im Layer Tag stehen der Name, die Breite und Höhe des Layers. Darunter folgt bei komprimierten Karten (die Standardeinstellung von Tiled) der Tag data mit dem Attribut encoding. In unserem Beispiel ist die Kodierung Base64 und die Kompression gzip. Um an die Daten des Layers zu kommen muss man den von den Data Tags eingeschlossen String nehmen und mittels Base64 decodieren. Anschließend erhält man ein Byte Array. Dieses Byte Array muss dann noch mittels des gzip Algorithmus dekomprimiert werden. Bei dieser Aktion kommt am Ende auch wieder ein Byte Array heraus.

In diesem Byte Array stehen dann die Tilenummern drin und zwar in Form von 4 Byte Integers (Little Endian). Hat man z.B. eine 2×2 Karte so würden die Tiles in folgender Reihenfolge kommen: 0,0 – 0,1 – 1,0 – 1,1.

Nun stellt sich nur noch die Frage wie man diese Tilenummern interpretiert. Und dabei kommt jetzt die FirstGID des Tileset zum tragen. Nehmen wir an das wir die Tilenummer 270 auslesen. Um nun zu ermitteln zu welchem Tileset die Nummer gehört prüfen wir in welches Tileset in diesem Bereich liegt und stellen fest das das Tileset desert2 genau in diesem Bereich liegt. Dann rechnet man noch Tilesetnummer – FirstGID und schon hat man die Tilesetnummer und das Tileset (in diesem Fall 11). Nun wissen wir das das Tile das elfte Tile im Tileset desert2 ist.

NoLimits

Als ich auf der Suche nach einem Freizeitpark in der Nähe von Berlin war, ist wir eine Simulation namen NoLimits über den Weg gelaufen. Bei NoLimits handelt es sich um einen Achterbahnsimulator mit welchem man Achterbahnen bauen und natürlich auch physikalisch korrekt simulieren kann. Die Simulation (in 3D) erzeugt doch ein wohliges Bauchgefühl und das ohne Eintritt bezahlt zu haben :) Wobei meine bisher gebauten Achterbahnen niemals eine Zulassung bekommen würden…

Weitere Informationen zu NoLimits gibt es unter:
http://de.wikipedia.org/wiki/NoLimits
http://www.nolimitscoaster.de/

TestDisk

Vor einigen Tagen gab es eine defekte Festplatte zu reparieren. Rein hardwaretechnisch summte die Platte wie ein Kätzchen. Also habe ich die Festplatte mal per USB an das System angeschlossen und siehe da nichts geht :) Da das ganze auf einem Windowssystem passierte habe ich erst einmal die Datenträgerverwaltung aufgesucht. Aber die wollte auch nichts mit dem Datenträger zu tun haben…

Nun hieß es härtere Bandagen aufzuziehen. Genau in diesem Moment lief mir das nützliche Tool TestDisk über den Weg. Mit Hilfe von TestDisk kann man verschiedene Dinge tun unter anderem Partionstabellen reparieren, das Wiederherstellen von Bootsektoren und andere wunderschöne Dinge :) Und das beste an TestDisk ist das es unter fast jedem System läuft von DOS über Windows und Linux bis zu SunOS. Zu finden ist TestDisk unter http://www.cgsecurity.org/wiki/TestDisk.

Python IDE

Auf der Suche nach einer Python IDE sind mir einige IDEs über den Weg gelaufen, wobei die meisten davon zu unausgereift waren. Hängen geblieben bin ich dann an zwei IDEs. Einmal ist dies SPE (Stani’s Python Editor) und die andere IDE hört auf den Namen Eric.

SPE ist eine Python IDE nach dem Motto klein aber fein und bietet eigentlich alles was man für die Python Entwicklung benötigt. Möchte man mehr (wie z.B. SVN Unterstützung) so greift man zu Eric. Eric bietet neben der Unterstützung eines VCS noch einige Features mehr.

Zu finden sind diese IDE’s unter http://pythonide.blogspot.com/ (SPE) sowie unter http://die-offenbachs.de/eric/ (Eric).

FSO Milestone 2

Nach einigen Tagen Verspätung ist der zweite Meilenstein des Freesmartphone Frameworks erschienen. Herunterladen kann man das ganze unter: http://downloads.openmoko.org/framework/milestone2/.

Bedingt durch die Verspätung hat sich auch der Zeitplan der weiteren Meilensteine ein wenig verschoben. So kommt MS3 erst am 30.08.2008, MS4 am 30.09.2008 und MS5 am 30.10.2008.

Im aktuellen Meilenstein wird Ilumne als Aufsatz bzw. zur Verwaltung der Fenster eingesetzt. Weiterhin befindet sich TangoGPS sowie das GTK Terminal mit in dem Image, so das das ganze zur Entwicklung taugt.