Iso engines should be 3D

Started by
16 comments, last by ancientcoder 22 years, 9 months ago
Why suggest to a beginner that Isometric 2D is easier than 3D? This is a big myth. Main reason is the rendering order. I have been involved in a topic on this forum where somebody wanted to draw a sprite that was bigger than two tiles. Sounds simple but a whole bunch of people, including me, responded by telling him to split the sprite up into pieces. Worst of all it required a level of knowledge much greater than getting the hang of a 3rd coordinate and letting the hardware (Z buffering,Span sorting) sort it out. So straight away we get the rendering order out of the way. It becomes a non issue. I am not against 2D but I am against trying to squeeze 3D out of a 2D system when it seems so obvious that ISO is 3D. I have also seen numerous suggestions that you should prepare your 2D game to be moved to 3D when you feel ready. Why? You struggle along and you make your game and have your map up on the screen. All of a sudden you want a sprite to move in pixel units in all three dimensions and the whole thing falls apart. The whole point is that if your game requires any of the following, or is likely to do so then do not even consider trying to develop it in 2D unless you are a masochist. Your sprite can move freely in any dimension and can be bigger than one tile. You can walk under bridges and such like. You consider the presentation layer separate from the physical model. If you are going to write an ISO game then a 2D representation of the data is going to stop you in your tracks. I feel some heat coming my way :-)
Advertisement
Well I dunno, I have a 2D isometric game and sprites can be larger than one tile. They can also go under bridges, because they can go between Z levels. They can move however they want. Some things are a pain, yes, but it''s not so bad. I use D3D for HW lighting acceleration, however, although it is technically not aware of the tiles under it.
That is fine but my point is about beginners. You managed to do
all these things and so have I but why complicate it?

Go and read the post on objects bigger than two tiles. You may
have a better way of doing it but just read the answers the
poor guy thought it was a simple solution.

You happened to be enlightened but many others are struggling
because 2D to 3D seems such a massive leap. Without a 3D
coordinate system how the heck are you going to walk under
a bridge? This is what a lot of the beginners are struggling
with. They dig out the tutorials write a 2D engine and
wallop the 3rd dimension rears it''s ugly head.

If we are going to suggest anything to a beginner then I
would suggest writing a 2D scrolling game which has only
two dimensions.
ancientcoder is right.

ISO2D will always have a place, but above a certain level of complexity, keeping something in ISO2D is counterproductive. For a flat map with terrain and units that occupy the entire tile, ISO2D can handle with no problem. Start getting into objects larger than a single tile (other than building blocks, which are still ok), multiple height levels, and so on, it becomes too much. It should be moved to ISO3D, or should have been ISO3D in the first place.

I have recently been working with Dino Gambone on some ISO3D stuff (some of the examples i''ve made so far have links posted in a recent thread on Mouse Mapping, and i think Dino has his posted somewhere). He is working in OpenGL, and I am working in Direct3D8. What we are working on is coming up with a simple standardized methodology that works for ISO3D, including texture mapping, lighting, matrix-based geometry transformations and z buffering. We are by no means going full-out 3d, as the composition of the world is still, for the most part, tile-based.

Get off my lawn!

My first tiled game was a top down scrolling maze game called "Cradle Quest 1: Search for the Holy Cradle" written in QuickBASIC. Downloadable at my web-site because it''s such a classic. That was 6 years ago now and I still use the same general concepts I use for ISO. It''s all tiles, all that''s different is the math placing them and how they''re drawn. Filled rectangles won''t cut it anymore.

Once you understand that ISO is 3D and treat it accordingly there''s no issue with starting with 2D graphics. When Tombstone: Vendetta goes to 3D tiles the render loop will change slightly but nothing else. Not even the tile or map editor which are written using DX6 or earlier and use 2d tiles.

I still recommend 2D to start since if you''ve never done ISO you shouldn''t overload yourself with advanced issues. And you shouldn''t worry about how it looks. That can be easily improved (depending on the design) later when the game itself is done.

3D graphics can be incredibly difficult and expensive to create. Anyone can use Paintbrush.

Ben
http://therabbithole.redback.inficad.com








Why shouldn''t you give the "beginner" the choice? If he/she wants to create an Iso rendering engine.. the best way would seem to make it in 2d.. then if it starts to look good, and the programmer is getting the hang of it.. then you can suggest making it in 3d.. 3d is just a hell to start with, so why should you kill the persons creativity with having him dry up while figuring out how to do 3d?

just my .02

I am all for giving people choices but when you have had
the benefit of experience is it not better to try and
pass that on?

We all stand on the shoulders of others anyway. Back in 1993
I had no DirectX to use so all the rendering routines had
to be hand coded.

Sure you learn a lot from doing that kind of thing and it
makes you appreciate what is going on under the hood.
But my argument was about people who want to make games
not low level rendering code. There is a world of difference.

Soon Tans and Dino are going to be creating some tutorials
for 3D ISO. I would rather point a beginner to those tutorials
than make them struggle trying to figure out how to get
an object bigger than one tile onto a map. Fundamental stuff
like that should be long gone now.

3D just so happens to solve quite a lot more problems than 2D iso does not. I would point people to the WildTangent driver
or Shockwave 3D if they want to get a game up and running without
worrying about all the 3D math.

I appreciate that if you want to write engines then go do it,
but if you want to make games you should be worried about
gameplay more. If an API makes you worry less about the nitty
gritty then I am all for that.



I think the problem is that we''re trying to start beginners out on a rung they''re not ready for. I remember when if you were new you were refered to QBasic. Now it''s C++ and DirectX.

I started using the DATA statment in AppleBASIC. I cut and paste the code for a bug graphic using DATA and made a game out of it. Even used the joystick. I ripped code for that too. It looked neat and impressive (I was 9 or 10 at the time) but even then I thought it sucked simply because I didn''t understand half of what I was doing.

I made Hyperspeed in 1995 which technically sucked (graphics wise, sloppy code, you name it) but was my first big achievement simply because all the code was mine.

That''s nice that a beginner can use a library to make a game but it''s not a really impressive achievement. It''s like using Klick ''n Play.

So really it depends on your method. If you want to just hand out code which allows them to do things that normally they wouldn''t be ready for until they took Trig or Calculus I can''t say I''d support that. If you want to teach them everything involved with how it works (including the math) and encourage them to learn how to write their own library. That would be cool.

Ben
http://therabbithole.redback.inficad.com
Let me clarify. I am talking about people who want to
write *games* not engines. Big difference.

Tetris was written with a few ansi characters! It was the
game that was an impressive achievement not the rendering
architecture. Do you think he was obsessed with rendering
order? Did he rewrite the OS''s graphic subsystems and sit
back and think , hey I''m clever I know how the display
works, no he wrote one of the best computer games ever.

A genius could be given "klick and play" and make an
incredible game.

We are talking games here, about people who want to write
games. Sure if you want to write tools and engines then
great, be the next Carmack whatever.

The simple advice I am giving is that do not get hung up
on the toolset. If a 3D api is available, and it solves your
problems, then use it.












ancientcoder,
yes I totally agree with you there. I enjoy the creative design portion of game development much more than the technical, and I''m finding that 3D does seem to take care of a lot of problems
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi

This topic is closed to new replies.

Advertisement