Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am interested in getting into game development and posses good C/C++ programming skills. I have tried OGRE before, and I am curious whether I should learn either OGRE or OpenGL as a starting point.

From my understanding, OGRE is a wrapper for OpenGL and DirectX. So, supposed that I learn OGRE, do I still need to learn OpenGL as well to develop a game?

Also, can someone points me good tutorial for OpenGL? I found that OGRE is well documented (it's even come with the distribution!) but for OpenGL, most of the tutorials I came over are outdated.

share|improve this question

closed as not constructive by Sean Middleditch, Anko, Josh Petrie, Nicol Bolas, bummzack May 13 '13 at 11:55

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

If you are a completely new to 3D graphics programming, I'd try to get a feel for the way the low level APIs operate first (OpenGL or D3D, it does not really matter) and then switch to a ready-made graphics engine such as OGRE so that you can concentrate on your application/game instead of on rendering engine design/development. – drxzcl Apr 22 '11 at 10:40
I would go for 2D first, rather than 3D. – The Communist Duck Apr 26 '11 at 19:43
Most 2D isn't just "3D with no Y" and has its own idioms and go-to techniques, I'm not so sure taking a side track into 2D would be good for someone with "good c/c++" already. – Patrick Hughes May 11 '13 at 18:25
Why is this question not constructive? – Songbreaker Apr 9 '14 at 9:48
up vote 13 down vote accepted

Ogre is indeed a wrapper for OpenGL, however the idea of such a wrapper is that you don't have to concern yourself with the intricacies of OpenGL. It will of course help to know a bit about OpenGL, but Ogre will hide a lot of the ugly details for you.

I would say that Ogre is arguably easier to learn as opposed to OpenGL, or at least it will get you interesting results faster. Of course it totally depends on what you would like to do to asses if it's worth learning OpenGL.

About OpenGL tutorials, yes most of them are pretty outdated, however the spec hasn't been moving forward really fast so a lot of those old tutorials still apply to most of OpenGL.

A few of my favourites:

share|improve this answer
PLEASE PLEASE PLEASE stop sending people to NeHe. The tutorials are good, but incredibly outdated. The days of OpenGL 1.x are long gone, let's try not to cripple the next generation of graphics programmers right out of the gate! – drxzcl Apr 22 '11 at 10:38
See "An Intro to Modern OpenGL":… – drxzcl Apr 22 '11 at 10:44
@Ranieri I absolutely, very strongly agree. The site has remained the same for years and years, and now that OpenGL has changed quite drastically over the past couple years, it really needs to be discouraged. @Songbreaker please make note of this and consider avoiding NeHe's tutorials, or at least taking them with a grain of salt. The fixed pipeline is long gone. – Ricket Apr 26 '11 at 19:17
@Ranieri,@Ricket I absolutely, very strongly disagree. Consider the learning curve for OpenGL 4.x for a beginner who's completely unfamiliar with graphics programming and is picking the SDK up on the side in their free time, with no instruction. How's the documentation for OpenGL 4.x? See my post for more details. – Andrew Rasmussen Apr 26 '11 at 19:49
@Songbreaker: I try to. I'll leave it to you to decide if they're good or not. – Nicol Bolas Dec 5 '11 at 2:08

OpenGL! Yes I'm openly disagreeing with everyone on this board so far.

OGRE is a mess. The learning curve is steep. Yeah they've got some nice tutorials, but stepping outside the bounds of the tutorials and doing your own thing is VERY difficult. I'd expect to spend a three weeks before you can get OGRE set up and working, work through the tutorials, and figure out what to do next. There's nothing about OGRE that is THAT much better or simpler than OpenGL. If you are a good C programmer as you've claimed, and you understand your pointers/arrays/functions, OpenGL will be just as easy, if not easier.

That's why I strongly recommend starting with OpenGL. OpenGL will force you to learn all of the fundamentals of graphics. It's a lot more interesting as you'll actually come to realize what they heck is going on in the background. And YES start with NeHe's tutorials. Yeah they are 1.x which is very outdated (this is for you, Ranieri), but jumping into OpenGL 4.x is too steep a learning curve.

Start out with the immediate mode in 1.x (glBegin, glEnd), then learn about Vertex Arrays. If you want, play with display lists just to learn. Then move towards vertex buffer objects. Then learn about shaders. Each of these transitions are very easy, and there are plenty of great tutorials online. VBO's are in the core of 4.1, so by the time you make it there, you are no longer learning outdated material, and it's a lot easier to get there by starting with the 1.x stuff.

Also, if you ever want a game development career, nobody is going to hire you because you can make a cube spin in some off the shelf library. They are going to hire you because you understand what is going on at the lowest level possible and you can make design decisions based on that valuable knowledge.

References: I was where you were. I spent a month on OGRE, a week trying out Irrlicht, a week trying out Horde3d, two days playing with DirectX, and a month playing with OpenGL. After a month with OGRE I could barely go beyond the scope of the tutorials. After a month with OpenGL I had a character running around a minecraftian world, rendering 260,000 textured cubes per frame with 700+ framerate.

share|improve this answer
Thanks, Looks like I cannot avoid OpenGL. – Songbreaker May 6 '11 at 3:49
I don't agree with your statements and also I don't think the experience you are exposing have any meaning. Both Ogre and OGL requires that you have basic knowledge of how to talk to the graphic card, which don't mean you have to know OGL or DX but basically you have to know what they can do. At this point, Ogre adds a layers which a beginner will take months to setup correctly and that you can't see with an example you've setup in a month. It's always good to know OGL, but dismissing Ogre because of your experience don't mean anything. – Klaim May 12 '13 at 1:29
No, OGRE doesn't really require you to know how to talk to the graphics card - that's the point of it. Also, OGRE is not just a wrapper around a graphics API, it is also a scene manager, model loader, etc. – Jarrett Oct 8 '13 at 1:33

Short answer? OGRE.

Longish answer? OGRE is a wrapper over OpenGL, so therefore you have to do a lot less work. You do not have to worry so much about sending data to the GPU or binding shaders, or sorting out vertices at a low level. It is much faster to use OGRE than to use OpenGL for production, and chances are your code will be (very marginally) faster too.

If you're interested in engine development, use GL. Else, use OGRE. And I'd probably start with OGRE anyway.

share|improve this answer

Knowing computer graphics hardware is not needed for game development. It is needed to become graphics programmer or part of render dev team in a game company (Personal note: which is the best fun on whole game development :)).

If you dont wish to become render engineer, you propably don't need to learn whole openGL or DX to develop games.

share|improve this answer

I would argue neither is best for a beginner, but then "best" is a relative term that depends what exactly you are looking to gain. For example, if what you're wanting is to learn 3D graphics programming in order to gain skills that you could use to get a job as a 3D graphics programmer for a games company then those choices make sense. With this goal you might also look at DirectX.

If however you have any other goal in mind then I would recommend looking at other options. For starters, while from your question one would assume you want to be involved in game development as a programmer, you didn't actually specify that. Both writing a graphics engine in OpenGL and building on top of Ogre are definitely for hard-core programmers.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.