Multiple layers Isometric map

Started by
5 comments, last by Son of Cain 18 years ago
Hi, I apologize for the nature of my question, but since my search in google and other resources wasn't fruitful, I'm going to ask the folks here: do you know of any papers dealing with rendering of isometric maps? I'm talking about isometric maps as in Tactics Ogre/Final Fantasy Tactics Advance games for GBA. I'm toying with OpenGL (JOGL binding, to be more precise), and I can already render an isometric map on screen, though I would like to know how to render different layers of tiles in the same map - for an example, when the players approaches a house's door, he opens up the house's contents for viewing. Thanks in advance for any help, Son Of Cain
a.k.a javabeats at yahoo.ca
Advertisement
if you want something like a house that swiches between inside and outside view you might want to try a modifyed pathfinding algorithm like A*
I just can suggest you this page :

http://www.gamedev.net/reference/articles/article727.asp

It covers basic aspects of multiple layered tiles.
I would set a bit for each tile that means show insides. Whne the player steps on of the tiles with this bit set, the renderer removes the top plane with the roofs. When the player moves off those marked tiles the roofs will come back. To get the roofs to disappear before the player enters the building, the areas around the doors and windows have to be marked as inside too. The bit can be placed into the same flags field or each tile as the walkable bit.

For more complex effects, you can use different bits for different purposes or use triggers for showing and hiding the roof layer, but this is prone to errors if the player manages to bypass the trigger by finding an alternate route on the map. Bitmaps can not be bypassed since they should be checked every time the player moves.

Viktor
Thanks guys for the answer!

I would need one more resource or tip... on how to apply height to isometric blocks. Have any reference material that I could use to learn the basics of height in isometric maps?

Thanks in advance!

Son Of Cain
a.k.a javabeats at yahoo.ca
Well, if it makes you feel any better, I'm working on the same thing and having similar hangups. I can render a tile map with each tile being various units in height (effectively what FFTA does), but I need to redesign the map engine to support multiple tiles per (x,y) coordinate - basically adding bridges and tunnels, but using some sort of transparency to fade the obscuring layer. I'm planning on implementing fairly complex terrain such as a deep cave with multiple layers. My engine will need to compete with this, not to mention buildings where roofs and walls obscure the interior.

The biggest enigma for me currently is using traditional up/down/left/right keyboard controls found in 2D games from roguelikes to console RPGs like Final Fantasy and Dragon Quest while still implementing full 360 degree rotation around the character. At many angles, the cardinal directions might be fairly ambiguous.
You're probably going to need layers (as you already know), drawn by a "priority" algorithm, apart from transparency itself; there are tiles you won't draw, even if present on screen, because a higher layer is above them in the player view. For those, you do a height check, and if there's anything above the current tile, you don't draw it.

For the rotation problem for cardinal directions, I can only think of adjusting the cardinal positions according to camera rotation; the function that rotates the view is the one responsible for incrementing the cardinal's new position. Also, you can use the FFT trick: preset angles, with preset cardinalities.

Son Of Cain
a.k.a javabeats at yahoo.ca

This topic is closed to new replies.

Advertisement