Reputation: 125
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:
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?
Upvotes: 11
Views: 2977
Reputation: 182000
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.
Upvotes: 1
Reputation: 1808
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
Upvotes: 1