Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Whats the best way to implement and design walls in an isometric tile game?

Tags:

isometric

3d

The game I am thinking about where this solution would be applied, is a game where tiles can be changed, sort of an editor. You are going to need to make graphics for 2 types of walls: west facing and east facing or north/west.

There seems to be 2 approaches to having walls in an isometric tile game:

  • Draw them slightly outside the tile (The Sims 1, Theme Hospital, Jagged Alliance 2, Project Zomboid)
  • Make them 1x1(tile) large and have them be drawn on their own tile (Ultima 8, every rougelike)

Example drawing

The second method seems to be the easiest way to do it. Since the wall takes up the entire tile, you need not to worry about overlap into the floortile and having to design patterns around that. You do get another problem though if you want to make patterns in a different size than the grid. Like if you want to have rather slim walls. Your grid will then also need to be larger. On the plus side only 1 wall piece is needed.

The first aproach requires some code to detect the variation off wall to draw and might look a little odd unless the floor tiles are designed around it. It also requires at least 4 pieces.

Which method is the prefered way to go about this and why?

like image 245
user1035910 Avatar asked Jul 14 '12 08:07

user1035910


People also ask

What size should isometric tiles be?

Most common grid sizes for isometric art are: 32x16 and 64x32. There are more variations on the size, as long as it is 2x1. I've been drawing with 24x12, 36x18 and 48x24 for fun. Some artists even use 128x64 tiles for their art.


2 Answers

I would go with the second option, having the wall take up a tile of its own. This is easiest to implement and requires less work on the artist's part.

If you're worried about the ability to do thin walls, just ensure that your tile size is small enough. Your game's tiles don't need to follow the pattern that is drawn on the floor, e.g. a real-life floor tile could consist of 2x2 game tiles.

like image 155
Thomas Avatar answered Oct 20 '22 23:10

Thomas


i would recommend to start rendering with the farthest objects and finish with the closest - this way you can get a simple invariant: objects positioned nearer to the camera can cover farther placed objects (as in real life)

alternative: you could use slight differences in the 'Z' coordinate of the objects to let the depthbuffer do the trick -- if you use depthbuffer, the rendering order is irrelevant, but it is desirable to start with the nearest - this way the rendered texelcount can be lower

like image 1
Zoltán Haindrich Avatar answered Oct 20 '22 22:10

Zoltán Haindrich