I am a university student.
I want to work in the game industry.
Now I am thinking about either practicing my openGL skills or learn a complete new game engine during my time in school.
I will do this by developing a smartphone game.
I am debating over using just openGL or using a game engine.
If I learn a game engine, then if the company I want to work for does not use that game engine, then wouldn't it be a waste of time to learn that game engine now instead of solidifying my openGL skills?
So, openGL or game engine?
Thanks.

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

4

Do whichever interests you more. Keep in mind that either way you go, having something completed and presentable is more impressive than saying "I know a bit of OpenGL" or "I have experience with X engine"
–
JimmyFeb 27 '12 at 7:19

3 Answers
3

What Jimmy said is so true, though with most graphics engines (it's important to distinguish it from a game engine), you'll want to modify some code to suit your game, sometimes you'll have to fix a broken feature. Beside that having knowledge of OpenGL will mean you have understanding of how 3D graphics programming works, which is essential.

At the end of the day, which ever engine you choose, the engine is "just" a library, being able to work with it is important if your company is using it, but, i'd say, it's alot more important to have an understanding of the underlying technology, especially that you can do learn it now, when you have time and no deadlines. Knowledge of OpenGL will let you branch out more easily, while the solutions of one engine designer won't always translate to other engines.

It all depends what you want to be doing, it may be that you just want a finished game you can show somebody. Coding in OpenGL will mean that you won't see a game in a long time, it's important to keep that in mind. It doesn't help, that when you create your own engine, if you want tools for it, you have to code them yourself.

There isn't a definitive answer, i'd say, if you're a beginner or intermediate and you want to learn an engine (or an API) while making your first, or second game, don't dive in to OpenGL, simply because you don't know what's ahead of you, there's ALOT more to a game than just graphics. It's better for your morale if you try to bite what you can chew. Finishing a project is alot more important than a list of features and unfinished code.

Learn OpenGL, you don't have to be a pro, just get the feel of it. Try setting up a scene with rotating triangle, cube, texture it, play with blending, play with perspective and orthographic projections (2d and 3d games), learn about display lists, vertex arrays, VBOs... do some toy projects with it like nehe tutorials, then skip to learning an engine of your choice to be more productive with your own game projects. All engines are just layers on top of OpenGL or DirectX so it's good to know what is under the hood and how it behaves.

You should play around with OpenGL so that you can gain an understanding and appreciation for how graphics are really created on the screen, however if you're engaging in any project which you actually want to release to the public and not go mad, I would recommend finding one of numerous libraries out there that will abstract OpenGL even a little bit for you.