🔒 Locked
why isometric?
Advertisement
Original Post
Hi My upcoming urban rts will include streets, guys and buildings. What is the benefit of using isometric over good-ol rectangular tiles? The units are right about the same right? 8 directions to walk etc. I recon the biggest change will be buildings, who should look better in isometric. But when reading up on the subject it seems there so much hassle with isometric programming and graphic design (at least compared to the super-simple cubic rectangle system). Is it worth it and will i eventually get the hang of it? Is there any use in looking into a compromise, having "straight but tilted squares", that is using cubic tiles for example 20widht and 10height, making the "camera "look more tilted then for example good old warcraft1. Sorry for being so questioning. The projects core design has to be desided before progressing. Thanks Erik aka Suliman
The benefits of isometric are largely aesthetic, though in some situations it can provide more/better information to the player about their spatial movements.
For example, one can go with a direct top-down perspective, ala GTA 1 & 2. This eases creation of art assets and provides the advantage of radial symmetry in the 2D plane of the screen, which translates to cheap/free sprite rotation (instead of having different sprites) to represent orientation. The drawback of a perspective like this is that you lose nearly all information related to the vertical/height (from your world's perspective), only being able to indicate that information with some scale or drop shadows.
Of course, for some gameplay that is a-okay. For example, driving on streets: most driving doesn't require good vertical information as it's essentially 2D navigation (i.e. street maps). That's why GTA went for it. Another fine example is most shmups.
A slight variation on this is what I would refer to as an "isometric top-down" (though that's completely a mis-use of the term isometric from some people's perspective). This would best be represented by something like the 2D Zeldas (specifically, a Link to the Past). This is the "classic" top-down perspective used in many, many NES/SNES-era action/adventure games. It has an incredible number of advantages (hence it's widespread use): there's enough angle for aesthetic variety and depth, characters can show tops/sides/fronts, it's still strictly grid-based with no isometric maths/edge cases.
The more "3D" isometric view, the "traditional isometric" view, is basically the same thing but with a 45' twist on the vertical. This gives everything a 3D-look since you're no longer looking at profiles or straight-ons, but rather three-quarter views prevail. The main advantage here is aesthetic, primarily in relationship to your larger set pieces (buildings, paths) as the "single tile" character sprites are often incredibly similar between the two isometric views I described.
The drawbacks of both isometric views is the same drawback you have in any pseudo- or true 3D world: camera occlusion. With the isometric view, you're juggling 3 planes of information (X, Y, Z) and trying to squeeze it into 2 planes (X, Y). Inevitably, you'll have to occlude something in the background with something in the foreground (unless, of course, you're art assets take the route of Starcraft/Warcraft where scale is essentially not observed). It's the classic problem of what do you do when the player (or another unit) moves behind a building? Do you show them silhouetted, make the building transparent, just draw a bounding box to show where they are, or what?
I'd have to say I'm a die-hard fan of classic isometric perspective (ala Diablo), but you're right that it does require "better" art skills to make it work (because you essentially have to be an artist who draws in perspective -- or 3D modeller). For my own stuff, lately I've been leaning toward the classic top-down "isometric" like the Zelda games as the art tends to be more "2D" in style even if it represents "3D" objects. In other words, it's far more likely that I can fake a decent straight-on view of a character than a three-quarter view of a character (though with 8 directions you still have to do some angled renders!).
For example, one can go with a direct top-down perspective, ala GTA 1 & 2. This eases creation of art assets and provides the advantage of radial symmetry in the 2D plane of the screen, which translates to cheap/free sprite rotation (instead of having different sprites) to represent orientation. The drawback of a perspective like this is that you lose nearly all information related to the vertical/height (from your world's perspective), only being able to indicate that information with some scale or drop shadows.
Of course, for some gameplay that is a-okay. For example, driving on streets: most driving doesn't require good vertical information as it's essentially 2D navigation (i.e. street maps). That's why GTA went for it. Another fine example is most shmups.
A slight variation on this is what I would refer to as an "isometric top-down" (though that's completely a mis-use of the term isometric from some people's perspective). This would best be represented by something like the 2D Zeldas (specifically, a Link to the Past). This is the "classic" top-down perspective used in many, many NES/SNES-era action/adventure games. It has an incredible number of advantages (hence it's widespread use): there's enough angle for aesthetic variety and depth, characters can show tops/sides/fronts, it's still strictly grid-based with no isometric maths/edge cases.
The more "3D" isometric view, the "traditional isometric" view, is basically the same thing but with a 45' twist on the vertical. This gives everything a 3D-look since you're no longer looking at profiles or straight-ons, but rather three-quarter views prevail. The main advantage here is aesthetic, primarily in relationship to your larger set pieces (buildings, paths) as the "single tile" character sprites are often incredibly similar between the two isometric views I described.
The drawbacks of both isometric views is the same drawback you have in any pseudo- or true 3D world: camera occlusion. With the isometric view, you're juggling 3 planes of information (X, Y, Z) and trying to squeeze it into 2 planes (X, Y). Inevitably, you'll have to occlude something in the background with something in the foreground (unless, of course, you're art assets take the route of Starcraft/Warcraft where scale is essentially not observed). It's the classic problem of what do you do when the player (or another unit) moves behind a building? Do you show them silhouetted, make the building transparent, just draw a bounding box to show where they are, or what?
I'd have to say I'm a die-hard fan of classic isometric perspective (ala Diablo), but you're right that it does require "better" art skills to make it work (because you essentially have to be an artist who draws in perspective -- or 3D modeller). For my own stuff, lately I've been leaning toward the classic top-down "isometric" like the Zelda games as the art tends to be more "2D" in style even if it represents "3D" objects. In other words, it's far more likely that I can fake a decent straight-on view of a character than a three-quarter view of a character (though with 8 directions you still have to do some angled renders!).
thanks man, a nice summary that was.
i will render all my crap from 3dstudio and not draw them by hand so thats my first thing.
Are the major things with isometric over flat 2d this:
1: It has the possiblility to look better, given that stuff (for example buildings) may show more of themselfes (a courner closest to the "camera and two sides, top and sometimes parts of the last two sides depending on angle.
2: It is messier to handle:
a:basics (mouseCalc, position over right tile when drawing map etc)
b:more overlapping (stuff gets behind walls/structures)
c:distances are not radial
Is that it? (simplified i know) Have i missed anything big in terms of messiness?
Its recommended to tilt the world right? Any isometrical vets have any suggestions on the percentage? Twice the width as height? If this ratio is big, the four "diagonal" facing-directions will be closer to straight left/straight right, will it not?
I mean in top-down the 8 directions of units are 0,45,90 etc (degreees. All directions have the same relationshipp/same distance to eachother)). But in isometric the directions is something like 0,60,90,120, 180 etc. This leaves bigger gaps between directions when rotating a unit (for example when facing an opponent for shooting). Should one use 8 directions for moving and maybe 12 directions for shooting to better simulate that a guy can face/turn any way depending on where his target is? That way the 4 new directions can fill the gaps.
Thanks
Erik
[Edited by - suliman on August 24, 2006 3:22:55 PM]
i will render all my crap from 3dstudio and not draw them by hand so thats my first thing.
Are the major things with isometric over flat 2d this:
1: It has the possiblility to look better, given that stuff (for example buildings) may show more of themselfes (a courner closest to the "camera and two sides, top and sometimes parts of the last two sides depending on angle.
2: It is messier to handle:
a:basics (mouseCalc, position over right tile when drawing map etc)
b:more overlapping (stuff gets behind walls/structures)
c:distances are not radial
Is that it? (simplified i know) Have i missed anything big in terms of messiness?
Its recommended to tilt the world right? Any isometrical vets have any suggestions on the percentage? Twice the width as height? If this ratio is big, the four "diagonal" facing-directions will be closer to straight left/straight right, will it not?
I mean in top-down the 8 directions of units are 0,45,90 etc (degreees. All directions have the same relationshipp/same distance to eachother)). But in isometric the directions is something like 0,60,90,120, 180 etc. This leaves bigger gaps between directions when rotating a unit (for example when facing an opponent for shooting). Should one use 8 directions for moving and maybe 12 directions for shooting to better simulate that a guy can face/turn any way depending on where his target is? That way the 4 new directions can fill the gaps.
Thanks
Erik
[Edited by - suliman on August 24, 2006 3:22:55 PM]
Quote:
It has the possiblility to look better...
That's generally the opinion, and definitely the reason it was first introduced. It looks more "3D" because you're not looking at the profile of the objects.
Quote:
It is messier to handle: basics (mouseCalc, position over right tile when drawing map etc)
True. Though it's not as bad as people make it out to be. It's just not obvious like non-isometric 2D. But of course, it's just a few additional adds and multiplies, so it's nothing ridiculous.
Quote:
...more overlapping...
Yep, but this is mostly fixed by simple draw order (with a few minor exceptions depending on the types of effects you're trying to achieve).
Quote:
...distances are not radial...
Not sure what you mean by this. There's no perspective, the projection is parallel, so distances are still linear in screen space, just like non-isometric 2D.
And that's the kicker that people have to grok to really master isometric stuff: it's no different than vanilla 2D tile-based stuff except for sorting. That's the only real difference. Everything else is conceptual.
Quote:
Its recommended to tilt the world right?
Yes, definitely, otherwise you're not really getting anything beyond plain 2D (because there's no perspective). If you assume that XZ is your ground plane, and Y is your vertical (height), then you rotate around the x-axis 22.256' (arctan(0.5)) and rotate around the y-axis 45'. That'll give you the traditional pixel-perfect isometric view (assuming square pixels) with a ration of 2:1. In other words, your grid lines will go 2 pixels horizontally for every 1 pixel vertically (in screen space, after rotation).
Traditional isometric angles for non-computer stuff (architectural drafting, for example) would have you do a 45' rotation on both axes, i.e. isometric means "equal measure" and that rotation gives you sides of equal length. For more visual variety, you can do what SimCity does and actually make all 3 axes different angles (and thus different lengths) which helps the user's eye discern the depth without any tricky optical illusions. There's a good Wikipedia article on this (search for isometric).
As far as angles go, it's the same as non-isometric 2D: you can move in 4 direction along the grid (0, 90, 180, 270 relative to the game world, or 45, 135, 225, 315 relative to the screen/camera), or you can bump it up to 8 and include the "diagonals" (0, 45, 90, 135, 180, 225, 270, 315). I believe Starcraft and Diablo (fine examples of isometric art) do 8 angles each, and I've seen some folks do 16, but that starts to consume alot of memory if you have too many variations on your assets.
thanks.
i mean with direction to move i will use 8 directions. But as these are not equally positioned around the 360degrees like they are in topdown (45degrees for each) wouldnt i find some angles, for example when the guy shoots at 30degrees (0 being straight up). In this case i have to use the north or northeast direction, but north is 0degrees and northeast is pretty close to 90degrees. In classic topdown there is never more then 45degrees between two angles.
In this case i could use 12 degrees for the shooting (it might not even need to be animated) and the traditional 8 for moving. This would make it look better when it seems like my guys should face certain angles. Is this never used in isometric? Wouldnt it be useful or am i out of line here?
Erik
i mean with direction to move i will use 8 directions. But as these are not equally positioned around the 360degrees like they are in topdown (45degrees for each) wouldnt i find some angles, for example when the guy shoots at 30degrees (0 being straight up). In this case i have to use the north or northeast direction, but north is 0degrees and northeast is pretty close to 90degrees. In classic topdown there is never more then 45degrees between two angles.
In this case i could use 12 degrees for the shooting (it might not even need to be animated) and the traditional 8 for moving. This would make it look better when it seems like my guys should face certain angles. Is this never used in isometric? Wouldnt it be useful or am i out of line here?
Erik
Ahh... I wrote a long reply about relative screen spaces and world spaces, etc., arguing that the transformation from non-isometric to isometric was angle preserving, yadda yadda yadda... then draw a picture, and realized what I was thinking in my head was true isometric and not the traditional "diamond" isometric most used in pixel-based art (the 2:1 line slopes for the grid).
So, yes, you're absolutely right that in the "2:1 diamond" isometric view, the facing angles (for 8 directions) in screen space (after projection) are: 0, 63.4, 90, 116.6, 180, 243.6, 270, and 296.6. If you use a "1:1 diamond" isometric view (like Ultima Online, I believe), then you have the traditional 0, 45, 90, 135, 180, 225, 270, and 315 as your facing angles.
Of course, these are the angles that appear to the user, in screen space. The angles in game (because most isometric games are on a square grid) are the standard compass points (0, 45, 90, 135, ...). In other words, in regards to game logic, isometric is no different to non-isometric. That's the fun of it. It's purely an aesthetic.
And, since isometric is purely aesthetic, how you deal with your guy and his looks when he shoots is also an aesthetic choice. If your guy is shooting from one grid square to the one that is southeast of him (in screen space), it's equivalent to him shooting to the east or the south in game space (depending on whether the northeast or northwest edge of your diamon -- in screen space -- translates to north in game space).
Is that making sense? I'm not quite sure as I was a bit lost in figuring out exactly what detail you were asking about in your most recent question. If you could provide a diagram of your question (even a quick mock-up in MS Paint) we can probably iron out any misunderstandings.
So, yes, you're absolutely right that in the "2:1 diamond" isometric view, the facing angles (for 8 directions) in screen space (after projection) are: 0, 63.4, 90, 116.6, 180, 243.6, 270, and 296.6. If you use a "1:1 diamond" isometric view (like Ultima Online, I believe), then you have the traditional 0, 45, 90, 135, 180, 225, 270, and 315 as your facing angles.
Of course, these are the angles that appear to the user, in screen space. The angles in game (because most isometric games are on a square grid) are the standard compass points (0, 45, 90, 135, ...). In other words, in regards to game logic, isometric is no different to non-isometric. That's the fun of it. It's purely an aesthetic.
And, since isometric is purely aesthetic, how you deal with your guy and his looks when he shoots is also an aesthetic choice. If your guy is shooting from one grid square to the one that is southeast of him (in screen space), it's equivalent to him shooting to the east or the south in game space (depending on whether the northeast or northwest edge of your diamon -- in screen space -- translates to north in game space).
Is that making sense? I'm not quite sure as I was a bit lost in figuring out exactly what detail you were asking about in your most recent question. If you could provide a diagram of your question (even a quick mock-up in MS Paint) we can probably iron out any misunderstandings.
You can also take a game like lineage, its a isometric mmorpg, and it was when it begun and still is, in some way, one of the best mmorpg's ive ever played.
I do belive, that the reason for that is, even tho the game isnt as pretty as a 3D game, the gameplay,easy movement, and oversigt for me, makes it "special", and gives it a more enjoyable game style.
In iso you just point and click, while in 3d you have more, like x,y,z, rotating angle, zoom and all that junk...
Im a great fan of isometric, but i hate the tile part of mapping, so, im trying to make in my game project, a 3d isometric view (45 degree angle) with a solid cam, (eg. no zoom, rotating ofc.)
So... well anyways, my dime on the topic..
I do belive, that the reason for that is, even tho the game isnt as pretty as a 3D game, the gameplay,easy movement, and oversigt for me, makes it "special", and gives it a more enjoyable game style.
In iso you just point and click, while in 3d you have more, like x,y,z, rotating angle, zoom and all that junk...
Im a great fan of isometric, but i hate the tile part of mapping, so, im trying to make in my game project, a 3d isometric view (45 degree angle) with a solid cam, (eg. no zoom, rotating ofc.)
So... well anyways, my dime on the topic..
about this issue and pathfinding:
in a diagonal isometric world, tiles are lined in the same way as in a topdown square-based world, making the port of for example astar very easy. But in a straight isometric world they are not lined up at all, every second tile is moved a step. The simple move 1,1 to 1,2 is no longer always distance1 and move 1,1 to 2,2 is no longer always aprox 1.4.
Isnt that a problem?
in a diagonal isometric world, tiles are lined in the same way as in a topdown square-based world, making the port of for example astar very easy. But in a straight isometric world they are not lined up at all, every second tile is moved a step. The simple move 1,1 to 1,2 is no longer always distance1 and move 1,1 to 2,2 is no longer always aprox 1.4.
Isnt that a problem?
no i mean astar (at least my version) think the world-tiles are lined up next to eachother but if places in the zigzag order according to the tutorial on this site, i dont understand how that can work...
Im still curious on how to do mouse/positioning on a diagonal isometric map.
Thanks for all the help on this topic.
E
Im still curious on how to do mouse/positioning on a diagonal isometric map.
Thanks for all the help on this topic.
E
Quote:
Original post by suliman
no i mean astar (at least my version) think the world-tiles are lined up next to eachother but if places in the zigzag order according to the tutorial on this site, i dont understand how that can work...
Remember that the data for an isometric diamond or hex world is no different than a rectangular world, and A* works great for that.
In both, you prevent zig-zagging by slightly increasing the cost of diagonal moves. It doesn't have to be 1.4, it can be 1.01 for all that the algorithm cares. If your isometric tiles include a concept of height, you can alter the weights for that, too.
Quote:
Im still curious on how to do mouse/positioning on a diagonal isometric map.
See the Isometric & Tile articles, especially Isometric 'n' Hexagonal Maps Part I and Part II.
frob you misunderstand me.
the zigzagging i talk of is how a SQUARE isometric map lines up the indexed tiles. from the tutorial you mension this is the index of a line of tiles
0,0
0,1
1,2
1,3
2,4
2,5
where in a DIAGONAL isometric indexation it would be
0,0
0,1
0,2
0,3
0,4
0,5
Also the turotial you speak of demonstrates how to do this in a SQUARE way and im talking about the DIAGONAL way (like in transport tycoon, age of empires).
Why i keep buggin you for the diagonal way is for astar and aligning stuff next to the world-edge.
I mean in a "square isometric" world if i guy is at 0,0 and wanna go to 5,0 i cant just add to his posX right? It seems much more complicated then a diagonal allignment of tiles...
the zigzagging i talk of is how a SQUARE isometric map lines up the indexed tiles. from the tutorial you mension this is the index of a line of tiles
0,0
0,1
1,2
1,3
2,4
2,5
where in a DIAGONAL isometric indexation it would be
0,0
0,1
0,2
0,3
0,4
0,5
Also the turotial you speak of demonstrates how to do this in a SQUARE way and im talking about the DIAGONAL way (like in transport tycoon, age of empires).
Why i keep buggin you for the diagonal way is for astar and aligning stuff next to the world-edge.
I mean in a "square isometric" world if i guy is at 0,0 and wanna go to 5,0 i cant just add to his posX right? It seems much more complicated then a diagonal allignment of tiles...
I think there's a lot of confusion trying to discuss this without any serious visual aids. So, I mocked up some quick stuff in Visio... I should probably create a lot more of these, and along with the various explanations I and others have made, create a definitive isometric resource... one day! ;)
Anyway...
Here's a representation of the isometric transform process. You can see here we have both 1:1 "square diamonds" isometric, like what is used in Ultima Online, and we have the traditional 2:1 diamond isometric, which is used basically everywhere else:

And, as we can see, anything you do on an isometric grid can absolutely be done equivalently in a "regular" grid. In other words, the two are the same (isometric is just a "view" difference, not a "model" difference, as I mentioned in an earlier post):

Using those images as a basis (and using the names in those images), can you re-ask your question regarding pathing, suliman? (Unless, of course, these images clear them up, in which case, whoopee!)
Anyway...
Here's a representation of the isometric transform process. You can see here we have both 1:1 "square diamonds" isometric, like what is used in Ultima Online, and we have the traditional 2:1 diamond isometric, which is used basically everywhere else:

And, as we can see, anything you do on an isometric grid can absolutely be done equivalently in a "regular" grid. In other words, the two are the same (isometric is just a "view" difference, not a "model" difference, as I mentioned in an earlier post):

Using those images as a basis (and using the names in those images), can you re-ask your question regarding pathing, suliman? (Unless, of course, these images clear them up, in which case, whoopee!)
thanks simagery that was really helpful!
Yes in a iso-diamond world i understand everything about pathfinding (but not how to find mousePos/position the tiles on screen, theres a guide to do it in a square on the page mensioned below but not in a diamond)
In a square representation of isometric (as described in the tutorials here)
http://www.gamedev.net/reference/articles/article747.asp
the world is not rotated into a diamond but forced into a square-kinda grid. It is in this world things get scewy for me when it comes to moving and pathfinding.
But really the diamond version seems easier for me and better for alligning the borders so thats what im gonna go fo i think (diamond shape map).
Yes in a iso-diamond world i understand everything about pathfinding (but not how to find mousePos/position the tiles on screen, theres a guide to do it in a square on the page mensioned below but not in a diamond)
In a square representation of isometric (as described in the tutorials here)
http://www.gamedev.net/reference/articles/article747.asp
the world is not rotated into a diamond but forced into a square-kinda grid. It is in this world things get scewy for me when it comes to moving and pathfinding.
But really the diamond version seems easier for me and better for alligning the borders so thats what im gonna go fo i think (diamond shape map).
Quote:
Original post by suliman
the world is not rotated into a diamond but forced into a square-kinda grid.
Care to explain that a little more?
I was still working off your statement "cubic tiles for example 20widht and 10height" which is just a regular grid rendered at a 2:1 ratio. In a 2:1 world, diamond or square, the only thing that changes is how you display the map. The objects continue to exist on the same regular grid world.
From the mentioned tutorial:
"We can still put Iso and Hex maps into a 2d Array, but the WAY in which we map them is different."
And then a picture (i dont know how to insert pics here) showing off the indexation.
The difference is:
In a diamond world everything is just like a common non-iso topdown. One dimention is xIndex and the other is yIndex. In the square isometric map described in the tutorial the index is not like this at all. If you follow a line (go from tile to tile in a "straight direction" which in isometric will be for example southeast) it will not simply add to the Y index. But in a diamond world it would be that easy (my conclussion a diamond world is just like topdown, a non-diamond isometric is rather strange).
Non-Diamond line of tiles
0,0
0,1
1,2
1,3
2,4
2,5
diamond line of tiles
0,0
0,1
0,2
0,3
0,4
0,5
You see my problem? Or have i misunderstood everything?
[Edited by - suliman on August 31, 2006 2:54:39 PM]
"We can still put Iso and Hex maps into a 2d Array, but the WAY in which we map them is different."
And then a picture (i dont know how to insert pics here) showing off the indexation.
The difference is:
In a diamond world everything is just like a common non-iso topdown. One dimention is xIndex and the other is yIndex. In the square isometric map described in the tutorial the index is not like this at all. If you follow a line (go from tile to tile in a "straight direction" which in isometric will be for example southeast) it will not simply add to the Y index. But in a diamond world it would be that easy (my conclussion a diamond world is just like topdown, a non-diamond isometric is rather strange).
Non-Diamond line of tiles
0,0
0,1
1,2
1,3
2,4
2,5
diamond line of tiles
0,0
0,1
0,2
0,3
0,4
0,5
You see my problem? Or have i misunderstood everything?
[Edited by - suliman on August 31, 2006 2:54:39 PM]
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement