Tilesets packen

Mit Tilesets ist immer ein Problem: Im Editor will man sie gut geordnet und nimmt auch gerne mal ein paar doppelte Tiles oder leere Flächen in Kauf. Wenn man jetzt aber eine Karte fertig hat, hätte man lieber eine möglichst kleine Texture. So hat meine „Arbeitstexture“ über 5.100 Tiles, aber nur ca. 3.000 unterschiedliche. Hier kommt mein Programm ins Spiel:

Das Programm liest eine Texture ein und schneitet sie in 32×32 Pixel große Teile. Für jeden Teil wird ein Hash gebildet, dadurch können identische (oder fast identische) Teile verworfen werden. Diese Teile werden wieder zusammengesetzt und es wird eine Datei ausgegeben, die die Zuordnung der alten und neuen ID´s enthält. Mit dieser Datei kann das Programm das eine Datei behandeln und die ID´s austauschen.

So kann man mit der großen Texture arbeiten, aber die kleine im Spiel verwenden. Dazu wird die Texure noch möglichst quadratisch gemacht, um die Seiten möglichst kurz zu halten. (Für das  Windows Phone dürfen es nicht mehr als 2048px sein).

Da es eine ziemliche Arbeit ist, so ein Programm zu schreiben, gibt es meine Version unter GPL hier als Download. An dieser Stelle auch noch mal vielen Dank an „theUser“ aus dem xna.mag, ohne ihn hätte ich das Programm niemals in dieser Form schreiben können. (Meine Version hat über 15min gebraucht, jetzt sind es noch 7sek).

Wer das Programm verwenden will muss es vermutlich noch etwas anpassen, aber ich hoffe ich kann dem einen oder anderen damit etwas Arbeit ersparen. Es ist bestimmt auch keine schlechte Idee, das als ContentProcessor zu verwenden, wenn man denn mit XNA arbeitet.

Und hier gibst nun endlich den Download:

tKoD Tileset Packer

Wer sich mehr für die Implementierung interessiert: Habt Geduld, ich werde auch noch einen Post über ein paar „Highlights“ schreiben.

Ein Gedanke zu „Tilesets packen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert