   SDL vs Ogre3D
  Gday!I was wondering, which would be better to spend my time in learning? SDL or Ogre3D?I know Ogre3D is 3D, and SDL typically 2D, but is it worth learning and practicing a 2D Graphics Library if it will eventually become redundant as I slowly plough through programming knowledge?? I know quite a bit of SDL ATM (at least for a beginner), but Ogre is new to me (very new) and I'm struggling with it a bit. However, 3D is towards the end of the line, and I think I'd rather learn 3D Graphics Proramming now, rather than after 2D, especially if it's a very different syntax.What are your thoughts?   
  Ogre3D and SDL are only libraries. Yes, their "syntax" could be quite different (I haven't looked at either, really) - but the mathematics behind them is what drives them. 2D mathematics is a great deal simpler than 3D, of course. If you want to be proficient even with Ogre3D at your disposal, you're still going to need to have a thorough grounding in 3D mathematics. I would ask what language are you learning, at Ogre3D is in C++ and SDL is acceptable in C unless I'm mistaken. Either way, I know Ogre3D is incredibly more OOP than SDL is, so you'll not only have a difference in mathematics, a potentially different programming language, but also a different paradigm to work with.Basically, we need more information. What language(s) do you know/are learning, and how good is your mathematics?   ;  language: C++, quite proficcient at it, but still learning things (hate pointers... grr!)Maths skill: Great for my age (14), I know that I havent learnt complex maths yet (doing year 10 maths), but since im quite mathematical, I believe i could quickly pick it up.Also, Im an OO Programmer, so no problem with Ogre's OOP.Hope this helps!   ;  I would stick with C++ and SDL then. You probably won't have learnt the mathematics required yet for 3D graphics (vectors, matrices, differentiation, even trig?? maybe) - and whilst you could probably learn it now - there's not point. Yes, you could study hard and learn it, but as you've admitted you're weak with your programming language, and I think it would be too much to take on too soon. So I suggest learning C++ to a very competent level, and use SDL to make an awesome (crappy? who cares) game. Trust me, it's awesome writing a small 2d game that's fun, because it'll be yours. The effort required to make a small 3d game is phenomonal comparitively.Hope that helps. :)   ;  Well thanks for your advice!Just to clarrify things up a bit, I'm proficient at C++ (last I checked this meant quite competent), so weak is a little strong. Trig I've got, 3D matrices i think are different to what im thinking of, so that is probably something Ill need to learn, vectors seems quite simple, unless theres something more to them, Ive never heard of differenciation (that is, in 3D termonology).But yes, I think I should finish a 2D game before i start with 3D. Im just worried that I'll be learning a language for absolutly no reason (sort of like learning French for the experiance of learning another language, when your eventual goal is Italian). Anyway, I know quite a bit of SDL, so I'll try to create something.Thanks!   ;  Sorry, but what is the point of this question?!You are comparing apples with pears (as we'd say in Germany).What is better to start driving? A Mercedes or a buggy?Hmm... if you want to take your baby-child through town a buggy would be the better advice, but for going from NY to LA the Mercedes would be appreciated more.Back to question: SDL and Ogre *ARE* two different worlds.If you want to program a engine - maybe for research or for learning - and want it multi-platform-able (Windows, Linux, MacOS X, even homebrew Dreamcast, ...) without the usual hassle (WinAPI vs. X-Window vs. XXX || loading bitmaps under 3 different OSs || gather input from DirectInput@Windows/Linux/XXX || etc.), then SDL would do the trick. That's what it's for!Many commercial games used SDL for porting to Linux.But if you don't want to code an engine, and the only reason you'd start low-level-programming at all is to transform your game idea to an usable product, a ready-made engine like Ogre would fit more.Then your main actions will be providing content (3D models, textures, music) and much scripting for character behaviour etc.The programming itself is far less in this case. (And this is no bug or misconception in SDL or Ogre, these two are just two different kinds of transportation device.)   ;  Err... by the way: As you can combine SDL and OpenGL very easily, SDL is not just 2D-able. It then is "a combination of Direct3D, DirectInput and GLUT" - if you know these. If you use a net layer and sound layer (also at libsdl.org or somewhere else), you have a complete DirectX (Graphics, Sound&Music, Input, Threads, Networking) which is multi-platform-able (which DirectX is not).   ;  I take it that you think Ogre3D is a ready built engine??Im pretty sure that it isn't, it is only the graphics portion of one, and that was  the idea from the first place. I realise that you can do openGL within SDL, but I found that the support for doing so is remarkably small, and why bother re-inventing the wheel? If ogre3D can perform 3D tasks well, then why not use it instead of making your own??Anyway, am still juggling with both ideas, but Im worried that I'll be learning something that will become obselete later on down the track.   