Archived

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

Stark

Why bother with diamond shaped tiles?

Recommended Posts

Guest Anonymous Poster
Well, I made a tile engine too, then I also made a isometric engine. The reason people use isometric(diamond tile) engines is because you can make building, walls, and doors. People choose the isometric engine mainly because it allows you to have 3d looks without being 3d. Sure you could make a tile engine(square) that looks 3d, but with isometric engine it's much easier to make a tile engine to look 3d without it being 3d. I made a isometric engine, because I liked the ability to make walls, and doors. It's pretty cool.

The drawbacks of an isometric engine are there are some tricky equations for getting the mouse coords, and sprite coords. If you want to make a game with walls and stuff, like Diablo2, or Swat2, or Command&Conquer2 then use an isometric engine. If not, then just use a regular square tile engine. Some games that use a square tile engine, are StarCraft, WarCraft2, Command&Conquer1.

Most new games choose isometric engines because the user likes them better, mainly because they have a more 3d look.

In the end, it's your choice!


Later,

email - datisme@notme.com
Da_KiD

PENGU PENGU is a really really shitty Band!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Depends on the view. If you want a view with walls and buildings isometric is easier because the tiles overlap. Look at a game like Diablo2, or Gangsters. The tiles overlap which allow you to stack tiles which make the game look more 3d. Try making a wall in a top-view square tile engine. It is quite different.

Right now, I'm programming an isometric engine because I think the view is a hell of a lot better, but that's my opinion.

Ask others on the board too

Latez,

email - datisme@notme.com
Da_KiD

Share this post


Link to post
Share on other sites
What I meant was wouldn't it be easy enough to just blt the entire base layer (landscape) using plain ol' square tiles, (since they fill the entire display area anywyas, why bother caclulating all the offset crap required to properly draw them iso shaped, plus you wouldn't have to bother with transperancy, etc.) then you could use iso tiles for all the rest of the layers.

Wouldn't this be a little faster? I dunno, maybe I'm just clueless here, but this seems logical, and a lot more simple to me.

You could then draw the base layer fairly quickly, and then ignore it. After all, everything you interact with is on layers 1 (assuming base = 0) and above, no?

The classes I've designed work like this, so far. I have (or will when I'm done) a BaseTile class that draws itself, then I have a sprite class for the rest of the layers. This way the bottom layer is really simple to draw.

What I'm not sure about this though, is will this make calculating the placement of the top layers (walls, doors, sprites, etc.) more complicated. I was assuming I could just line them up using the same X, Y coords passed to the base tile. Could this work, or should I just forget it and make all the layers iso?

I agree with you, in that iso views are alot better looking, so....

[This message has been edited by Stark (edited October 15, 1999).]

Share this post


Link to post
Share on other sites
Using squared tiles for the terrain and then using isometric buildings and walls will provide some mixed results (i.e. Hatfield & McCoys). The main point for using diamond tiles are for actual terrain, like hills and slopes (SimCity 2000).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Yea, that's a good idea. Some people like the isometric diamond shape map look better, but it all depends on the game. I've made sqaure tile engines, and I've started an isometric one and I think it looks pretty good. I think you learn a lot about making tile-type engine games when making an isometric game, because the tiles are not all square.

Take a lot at the game Commandos or Gangsters, those games look amazing! The graphics awesome. If you tried to make that kind of game with a square tile engine, it may work but I think that with isometric tiles, it's better to stick with what you start with. Meaning that make a base layer out of isometric tiles and then make a building layer out of isometric tiles. It also depends on the style of isometric you choose.

The 3 main types are staggered, diagonal, and slide.

Staggered is an isometric engine where you blt the tiles, staggered every other row.

Diagonal, is an isometric engine where you blt the tiles in a diamond shape map.

I forgot what the slide style was, but I know not alot of ppl use it.

Latez,

email - datisme@notme.com
Da_KiD

Share this post


Link to post
Share on other sites
I tend to agree with stark - Diamond shaped tiles are absoultely useless - They suck from a performance perspective (color keying, redundant blitting, wasted space, need I say more), they're difficult to align and even worse to create... I tried it and ditched it in favor of square tiles - the view is still isometric, this has really nothing to do with the shape of the tiles...

Take a look if you wish:
http://www.image.dk/~noshit/scrshots.html

/Niels

Share this post


Link to post
Share on other sites
Hey Niels, there's sure some large spaces in those screenshots. And try making a SimCity2000 type game with square tiles. You're just giving up too easily. SC2000 had a isometric engine in high rez running with 32 fps on a 486-SX (my old specs). That's pretty damn good.

[This message has been edited by Ðragun (edited October 16, 1999).]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
So what's the 'conclusion' here? Use squared tiles, but have the sprites in isometric view? Will this affect the movement of the role? So how about the "height" and "depth" effect like Sim2000?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
So what's the 'conclusion' here? Use squared tiles, but have the sprites in isometric view? Will this affect the movement of the role? So how about the "height" and "depth" effect like Sim2000?

Share this post


Link to post
Share on other sites
I'm sorry, but I still don't get it... The shape of the tiles has nothing to do with what the player sees. You can create an isometric view with hexagons if that takes your fancy, or you can prerender the whole bloody background if you got the space for it (or the map is sufficiently small)...

And yes, there are some empty spaces but that's because I'm a lazy map maker . Besides, I don't recall simcity having alphablending and particle systems - And if you think that's irrelevant, we just plain disagree...

/Niels

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Your conclusions may vary, as noted there are some games which use the isometric tiling scheme to great effect with little performance penalty, Sim City, Diablo, X-Com, etc.. and on the other side there are some games which use the square tiling scheme most RTS games like CC, Starcraft, etc.. Drawing from those examples, you might notice a trend. Games which have slow or sedentary views, RPGs and Sims use the isometric scheme proably becuase they dont find the cost of coordinate conversion and redundant blitting, prohibitive. While games like RTS which have many more active units on screen and require a dynamic view, choose the simpler and more efficient square tiling scheme, in exchange for flexiblity and detail. Tailor your implmentation which best suits your game. Perhaps if you could elaborate on what type of game your making, there would be more clear cut answers. Good Luck!

-ddn

Share this post


Link to post
Share on other sites
maybe its just me, but I still don't get diamod tiles... you can have a square tile:

0123
1 2
2 1
3210

(thats not really square lookign but ohwell)
and display them as a diamond like this:

0
1 1
2 2
3 3
2 2
1 1
0

why would we even bother writing tiles in the shape of diamonds anyways? its just a waste of space.

what i think whats-his-name is askign is if it would be easier to display ground tiles like this:

0123
1 2
2 1
3210

and wall tiles using the isometric format...

and my answer is no it wouldnt be easier cause alighning them would be tough and it would come out looking wrong

let me know if im wrong tho

------------------
Thats right im a gnome
-The^gnome

Share this post


Link to post
Share on other sites
The^gnome, essentially, that's what I was asking. Thanks.

I still haven't decided which way to go yet. Think I'll have to try them both maybe and compare.

I think you're right, as some other people also mentioned, it's to hard to align walls, and other large continuous graphics that would span across several base tiles if I used square tiles, but if I used isometric tiles it would be easier. I guess I'll just have to use isometric for each level.

Share this post


Link to post
Share on other sites
Using square tiles for terrain and isometric tiles for the walls would be a nitemare. The coordinate system would be difficult to control. I suggest using the engine that will add to the game play. What does that mean? Well, the game is the reason you are coding the engine. If the game will still be enjoyable using a square tile engine, go for it! Get back to the basics.

------------------
David "Dak Lozar" Loeser

[This message has been edited by Dak Lozar (edited December 24, 1999).]

Share this post


Link to post
Share on other sites
>Diamond shaped tiles are absoultely
>useless - They suck from a performance
>perspective (color keying, redundant
>blitting, wasted space, need I say more),
>they're difficult to align and even worse
>to create...

I don't understand the color keying part, but redundant blitting and wasted space?

An iso engine is exactly the same as a 'normal' tiled one -- if it is setup correctly and you use a bit of common knowledge.

First - design the maps correctly so there is no overdraw (just like a 3d engine). Remember - you're drawing just about the same amount of pixels per screen as a 'normal' engine when done correctly.

Coordinates-wise - there is nothing complicated or advanced math functions or whatever - it's as simple as a 'normal' engine. Please - sit down and figure out the math - grab a piece of graph paper and draw out an iso tile and figure it out.

The one biggest mistake it seems a lot of people are making with iso is the fact that you can still use rectangular maps in memory, iso only comes into play when rendering - that's it! Sure, you also want to know where the mouse is and so on, but not much else.

As for designing and aligning - it's as simple as a rectangular tile. There's no tricks or secrets to it. Just cut out a template or something to use in your drawing program to pull out the tiles you want, or write a quick program that takes a bitmap and creates the tiles for you.


Jim Adams

Share this post


Link to post
Share on other sites
Ok. So I just finished (finally) a basic engine that allows me to tile sprites to the display. Works fairly nice, I think, but now I'm wondering, should I bother to add the logic to allow the tiles to be "diamond" shaped and if so, why. It looks fine with square tiles, and I just can't seem to figure why I should even bother with diamond shaped tiles. Do they offer some kind of advantage?

Share this post


Link to post
Share on other sites
Isometric is definately the way to go for a good 3D look..
It may be alittle wierd at first if you used to just doing squares .. but in the end its alot more flexible in what you can achieve.. If you dont think isometric is flexible... just take a look at Rollercoaster Tycoon.

nuff said

Share this post


Link to post
Share on other sites
I guess I''am at it again...

Isometric view IS NOTHING MORE than a mapping from 3D space to 2D space - Isometric tiles is an obvious, but (IMO) unnecesarrily slow way of implementing (visualising) it.

If I were to do it over, I would build a full 3D engine (and use an isometric camera) instead - the tradeoffs you make in a (any) tile engine tend to backfire (IMO). I''ll probably release my engine w/ source for you guys to play with - I''m not going to have time to finish any game based on it anyway - THEN you can really flame me with mails about "bad design choices" and "sloppy code". Untill then its an "eyecandy-war" and screenshots are our only weapon (And if I''m not mistaken, square is currently ahead with 2 frags to 1 against iso ).

/Niels

Share this post


Link to post
Share on other sites
Ok, Niels, I took a look at your screenshots, and they look great. They also look nothing like my current project is intended to look.

I''m currently working on a turn based, small units tactics simulator in the same vein as X-Com or Chaos gate.

Now that we''ve started settling on level design any performance hit we''ve taken for using iso is weighed out by the following considerations:

1. We *want* the old school look and feel of the iso games such as X-com. eg. Thin destructable walls; Corridors *exactly* one unit wide. Destructible floors/ceilings. With square tiles its a pain to blow away a section of floor and have it stop at the wall.

2. We estimate that our tile sets would have to be about twice as large if we used a square tiling system.

3. Multiple layers. Ever played X-Com Apocalypse in the hydroponics farm map? 8 separate height levels all with monsters to suck out your brains ready to leap down from above. The square tile system just didn''t work when we tried this, unless we implemented tweaks that caused performance to drop *way* below what we were getting on iso.

4. 90 degree map rotation and angle tilts. Our iso tiles made map rotation a breeze. Our square tile attempts were a nightmare. The tile set changes for our angle tilts on square tiles were a nightmare and a half.

In conclusion: Stop blasting iso for *all* applications, unless and until you can show me how I can do *all* these things in square tiles at the same performance cost (computational and storage) as iso tiles.

Share this post


Link to post
Share on other sites
2 things:

1) Granted, layers are a bitch to implement in square tiles. Doable, but a bitch.

2) I prefer not to have destructible walls as part of the tileset anyhow. I keep walls like this in the same layer as units, items etc.

Which is probably a thing I have neglected to explain in previous posts: My tiles are exclusively "filling" for the background - it takes up the majority of the 640x480 pixels I need to draw, and because of this I can waste a few more cycles on the rest of the graphics, doing e.g. alpha blending.

/Niels

Share this post


Link to post
Share on other sites