Before the mainstream advancement to 3D games it was not uncommon to find games featuring the isometric perspective (a type of axonometric projection). Objects will appear the same size regardless of how far away they are, but it gives a perception of depth despite being 2-dimensional. Some refer to isometry as 2.5-dimension or pseudo-3D for this reason.
While the isometric perspective provides for an interesting art style and gameplay, it presents us with a few challenges. This came up when I was working on a video game that had no 3d backbone. In this particular world, players are able to explore a multitude of heights in an isometric environment.
Isometric Drawing Order
Drawing order of tiles and entities becomes important when working with isometry. When done incorrectly tiles or entities will be clipped by others. To ensure that they overlap correctly the game objects need to be drawn top-down. This is to say that rows of tiles in the back of the map (farthest from you) should be drawn before the tiles closer to you. (This TIGSource forum thread discusses some further potential clipping problems with isometric draw order.)

Isometry and Players
With isometric games that employ multiple layers, identifying the different layers may prove difficult for players. This situation worsens when tiles of different layers match up visually where a tile could belong to any two layers. The player may become frustrated that a path is unreachable even though it looks reachable. In the example below, how can the player tell what level their character is standing? Can the character move down or will it collide with a tile?

A solution would be to brighten the tiles of each layer. Consequently, this simulates a lighting effect. In the example above, you should notice a subtle increase color variance between the layers. Our character is standing on a tile which is slightly darker than the tiles in front of it. (This effect is very subtle.)
We can also outline the edges of tiles that have no neighbors in that direction. This proves to be a much more powerful solution. In the code used for the above example, we set it up so that each isometric tile knows its immediate neighboring tiles in every direction. With something like this already in place, it should be relatively cheap to determine which edges need outlining so that the edge is more obvious. Note that edges facing us do not really need outlining since these edges and their sides are already facing us.

Tile outlining can look awkward when we introduce ramp tiles. Ramps are essentially distorted rectangles where two nodes join with the bottom layer and the other two join with the layer the ramp leads to.

The problem lies with the distortion of the ramp. Ramps facing the player appear vertically elongated, and ramps facing away from the player are vertically squished. An outline x pixels thick will appear thicker for ramps facing the player and thinner for those that are not.

What happens if a character is completely covered by the map? Some games overcome this by showing an outline of the character sprite in such situations. Of course, in many cases outlining is more involved than taking the difference the character sprite silhouette and a larger one. For complex shapes, the technique described will not generate a uniform outline thickness. Alternatively the character sprite could be inverted to indicate the same thing.
This second solution does not sound like much of a solution: We could chose to ignore this problem completely. Level designs should reflect this decision so that this situation is impossible to create. Even if players could see their own characters, should we really burden players to interact with parts of the level environment they cannot see?