3D Iso World Representation

Started by
4 comments, last by Extrarius 19 years, 4 months ago
I've been thinking about try to make an Iso 3d engine, and for the things I want to use it for, tiles seem like a good idea. But what are tiles in 3D? The most obvious representation is cubes or other recangular prisms (maybe a x*x*h where x = width/depth of a character and h = character's height), but that wouldn't work well for some of the stuff I want to do (like hex-based areas), so the next best thing would be arbitrary 'tiles', ala Dungeon Siege. After looking around, I found the postmortem on the game, but couldn't find anything that talked about the arbitrary tiles. In case you haven't seen the dungeon siege editor, the maps consisted of arbitrary 3d models that had 'anchor points' along the edges, and you created maps by connecting the 'anchor points' over and over to make huge stretches of land, and could make features like clifs and caves by connecting a flat tile to a flat-to-angled-up tile to a vertical tile eventually to a verticle-to-angled-back tile etc to create pretty much any kind of shape you wanted. One problem such a world representation has is that it isn't really good for rendering as far as I can see, and it doesn't easily lend itself to oft-used structures such as octrees (or 'strict' trees of any sort), nor does it lend itself to any kind of iteration since the tiles essentially form a full graph instead of the normal 'crystaline structure' that can be iterated through via simple array operations. Also, I don't remeber being able to rotate tiles, or to assign them different skins (no reason to have 5 different tiles for 'flat grass' when the only difference is texture), and I'd like to have such options in my game. The rotation is a simple matter of storing and retrieving the data, and the skinning would be a simple matter of making 'skin sets' that define different kinds of textures and then storing which set to use with each tile. Then there is the problem of collision detection - I'm not sure how dungeon siege did it, but it seems like at th very least you'd need proper per-triangle collision detection and also a way to flag terrain triangles as passable or not (or probably something more compex with a byte of flags for each triangle), but this starts running into the problem that some tiles might take HUGE amounts of memory (relative to a simple textured triangle as many games use) if they have many polygons. An option would be to introduce some method for grouping triangles in a tile, but then again that introduces its own overhead. Perhaps allowing a simplified collision mesh would be a good idea, as it allows good (but not perfect) collision while keeping the overhead to a minimum (an extra low-poly model for some tiles that would store the collision data there). I'm sure there are many other problems with this kind of world representation, but it would be extremely convenient to find ways to overcome them (As the creators of dungeon siege must have done). I'd appreciate any ideas on how to make an arbitrary tile system work well, or ideas on any alternatives that allow the same level of creativity without having to model each level as a whole or the like.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Advertisement
Why not have a heightmap for the terrain rendered in Iso mode in 3D?

It's quick to render, put into a culling structure, texture, collide against and all kinds of nice things [smile].
Then add 3D objects on top of it, light it, put characters on it (either 3d models or billboards aka FFT).
The problem with a heightmap is that it doesn't lend itself to the kind of maps I want - outdoor and indoor areas mixed fluidly (ie no SNES style screen-fade-from-outdoor-to-indoor-area, just standard smooth scrolling), with multi-story buildings (that properly show either the whole thing when you can't see inside or the floor you're looking at if you can), overhangs all over the place, etc.

My maps will need to support a lot of complexity that heightmap+objects just don't handle well.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
I suppose you've probably already seen this?
Quote:Original post by VertexNormal
I suppose you've probably already seen this?
Somehow I managed to miss that. I'll read it now, but I'd like to mention I don't need the same kind of huge world that dungeon siege had as I'm more interested in gameplay styles that require the whole world to be loaded(on the server at least) for it to work well and I'm more interested in the world representation for its own benefits of an easy way to represent (relatively) complex shapes in a compact and simple-to-manipulate (as a world designer) form (ie I can stick 3d tiles together but can't open up a 3d modeling program and make the same kind of thing as quickly without emulating the 3d tiles manually).
(Just mentioning that because of the title... it does appear the document goes into helpful general detail)

As an example of some of the simpler things I'd like to be able to represent, consider the capture the flag levels of Infantry (but true 3D instead of elevators etc being teleporters to another 2D location) or Zelda: A Link to the Past (with the world expanded so all buildings' interiors actually fit inside the building's footprint).

[Edited by - Extrarius on December 4, 2004 11:46:40 PM]
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Hrmm, after reading the article I'm somewhat dissapointed. I didn't think the dungeon siege engine was as good as it could be, but I didn't realize how bad it actually was. Maybe it's just easier to see from the outside, but I think a lof of their 'late fixes' would have occured to me long before that (and some of the things they didn't fix, like shops, would have been pretty obvious in the design phase I would think even if it wasn't very detailed).

Its always depressing to find out how much the leading professionals are like everybody else =-/

Anyways, it seems that my system will be completely different except in the barest idea of arbitrarily-shaped 3d tiles that connect via tile-designer-drawn 'doors', so I'll have to figure it out myself instead of being able to leech of the professionals
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk

This topic is closed to new replies.

Advertisement