Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am in the process of coming up with an idea for a game, and I would like it to be isometric like Diablo. The problem is I have no idea how it achieves the effect of height like in the following screenshot (on the columns):

Whatever the case, I'm sure it is going to be harder to achieve then creating a traditional isometric game, but any ideas regarding the topic would be greatly appreciated.

share|improve this question
What 'effect of height' is in that screenshot? Could you freehand some circles in there? – Pubby Apr 16 '12 at 8:37
The arched walls - They appear to be going 'up'. – Darestium Apr 16 '12 at 8:47
up vote 1 down vote accepted

You can try a traditional height map, which vertical dimension has more than 1 level (Diablo I uses 2 levels iirc). The objects in first level count as obstacles for player's character (and in all other cases when physics is required), but the second one contains "transparent" objects, which are used only to emulate high wals etc.

share|improve this answer

One method is to split up the graphics so they have square bases, then sort depth based on their vertical position. Lower to the screen has a higher draw depth.

For multiple levels the higher levels have higher depth than any of the previous. You also translate them upward by I think (height-of-the-tile - (width-of-the-tile / 2)) pixels.

If you're generating the sprites with a 3d modeler, you can also save their depth values. Then just add their position offset to the depth values in your shader. The nice thing about this is that it's per-pixel instead of per-sprite.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.