Wie funktionieren eigentlich Tiles?
Geschrieben von ThiemoTile kommt aus dem Englischen und heißt „Kachel“. Die Idee, Spiele auf einem Kachelsystem aufzubauen (Tile-based Games), ist alt: Viele schicke Brettspiele basieren auf einem quadratischen oder sechseckigen Raster. „Die Siedler von Catan“ ist vielleicht das bekanteste davon.
Man könnte meinen, ein Raster wäre eine Einschränkung, und natürlich stimmt das auch. Aber andererseits hat ein Tilesystem viele Vorteile, auf dem Spieltisch und im Computer erst Recht: Vereinfacht ausgedrückt wird es möglich, mit vergleichsweise geringem Aufwand unendlich viele Spielwelten zu erzeugen. Man muss nichts weiter tun, als die vorhandenen Tiles neu anzuordnen.
Natürlich darf die Auswahl der zur Verfügung stehenden Tiles nicht zu klein sein, sonst wird es schnell langweilig. Aber darum soll es im Folgenden nicht gehen (dazu vielleicht in einem späteren Beitrag mehr). Ich möchte eine andere Frage stellen: Wie bekommt man es hin, dass der Spieler nicht die ganze Zeit über das Gefühl hat, in einem karierten Blatt Papier herumzulaufen?
Schritt 1: Wenn man anfängt, ein auf einem quadratischen Raster basierendes Spiel zu entwickeln, hat man vielleicht nur ein paar grundlegende Tiles zur Verfügung. Sie sind entweder vollständig mit einer kachelbaren Textur gefüllt oder vollständig leer.
Diese Welt ist bereits voll spielbar. Unser Held kann durch die Gänge hüpfen oder klettern, er stößt mit dem Kopf an die Decke, muss vielleicht durch niedrige Gänge kriechen und so weiter. Aber alles ist künstlich rechtwinklig, sowohl optisch als auch spielerisch, denn unser Held muss jede noch so kleine Stufe umständlich hinauf klettern.
Schritt 2: Kümmern wir uns also vorläufig nicht weiter um die Optik sondern um die Spielbarkeit. Wir wollen, dass unser Held nicht nur geradeaus laufen kann. Er soll kleine Stufen selbstständig erklimmen, ohne dabei wie ein Kaninchen durch die Gegend hüpfen zu müssen. Dazu gibt es im Groben zwei Lösungsmöglichkeiten: Entweder wir bringen ihm bei, an kleinen Stufen von nur einem Tile Höhe automatisch schräg nach oben zu laufen und nur an höheren Absätzen zu stoppen (Hurrican macht das so). Oder wir schaffen dafür spezielle Schrägen (Slopes), die wie die vollen Tiles auf der normalen Spielebene platziert werden, aber eine eigene, besondere Kollisionserkennung erhalten.
Jetzt wandert unser Held schon deutlich entspannter durch die Gegend. Aber es sieht immer noch furchtbar aus. Die im Bild weißen Schrägen passend anzumalen, würde nur bedingt helfen. Was dann immer noch stört, sind die vielen geraden Linien und rechten Winkel.
Schritt 3: Um die Höhle unregelmäßiger zu machen, brauchen wir unregelmäßige Tiles, die unsere geraden Linien „zerbrechen“. Auch hier gibt es wieder zwei Möglichkeiten: Man könnte die Tiles, auf denen unser Held entlang läuft, durch andere ersetzen, die auf der Oberseite unregelmäßig gestaltet sind. Dabei entsteht schnell das Problem, dass die Spielfigur über die kleinen Unregelmäßigkeiten hinweg „schwebt“, denn aus Geschwindigkeitsgründen findet unsere Kollisionsprüfung nicht mit einzelnen Pixeln sondern nach wie vor nur mit ganzen Tiles statt.
Die bessere Lösung sieht so aus, dass wir nicht mit Tiles arbeiten, die unsere problematischen quadratischen Tiles ersetzen, sondern sie lediglich ergänzen.
Diese Ergänzungs-Tiles setzen wir in eine eigene Ebene in den Vordergrund vor die eigentliche Spielebene. Die Bruchstücke wirken sich also nicht auf die Kollisionserkennung aus. Sie sind sozusagen durchlässig und unsere Spielfigur bewegt sich dahinter entlang. Das verdeckt vor allem an den Schrägen die Tatsache, dass sich die Füße unserer Spielfigur nicht an die Schräge anpassen, sie also nicht wirklich „am Hang steht“.
Zusammengesetzt sehen Mittel- und Vordergrund so aus:
Das sieht schon ganz anders aus. Aber es wirkt immer noch sehr, sehr flach und Retro. Dieses Retro-Gefühl setzen viele Spiele bewusst ein, zum Beispiel The Underside, aus dem auch das hier gezeigte Beispiel-Tileset stammt. Aber wir wollen mehr.
Schritt 4: Wo genau ist eigentlich das Problem? Wir haben zwar eine schöne Textur, aber sie wiederholt sich unendlich oft und unendlich gleich. Selbst tief im Erdboden ist es scheinbar genauso hell wie an der Oberfläche. Unser Held bewegt sich in einer Laubsägearbeit.
Wie erzeugt man Tiefe? Durch Helligkeit und Dunkelheit. Aus dem selben Grund ist der freie Hintergrund, in dem sich unser Held bewegen darf, entweder ganz schwarz oder deutlich dunkler als der Mittel- und Vordergrund. Den selben Trick wenden wir jetzt auf den Vordergrund an und geben jedem Tile eine individuelle Schattierung.
Da wir diese Schattierungen nur für ganze Tiles festlegen können, entsteht leider wieder ein Raster. Damit muss man entweder leben und einen guten Kompromiss aus Schattierung und flächiger Füllung finden, oder man interpoliert (das beste Beispiel dafür ist wieder Hurrican).
Für Glow würde uns für’s erste auch eine gerasterte Schattierung genügen. Auch die gibt es noch nicht, aber für Version 1.666 ist sie fest eingeplant.





09. August 2008 um 21:10
Tiles hat man früher hauptsächlich aus Speichermangel benutzt und weil man noch alles per Hand gepixelt hat. Heute kann man den ganzen Level (oder zumindest größere Level-Abschnitte) bequem in Photoshop individuell gestalten, als Riesen-Tiles sozusagen. Item- und Monster-Platzierung drüber und gut.
09. August 2008 um 22:58
Naja, nicht direkt. Man kann auch heute keine mehrere Bildschirme umfassenden Levels am Stück zeichnen, weil sich der Spieler beim Laden dieser Gigabyte-Grafiken dusselig warten würde. Man arbeitet eher mit einer Art „Tile-Objekten“, die nicht mehr in einem festen Raster angeordnet werden müssen sondern frei platziert, skalliert und gedreht werden können. Eets oder Braid sind gute Beispiele dafür.
10. August 2008 um 10:44
Kommt drauf an. Für eine „Retro-Auflösung“ dürfte das eher im zweistelligen Megabyte-Bereich liegen (ist hier natürlich nicht der Fall). Aber die Methode von Braid ist natürlich trotzdem flexibler und besser.
10. August 2008 um 15:16
ich bin beeindruckt.