Isometric Tiling

I just read your article on
http://www.gamedev.net/reference/articles/article744.asp and found it very interesting with some great pointers for an intro to isometric tiles in games. I am in the middle of developing an RTS in college, and am personally involved with making the graphics engine. I was hoping to get some additional pointers.
As of know, we are only just beginning and have decided to use Java2D as our main library. One of the first things I guess I would like to ask would be that if we have an entire array of isometric tiles and we want to draw them
all, what would be the best way to go about that in the correct diamond shape? There is a bit of information in the aforementioned article, but I was just hoping to get some more tips.
Thanks

You do know that there is a trick(hack) that can easily make a normal birds eye view look horizontally challenged?

Sheer the x and y axis.

If it’s really necessary to create a diamond shaped map then this won’t be very useful to you…

For my isometric engine I completely fill the screen. The only difference between drawing a standard tile based map and an isometric one is that you draw double the amount of horizontal rows and stagger every other row.

In my rendering loop the code looks something like this:

  plotx = i * TILE_WIDTH + (j & 1) * (TILE_WIDTH/2);
  ploty = j * (TILE_HEIGHT/2);

plotx and ploty represent the pixel coordinate that you will be drawing your tile. I and J are the counters your loop is cycling through. Basically the code is staggering the x coordinate on every other row.

Make sense?

You don’t even need to do that.

Using OpenGL, create a flat map and then rotate the camera around so that you get your perspective and then lock it.

I don’t understand why everyone is so worried about isometric tiles.
Just grab a 3D API/engine and move the camera.

Probably because our 3d coding knowledge is limited. I could easily grab a 3d engine rotate the camera and be on my way. Then I would run into problems on how to translate mouse coordinates, detect collision, etc.

The project I’m building is intended to be more along the lines of the infinity engine used in BG. I’m using a massive gif as the bottom layer and then building on top of it. Not sure how well 3d would handle rendering a 5000x3000 texture.

I’m also skeptical of using a 3D engine for a top down or isometric engine. I thought the NWN night engine was horrid from that standpoint. In the 3d engine you lose so much focus on the minor details.

The 2D/3D question is more of a design question on how you want to present your world. I don’t think 3D is just flat out the best way to always go.

[quote]The project I’m building is intended to be more along the lines of the infinity engine used in BG. I’m using a massive gif as the bottom layer and then building on top of it. Not sure how well 3d would handle rendering a 5000x3000 texture.
[/quote]
Bauder’s Gate uses 256x256 ‘meta-tiles’ (or maybe 512x512 for later games) that OpenGL etc. can easily handle. This also means they can just display the chunk thats on screen rather than sending the whole image to be rendered.

Even if you’re not doing ‘proper’ 3d, OpenGL accelerated rendering would be a much better choice than Java2D.