Factorio in HD

Factorio ist ein Spiel, in welchem der Protagonist auf einem Planeten abstürzt und anschließend versucht wieder zu entkommen, indem er eine Rakete baut. Dazu müssen komplexe Fabrikanlagen gebaut werden und diese miteinander verbunden werden.

Factorio
Preis: 25 €

In den bisherigen Versionen wirkte die Grafik eher altgebacken, aber dies hat sich mit der eben erschienenen Version 0.17 geändert. In dieser neuen Version wurde unter anderem die Grafik des Spieles aufpoliert.

Factorio glänzt nun mit neuer Grafik

Daneben gab es viele weitere, kleinere und größere, Änderungen. So wurde die komplette Oberfläche überarbeitet, der Forschungsbaum angepasst, der Mapeditor umgeschrieben, sodass dieser nun direkt im Spiel genutzt werden kann. Auch die Feinde wurden komplett überarbeitet. Unter der Haube wurde unter anderem das komplette Rendering-Backend neugeschrieben. Alles in allem ist mit der neuen Factorio-Version ein großer Wurf gelungen.

iOS-Bibliothek zur Darstellung von TMX-Dateien

Mit dem freien Mapeditor Tiled, gibt es ein sehr mächtiges Werkzeug für die Erstellung und Bearbeitung von Karten. Nachdem eine Karte erstellt wurde und diese im TMX-Format gesichert wurde, soll die Karte in den meisten Fällen genutzt werden. Für die unterschiedlichen Systeme existieren eine Reihe von Bibliotheken zur Nutzung und Darstellung von TMX-Karten.

Ein Demo zur Darstellung einer TMX-Karte im Simulator

Unter iOS und für die Nutzung mittels Swift eignet sich die Bibliothek SKTiled, welche auf GitHub zu finden ist. Mit SKTiled können die unterschiedlichen Varianten von TMX-Dateien, wie isometrische oder rechteckige Maps angezeigt werden. Neben den normalen Tiles, werden auch animierte Tiles in der Anzeige unterstützt. Die Bibliothek funktioniert unter iOS, tvOS und macOS. Lizenziert ist die Bibliothek unter der MIT-Lizenz und damit freie Software.

Neue Tiled Version erschienen

Vor kurzem ist die neue Version des freien Mapeditors Tiled (wird unter anderem bei Invertika benutzt) erschienen. Die neuen Features sind dabei ziemlich reichhaltig:

  • Unterstützung von gespiegelten Tiles
  • Copy & Paste Support für Objekte
  • Support für das Verschmelzen von Ebenen
  • Lua Export Plugin
  • Droidcraft Plugin (von mir :))

Neben diesen Änderungen gibt es noch viele weitere Dinge welche verbessert wurden. So wurde zum Beispiel das Automapping verbessert vor allem bezüglich der dabei entstandenen Speicherbelastung. Auch die Übersetzungen wurden natürlich wieder aktualisiert. Tiled kann dabei unter http://www.mapeditor.org/ für die Systeme Linux, Windows und Mac OS X bezogen werden.

Tiled 0.6 erschienen

Heute ist die neue Version 0.6 von Tiled erschienen. Dabei handelt es sich um einen Open Source Mapeditor welcher auf Basis von Tilesets arbeitet. Dieser Mapeditor wird für viele Projekte benutzt wie z.B. Invertika.

Es sind in der neuen Version eine Menge Features hinzugekommen, wie z.B. das Öffnen von mehreren Karten in einer Instanz von Tiled. Ein sehr interessantes Feature ist das sogenannte Automapping. Dabei wird eine Regeldatei erstellt und mit dieser kann Tiled anhand eines vorgegebenen Umrisses Maps erstellen z.B. eine Höhle. Dies sollte eine Menge Arbeit sparen, da man sich nun auf die wichtigen Dinge konzentrieren kann.

Weitere Features sind die OpenGL beschleunigte Anzeige, sowie einige neue Werkzeuge. Bezogen werden kann der Editor unter http://www.mapeditor.org/.

Weitere Informationen gibt es unter:
http://wiki.themanaworld.org/index.php/User:Argul/automapping
http://sourceforge.net/apps/mediawiki/tiled/index.php?title=Main_Page

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.