Sign up ×

I am completely new to programming and game development for that matter. I am using the C++ software to create my Game Engine with the help of a beginners guide. I noticed it has a OpenGL option when starting up a new project. I've heard of OpenGL pertaining to game development, not sure what it is though.

Should I be using OpenGL when creating my Game Engine? Will it matter if I just start with a blank slate?

share|improve this question

closed as not constructive by Nathan Reed, Jari Komppa, Byte56, Maik Semder, Josh Petrie Dec 20 '12 at 15:29


OpenGL is a graphics programming library that you can control from C++. If you've never programmed before, you will likely find it too complicated to make anything with. Read the FAQ for tips and links on how to get started with game development. – Anko Dec 19 '12 at 17:03
By the way: There is no such thing as the C++ software. C++ is a standardized programming language with many different implementations made from different vendors. They all use the same program code, but there are different tools to edit them (called IDEs or Integrated Development Environments) and different tools to turn them into executable programs (called compilers) – Philipp Dec 19 '12 at 17:50
@Philipp i simply ment the program you use with C++ – Paralytic Dec 19 '12 at 17:51
@Philipp and there's also the linkers, which link different compiled objects and generate an executable. ;) – Dan Dec 19 '12 at 17:56
Next time, please read the wikipedia article before asking. – danijar Dec 19 '12 at 20:53

3 Answers 3

Yes. You should use everything you can that's pre-made. Even when you're making something very advanced you'll still use OpenGL. OpenGL is how you'll interface with the graphics hardware. It's critical.

share|improve this answer
well glad I asked before getting to crazy with it all, haha. thanks. – Paralytic Dec 19 '12 at 16:36
It might be useful also to learn some other toolkits, as Open Scene Graphs, which will provide you some extra pre-made features that might be really useful. – Dan Dec 19 '12 at 16:44
i'll look into it, thanks @Dan – Paralytic Dec 19 '12 at 17:01
Look at SDL too. I use it a lot and its easy. – Jonathan O Dec 20 '12 at 13:26

OpenGL is a library to perform 2d and 3d graphic operations on the video card. It's useful for creating high-performance graphic engines. Its direct competitor is DirectX, which does the same and some more stuff (like audio and input), but is only supported on Windows. Asking which one is better is a great way to ignite a flamewar in any game programming community.

OpenGL is fast and powerful, but also very complicated. When you are a total beginner at programming, it is likely much too advanced for you. You should rather use a more user-friendly library for now to do graphic output, like SDL or SFML.

share|improve this answer

If you'd like to make your life twice as hard as it is already in learning C++, then bring OpenGL into the mix as well... at the very least this applies if you are using modern, shaders-based (AKA "programmable pipeline") OpenGL eg. OpenGL 2, 3 or 4.

Even with OpenGL 1.0, it is easier but by no means a simple matter to learn OpenGL. So you should address your learning of C++ first and once you are more comfortable with the language -- which usually will take at the very least a couple of months to gain some small degree of proficiency -- and only then start looking into how OpenGL operates.

Depending on what sort of game you are writing (2D or 3D, as well as complex vs non-complex graphical effects), you may or may not need what OpenGL provides. For instance, SDL, Allegro or similar 2D C++ libraries may be vastly better suited to what you are trying to do. In some cases, even where you do need 3D, there are wrapper libraries that it make it much easier for you to do that work, than using OpenGL directly.

So no, under most circumstances, absolutely do not jump into OpenGL at the same time as you are learning C++. Get the language basics under your belt first, and make use of easy-to-use graphics libraries to start with. You can always replace your rendering code with pure OpenGL later -- if you need to.

share|improve this answer
