Lately I’ve been doodling some hand-drawn 2.5D tiles for Roguelike games. Here’s a page from my sketch book to give you an idea of the vector style I’m going for.
Roguelikes often contain rectangular rooms made of floor tiles enclosed on all sides by walls.
I was researching different ways to draw 2.5D wall tiles and I discovered something amazing. Check out these Tiny Galaxy tiles by Oryx:
Quite apart from the gorgeous pixel graphics, there is something else that jumped out at me in this tileset. It’s the minimum number of tiles required to draw rooms and corridors.
You might think the minimum number of viable wall tiles is four. One for each corner, one for the side rows, and one for the top rows. Then you start to think about what happens if two rooms are adjacent or overlapping and you have wall junctions with 3 walls meeting. There are several possible configurations of 2-wall and 3-wall corners. Then you have the 4-walls corner case to consider too.
Not only is this a lot of different tiles to draw, but the code becomes complex too. For every wall tile you have to consider which wall tiles are adjacent and in which direction, and select the correct variant. That’s a lot of
for loops and/or lookup tables.
However, you can get by with far fewer tiles than this. Take a closer look at the Oryx tileset. I’ve labelled the minimal distinct tile forms.
All of the ‘A’ tiles are the same form, and all of the ‘B’ tiles are the same form. That’s right, to make a fully enclosed room you only need 2 different tile variants.
The vertical side walls are drawn with (A) the “top of wall” tile which is basically a filled square. The top left and top right corner tiles are also the (A) tile. The horizontal top and bottom walls are both drawn with (B) the “side on” tile variant and the bottom left and bottom right corners are also drawn with the same (B) tile. So simple.
Of course you can embellish these two forms with interesting patterns, cracks, effects, and overlays as Oryx has done, but it’s fascinating how minimal this solution is for a nice 2.5D look.
A great side effect of this style is you can have rooms that overlap or run into eachother without any issue. The outer wall of one room works perfectly well as an inner wall of another room, as you can see in the image above with the internal rooms using the same wall tiles as the outer walls.
Fewer tiles to draw, fewer for loops, less complexity. A tremendously economical use of roguelike graphic tiles.
PS If you like the Oryx tiles you might also like my game Asterogue which uses them.