do i need learn 2D before 3D? Tricks vs Opengl book

Started by
17 comments, last by x-bishop 22 years, 8 months ago
it just makes sense to learn 2D before attempting 3D and I had decided to purchase "Tricks of the Windows Game Programming Gurus", but then i started reading numerous reviews on different websites and asking the dudes at #gamedev and many say that the book usues weird routines that the author developed, 8bit color and bitmaps for graphics..and that the book doesnt even cover 3D and then i started looking at "OpenGL Game Programming" and it seems to slowly guide the reader into 3D fundamentals...so that maybe even newbie game programmers can understand my question is..is learning 2D game development essential in learning how to make games?? i ultimately want to develop my own 3D engine...so should i just dive right into 3D? i just hope that if i order OGP that it wont be over my head or if i got TOTWGPG that it wouldnt prepare me for 3D at all i mean..i still have to learn collision detection/physics with any type of game...cant i just learn it in a 3D environment? or is it too difficult?
Advertisement
You should definately learn 2D before 3D, IMO. Rendering 3D models on the screen isn''t much more difficult than blitting sprites (if you''re using a 3D API, at least). But diving into BSP, Octrees, (C)LOD, etc. is probably not what you want to do for a first try.

Also, collision detection and pathfinding algorithms are much more difficult to handle in 3D.

I''d certainly suggest to start with 2D (note : you can do 2D with OpenGL) and once you feel *very* confortable, move to 3D.

Hope this helps.
I learned 3d before 2d. You really do not need to know how to program 2d before 3d. Once you learn 3d programming you will be able program 2d without too much trouble. I have listed some sites that are helpful to get started in 3d programming.

http://nehe.gamedev.net

http://nexe.gamedev.net

http://www.gametutorials.com

http://www.opengl.org

have fun programming

Gaming is a way of life belive it
Gaming is a way of life believe it
quote:Original post by x-bishop
it just makes sense to learn 2D before attempting 3D


I don''t know any "2d" I only know 3d. 3d is not an extension of 2d; you don''t have to work your way up.

quote:Original post by x-bishop
it just makes sense to learn 2D before attempting 3D


I don''t know any "2d"; I only know 3d. 3d is not an extension of 2d.

quote:Original post by x-bishop i ultimately want to develop my own 3D engine...


then learn 2d is a waste of time.

Ok those 2 anonymous posters are me. I accidently pressed the "post" button twice (stupid interface). Anyway, I would recomend getting a book on OpenGL API only. And just concentrating on learning that, then get a book on advanced 3d programming that talks about general stuff not pertaining to API's like collision detection, shadow techniques, etc. I think this is your best bet.

[edit]: Its not that you learn 2d and work your way up to 3d, its that you learn 3d, make some shitty demos, and work your way up to games

Edited by - grady on August 8, 2001 5:50:27 PM
----------------------------www.physicsforums.comwww.opengl.org
Nothing is a waste of time. If you learn how to do 2D properly, you''re probably going to throw a lot of things away once you move to 3D(like blitting sprites). However, you do not lose the experience, and a more general understanding of computer graphics. Just imagine that at some point developing your 3D engine you think it would be cool to add procedural textures, for example. Then all that knowledge about manipulating and adding effects to a 2D surface would come handy.

But, on the other side of the coin, I still don''t know how to use DirectDraw(I''m just doing OpenGL for now), but I''ve been doing 2D since my MSX... your mileage may vary.



Gaiomard Dragon
-===(UDIC)===-
Gaiomard Dragon-===(UDIC)===-
I''d say it depends on what you want to do. If you are interested in making a 2d game or some type of 2d interface, then go for 2d graphics. If you want to make a 3d engine or anything else 3d then...you guessed it, work on 3d stuff. The two used to depend on each other to a small extent since you had to know scan conversions and stuff with drawing to a 2d buffer. I remember back when direct3d used to depend on directdraw (it really sucked to program for!!!) Point is, if you learn 3d, like others say, you wont depend on 2d knowledge to make something cool. The same goes for 2d. The two are really mutually exclusive. Like I said, it depends on what you want to do. I started right in on 3d graphics, and I''ve never looked back.
I have to disagree strongly with lunarss and grady.

How can you say 2D and 3D are mutally exclusive or unrelated? That makes absolutely no sense logically or mathematically.

You''re doing 3D programming, right..Take away one of the axis.. surprise, now its 2D programming!

Sure, there''s API differences, you do things differently in DirectDraw than you would in OpenGL, but those are API differences, not differences in "2D" vs "3D".

I would have to say that if you''re a new games programmer and you don''t have an extensive math background (lots of 3D geometry and linear algebra experience, at the very least), learn 2D games programming first.

All of the concepts in 3D are extentions of simpler concepts in 2D -- collisiond detection, physics, surfaces, etc. And there''s some aspects of both you have to worry about no matter what, depending upon which API you use and how high level it goes -- color depth, color conversion, pitch on surfaces/textures, efficient use of video memory, and on and on.

Learning 2D keeps things simpler so that you aren''t overwhelmed by everything at once. There''s more to games than graphics: timing, sound, input, networking (maybe), AI, etc...All of these are much simpler to deal with when you''re dealing with a 2D dataset, but again the concepts you learn in 2D programming are perfectly applicable to 3D programming, you just need to learn them more in-depth.

Anyone who says 2D and 3D are mutually exclusive should not, in my opinion, be trusted, because he/she is focusing too much on the API and not enough on general concepts which are universal and do extend or contract when moving up or down along the N dimensional space.

Whoa there gmcbay! Calm down a little. I didn''t mean to get you so riled up over such a simple discussion. It comes down to the fact that we''re both trying to help this guy. If I give him some bad advice its fine to correct me on it and tell him what, in your opinion is right. You don''t really need to be condescending about it. Saying that I "focus too much on the API", and that I "shouldn''t be trusted (do you know me??)" is a gross assumption. I''ll try to make my point a little more clear so I don''t confuse people again. I''m saying that 2d knowledge applies to 3d to an extent yes, but it won''t help you a ton. Mathematically, yes, 3d is an extension of 2d, but they are quite different in application. Going from 3d to 2d would be easier. If you''re going to program an all software 3d engine, then knowing something about 2d will help you fill a screen buffer and do double buffering. Knowing 2d will not help you transform, rotate, and project a 3d point into 2d. No, you don''t just take off the z coordinate. Sorry to harp on you gmc, I just didn''t really appreciate you saying that nobody should trust me.

This topic is closed to new replies.

Advertisement