I am in 6th semester of my Computer science bachelor degree program, Working as Intern in a start up company. I started game development using AndEngine, things are going good because I have good hold on OOP and Java.

But I don't have any experience in OpenGL programming and neither studied a course of computer graphics. I want to develop 3D games and there are tools available like Unity3d etc.

My question is should I master tools or take online lectures of computer graphics to get started on basics. I want to continue game development as my profession. So what should I do? start learning from scratch or Learn already built tools and just dive into development?

I see successful designers with no background of academic study, just did a photoshop course and now they are in the softwarehouse and making websites, sprites etc.


closed as off-topic by BlueRaja - Danny Pflughoeft, Anko, concept3d, Sean Middleditch, Josh Feb 3 '14 at 16:24

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started" or "what should I learn next" cannot reasonably be answered with anything other than opinion polling and therefore are off topic for the site. For more information on how to ask a better question, see the help center" – Anko, concept3d, Sean Middleditch, Josh
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    \$\begingroup\$ They go hand in hand in my experience. It like an iteration - learn a bit about tools, learn a bit about concepts, iterate iterate... \$\endgroup\$ – Philip Aug 1 '12 at 13:50

The simple answer is: you'll have to learn both concepts and tools. First, you should learn the very basics of game mechanics and game design. Then you'll be able to decide, which direction would you like to go next. Keep in mind, that tools won't do any good without knowledge of the concept.

To use your example: if a graphic designer doesn't realize, that the sprites he has to make are going to be rotated randomly in the game, then he might screw up the shading. If he doesn't know that the sprites need to have transparency, he might end up creating them with colored backrounds, or just simply save them in BMP or JPEG.

So the question is really: how much time should I spend learning concepts and tools, versus creating something marketable. And there's no good answer for that. It depends on your goals and a million other circumstances. If you want to produce new apps every 3 months, then learn about Unity or some other similar tool. If you want to get a bit deeper, then learn and use XNA. If you want to write your own engine, then learn C++ and DirectX or OpenGL.

My personal recommendation is to spend 1/3 of your time on learning about a concept, 1/3 of your time designing and planning, and 1/3 of your time implementing. These numbers aren't based on any scientific research however. Once you really get into it though, you'll feel which areas you need (or like) to spend more time on.

  • 2
    \$\begingroup\$ I think your first 3 lines were the real answer. The rest seems a lot like redundant to me. But you get my vote. \$\endgroup\$ – Shoe Jul 31 '12 at 13:27
  • 2
    \$\begingroup\$ Thanks @Jeffrey ! Yes, the first sentences are basically my answer to the question. I just don't like to post too short answers, and some examples might make the concept more understandable. \$\endgroup\$ – Marton Jul 31 '12 at 13:33

If I were you, I would question myself about 'What do I enjoy doing for a game?'. Do you want to be a graphics programmer or a game programmer? Do you enjoy fixing those odd pixel in the screen that doesn't fit with the rest of the screen or do you enjoy building the game and don't want to be really bothered by the graphics implementation?

If you're more into graphics, learn a high-level graphics API first, like Ogre3D, Irrlicht, Horde3D, etc. Once you grasp high-level concepts, take your time and dive into details.

If you're looking to game development, learn to use game engines like Unity3D, Unreal3D, etc. They've done the hardwork of getting the engine implementation right and you can concentrate on the building the game itself.


Vite Falcon touches one of the most important aspects of any sort of skill development. What are you most interested in? What makes you stay up way too late just to learn a bit more or just to solve a problem stopping you from progressing? If you feel that passionate about an area, then you have the most important basis to learn more.

Other than that I think Marton gives you good advice in his first part - you need both. I've been teaching 3D graphics, graphics design, digital imaging, programming and many other things. There is always that tough question - what should come first, the theory or the practice? Should one first learn why things should be done in a certain way, and then learn how to do it, or should it be the other way around? And I have yet to find one answer that fits all. I guess it very much depends on you and what you prefer yourself. Some want to get a good theoretical base before they start doing anything practical where as others just want to jump in and start making things. If anything, I personally would emphasis the practical part, since no matter how good your theoretical skills are, you won't do anything better than what you can achieve through the tools you use. The other way around, however, is not necessarily true. As you yourself pointed out there are quite a few successful designers without any academical skills.

Best of luck on your path into a very challenging and rewarding world. ///JmD


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