Archived

This topic is now archived and is closed to further replies.

turtle1776

Isometrics: Why Diamonds?

Recommended Posts

I know that there are others out there who have played with isometrics, so maybe one of you can answer some questions that I have that I wasn''t able to find answers to on the net. My question is this: Why is it necessary to use diamond shaped tiles when using an isometric view? All of the articles out there on the net start with the diamond shape, explain why it is more complicated to deal with than a simple square, but then don''t explain why the diamond is necessary. It seems to me that anything that could be represented using a diamond shaped tile, and then displayed on a rectangular computer screen, could also be represented with a square/rectangular tile and then displayed on that same rectangular computer screen. Given this, why burden yourself with a diamond shaped tile, which has *lots* of drawbacks including: * the need to use a masked or transparent image (slower) because the individual tiles overlap each other. * the need for strange map coordinate systems since the tiles aren''t lined up in nice rows and columns, but are instead staggered/offset from one row to the next. This makes things like simple movement and pathfinding (my last major project) problematic. Given these cons, what are the pros of the diamond shaped tile?

Share this post


Link to post
Share on other sites
quote:
Original post by turtle1776
I know that there are others out there who have played with isometrics, so maybe one of you can answer some questions that I have that I wasn''t able to find answers to on the net.

My question is this: Why is it necessary to use diamond shaped tiles when using an isometric view? All of the articles out there on the net start with the diamond shape, explain why it is more complicated to deal with than a simple square, but then don''t explain why the diamond is necessary.

It seems to me that anything that could be represented using a diamond shaped tile, and then displayed on a rectangular computer screen, could also be represented with a square/rectangular tile and then displayed on that same rectangular computer screen.

Given this, why burden yourself with a diamond shaped tile, which has *lots* of drawbacks including:

* the need to use a masked or transparent image (slower) because the individual tiles overlap each other.

* the need for strange map coordinate systems since the tiles aren''t lined up in nice rows and columns, but are instead staggered/offset from one row to the next. This makes things like simple movement and pathfinding (my last major project) problematic.

Given these cons, what are the pros of the diamond shaped tile?



I think a major plus is that it looks cleaner and lets you represent more things on the screen at once. Also, it gives it a more 3d appearance, without as much math.

Not to mention, it gives people more things to write articles on gamedev.net.

=)

Share this post


Link to post
Share on other sites
If you used square shaped tiles, I doubt it would look very 3D''ish. The point of Isometric games are to use 2D graphics, but make it look like a 3D view. So, diamond shape tiles make it look like the tiles are going off into the distance, as apposed to off the top of the screen.

There is an article here Axonometric Projections - A Technical Overview. This might explain the answer more clearly.

---
Make it work.
Make it fast.

"Commmmpuuuuterrrr.." --Scotty Star Trek IV:The Voyage Home

Share this post


Link to post
Share on other sites
Couldn''t you have exactly the same appearance (same 3d look, same # things on the screen) with square tiles? Imagine whatever gets drawn on the screen using diamond tiles. Now imagine slicing that up into squares instead of diamonds.

Exact same picture, just cut up differently. And squares are easier to deal with for the reasons I mentioned above.

Share this post


Link to post
Share on other sites
It is not just a matter of slicing images. It''s a matter of creating a set of tiles that, when combined, will give a 3Dish appearance.

If you think about complete pictures, you don''t even need tiles.

Share this post


Link to post
Share on other sites
I only used the complete picture/sliced up reference to demonstrate that it is possible to render the exact same picture using square shaped tiles as diamond shaped tiles.

That said, given that you could create any image (isometric or not) with a set of square tiles, is there something about the isometric view that makes a square tile set showing isometric objects unworkable?

Perhaps you need more square tiles to show the same thing, for instance?

(By the way, thanks CaptainJester. I did read that article you posted. It seemed to explain why isometric images are drawn the way they are, but didn't answer why you couldn't draw these same images on a square tile, instead of a diamond one.)


[edited by - turtle1776 on April 30, 2002 4:58:00 PM]

Share this post


Link to post
Share on other sites
I''m sure I''ve seen games that do just this. You can''t tell that they do this until you start to use the editor, though. I may very well be wrong, but I think StarCraft did this.

Another tile approach which may be more compatoible with your thinking is the one used by Total Annihilation: many large arbitrary-sized rectangular tiles are combined to make a map. These tiles are themselves split up into smaller uniform tiles, with which the game operates. This is another technique you may want to look into.

Share this post


Link to post
Share on other sites
''* the need to use a masked or transparent image (slower) because the individual tiles overlap each other.''

ermm...since when does transparency become a resource-hog?

''* the need for strange map coordinate systems since the tiles aren''t lined up in nice rows and columns, but are instead staggered/offset from one row to the next. This makes things like simple movement and pathfinding (my last major project) problematic.''

Once you understand how to move between the tiles, it''s pretty
damned easy.

You have to think how it would look top-down, then rotate the
screen to an isometric view. Square tiles are then translated to
2d as diamond tiles.

-Hyatus
"da da da"

Share this post


Link to post
Share on other sites
TerranFury, you are right in that StarCraft does use 32x32 square tiles. As does Diablo II. The artists at Blizzard are extremely good at making square tiles look isometric.

turtle1776, your arguments are most likely correct. It is probably one of the reasons Blizzard used that approach for StarCraft and Diablo II.

One reason for diamond-shaped tiles is tile transitions. With diamond-shaped tiles, one tile can be placed next to another and still look right with no transition tiles required. For example, you can place a sealed road in the city, a town or the country with the same sealed road tiles. If you use square tiles, then you would need the transition tiles for sealed road to sidewalk, sealed road to grass and sealed road to dirt for all sealed road edge tiles.

Steve ''Sly'' Williams  Monkey Wrangler  Krome Studios
turbo game development with Borland compilers

Share this post


Link to post
Share on other sites
I agree with turtle1776, the isometric view done with diamonds (or hex) isn''t really much of an advantage nowadays. I think that method is just a common technique programmers used to make a 3D looking game without using 3D methods in the past. The new method to do the same things (ie. Starcraft) uses a simple box grid and have the art look isometric; therefore, achieving the same goal with a much simpler method. There''s not as much overhead in calculation of how to place each grid (even though it''s not a whole lot, it is some).

However, this is the biggest pro about programming with diamond grids among new to intermediate programmers - you learn. In fact, you learn a lot more as a programmer if you are able to create at least a grid system (or better yet, a entire game) with the diamond grid method. You learn to use masks to figure out which grid the cursor is pointing to; practice with dealing with transparencies; and, don''t you feel just warm and fuzzy when you figure out how to place each tile in an alternate pattern, then found a way for items (or characters) to move along this grid? Now that''s good programming practice.

Share this post


Link to post
Share on other sites
I see where you are coming from but here is a good example I''ve thought of. Imagine that your trying to draw a wall, to make the wall look 3D you would have to draw it at a diagonal. Using square or rectangular tiles would leave a large potion of the tile sticking out perpendicular to the wall. Fair enough I here you say but what happens when you put in a character, to make sure that you cannot walk through the wall you would have to make the tile impassable. This would mean that at every tile along the wall you would have an impassable, invisible section around the wall, the character would just get stuck on something that the player cannot see.

Share this post


Link to post
Share on other sites
In order to make the wall 3d, why not use 3d graphics? You can have an isometric game be truly 3d. For a simple example, look at empire earth. To me the game was truly lacking in many areas (the AI blatantly cheated worse than any AI I''ve seen, and in the map maker it even had an option to disable AI cheating, but you couldnt load maps in multiplayer, so...), but the graphics were simple, it was basically isometric. The wall could be straight ''down'' (toward the screen) and you could tell it was 3d because of perspective. When the camera is far to the left of the wall, you could see the left side of the wall. When the camera is staring straight at the wall, you can''t see either side, only the ''front'' and top, and when on the right side, you see the right side depending on how far away the camera is. Much more convincing 3D than using 2d sprites/tiles/whatever =-)



"I believe; therefore, it is." -True Perception
"The Requested Information Is Unknown Or Classified" -Anonymous

Share this post


Link to post
Share on other sites