Jump to content
  • Advertisement

Archived

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

Scarab

Opinions wanted: 2D Iso vs. 3D Iso

This topic is 6340 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

OK, it''s time for me to start deciding how I want to implement my next title, since I''m getting to the debug stage of my current project and need to look to the next thing I throw my time away on! I''ve seen a lot of posts on using 3D for doing an iso-perspective game and how it makes some things easier, but I always wondered how well that would work out if you wanted something as graphically nice as Icewind Dale (my current addiction). I know I can do what I want using 2D pre-rendered images and animations, but I''m concerned about the bus bandwidth I''ll be chewing up for it... I''m wondering if anyone has done a pro/con of the two methods, and if so, if they could point me in the direction of any information that might help eliminate my questions and general cluelessness on this topic. Thanks!

Share this post


Link to post
Share on other sites
Advertisement
Well, here''s a few general thoughts. I am still learning about this stuff but I have been working on a 2D engine for quite some time and am now looking into converting it to 3D, or at least making it use 3D features if they are available. With 3D, neat stuff like coloured lighting and correct intersection of objects is pretty much a given, which is nice. However, you do lose a lot of the detail that 2D graphics provide.

What I''m currently considering is a way to light my existing 2D engine graphics with 3D features, without converting them to 3D at all. Fortunately I had already implemented a low-res heightmap system for my tiles so that entities could interact with them properly. Now I can use that as a base for the mesh that needs to be lit. If you want to do lighting in 3D, some sort of mesh is a must, even if your graphics aren''t going to be 3D models. If it works, this will end up a *lot* faster than it could possibly be done in pure 2D, especially with todays T&L GPUs.

It all depends on how far you want to go from 2D to 3D though. I''m sure you could do it in full 3D but you may not get the sort of beautiful graphics you describe, eg. Icewind Dale. You can also still get advantages in 3D even if you don''t do lighting. Most 3D hardware will accelerate scaling, rotation, hueing, darkening/lightening, and plain old drawing, of 2D images. That''s not to say that there aren''t costs involved, of course. For one, the requirements of your game might go up, due to the necessity of a 3D accelerator. You also have less options as far as storing images - can''t use custom formats or RLE sprites, which can save memory. I haven''t really looked into texture compression, which should help here, perhaps at the cost of a little quality... This could be optional for those users with small amounts of video memory perhaps.

Anyway, as I say, I''m still new to the 3D stuff, so please correct any mistakes I have made. Hope this might help to give you a few things to think about, though.

Regards

Starfall

Share this post


Link to post
Share on other sites
I agree with you, Starfall.

However, my personal preference is for implementing a 2D isometric engine.

My engine''s first objective is to develop it as advanced as possible without entering the 3D realm...

2D isn''t dead... at least in our hearts...





[home page] [e-mail]

---
"Lifting shadows off a dream once broken
She can turn a drop of water into an ocean"

Share this post


Link to post
Share on other sites
We have been doing quite a bit of research into this subject and because we
have invested heavily in a top end rendering package 3D is the way we are going
right now but with different approaches.

We looked at three main areas for the world graphics

1.Tiles
2.Pre rendered scenes with Z buffer information (Output from the renderer)
3.Full polygon scene with an Isometric camera

We kind of abandoned tiles but they are very useful. Diamond shaped tiles are almost
the same as polygons because they have been transformed. We actually pre scan converted
a diamond tile because it was not worth skipping through the transparency mask when
it was not needed. This brought some obvious speed benefits and reduced the memory
foot print.

The pre rendered scene meant we could have very detailed graphics or even hand
painted if we could create the occlusion buffers. We then could have polygon characters
that fully rotated and pass these through the pipe line, or we could stay with
traditional sprites. The downside to the sprites was the memory consumption if we
wanted sophisticated animation.


The full polygon setup suffers from over draw and you have to get into span buffers
and various other techniques. With an Isometric view you can special case occulsion because the frame coherency and
constant Z (No perspective) allows you to take certain optimisation paths.
However the full poly setup allows you to rotate the camera,zoom and so on. And you
get the lighting almost for free. Using the renderer to build the levels would also
be a snap.

I like the look of some of the Playstation Isometric polygon games and they don''t suffer
graphically too much.

Currently we are using the pre-rendered scenes with low poly models for the characters
because it just suits our game better. The scenes can scroll and the cache is controlled
through one large memory mapped file.

The pre-rendered scene plus the sprites was the most attractive looking but if we
wanted that camera to rotate then we would have gone for the full polygon setup.


It''s a tough call but we wanted the characters to walk under bridges, swim in water
and climb trees. The Z buffer worked an absolute treat for this and basically the
artist could create very,very complex objects and the engine simply used the pre-computed
z buffer. All occlusion problems were solved instantly.

Share this post


Link to post
Share on other sites
My humble $0.02:

I think 3d is the way to go. I''ve been developing an isometric engine using Direct3D and I have found the increased difficulty more than pays for itself with additional features and flexibility. You have many options for cool effects, rolling terrain, and so forth that can make your engine a whole lot better. There are lot of isometric engines going this route. Now, this doesn''t mean all isometric engines will be replaced by FPS style ones but instead that 3d can improve dramatically on current 2d only engines.

Sieggy

Share this post


Link to post
Share on other sites
Thanks to everyone for your responses! There''s a lot to consider, but it appears that the 3D approach might provide the most flexibility (even if it means giving up a little something in visual quality).

Share this post


Link to post
Share on other sites
Minor update: having to live with a 256x256 max texture size, to make allowances for all the Voodoo cards out there, causes far too much trouble, artwork-wise. I get the choice of either chopping up larger textures into lots of teensy little bits and mapping the bits across more geometry than is really necessary, or using Photoshop to butcher the artwork into something that fits and may, with luck, actually resemble what was intended. If I were doing an FPS, I wouldn''t care if I lost some quality, but a fair amount of the attraction of the game we''re doing pre-production for is in the graphics.

Until no more Voodoo cards exist I''m going to have to fall back to 2D - I''m just not willing to compromise the artwork. It was quite a learning experience, although mostly what I learned is that I can curse as much in "artist mode" as I can in "programmer mode"!

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!