after switching to a third person view I was intrigued to make my new project isometric. Since I haven't really started yet this isn't much of a problem. Work so far was merely testing movement and camera control. As I'm using panda3d I just need to update the camera to render in orthographic perspective.
I have to admit that I didn't intend to go for a "pure" isometric game. The standard implementation with sprite-based rendering requires a tiled map but with panda3d I thought I'd just do this:
- Create a normal, textured map.
- Add a vertical mesh for each vertical object in the game. This mesh serves as a canvas: A partially transparent texture is drawn on it.
- Add a horizontal mesh that works equally for horizontal objects.
When the player steps behind one of these canvas meshes it's faded out. This works great for smaller objects like trees or stones. But there's a problem with buildings:
Imagine a multi-floor building with each of its four walls being rendered on one of the omnipresent canvases. Upon entering the first floor the horizontal objects of all floors above the player as well as the front wall become transparent. Now the player climbs up the stairs to the second floor. That means that only a part of the outer wall has to be removed. The wall around the basement can remain visible. With my current solution I'd always saw off the entire front.
The first idea that came to my mind was to split the wall into different sections.
Question: Is there a "canonical" implementation of multi-floor buildings in isometric games ? How are vertical tiles implemented ?
What would you do ? Please answer the second question on behalf of panda3d's possibilities.