Need some advice


My name is Ehsan and I’m 21. Actually I just started learning OpenGL for about 1 month and I learned some basics. I wanted to ask you how many years does it take to me for learning OpenGL to design professional 3D Games?

I also need some advice in Learning OpenGL. I have The OpenGL SuperBible 4th edition published in 2007. The CD included with the Book contains some files like gltools.h or glframe.h written by the authors of the book. These files Contain functions which Does the math things or functions which helps for controlling the camera very easily and etc. Do you suggest me to use these simple written functions by the authors at first and then improve my code to my own written code after a while or you think it’s better for me to learn all the fundamental issues like dealing with mathematical issues or camera concepts by myself and not to use those written codes by the authors of the book?
I would be really appreciated for your help.

P.S: I’m studying Computer Engineering for Bachelor Degree.

It can take years to ‘learn’ OpenGL programming because the whole topic is so vast and complex. It helps if you are in a position to be taught something as this speeds up the learning process considerably. I have learnt everything myself by making mistakes and correcting them - painfully slow at times.
I’ve been working on a terrain rendering engine for about 6 years - and during that time OpenGL has evolved massively.
You need to set your self short,medium and long term plans. For example:
Short term: take other peoples code and play with them.
Med Term: Write own code and understand the first principles of camera, transformations, matricies, etc.
Long Term: Scrap all legacy code - rewrite using OpenGL 3.2 core profile using original, self-written maths classes, etc.

It also helps if you can read around the subject and not get too bogged down with implementation details. Try to get a braoder picture of how all the technologies fit together and them you can build a plan of how to build a rendering engine framework.

Depends what you consider a “professional 3D game” :slight_smile: If you want to create a AAA title like FallOut 3 then forget it, it takes more than one person for something like that simply because of the amount of work for all the resources (sound, models, textures).

You can however build your own 3D engine which won’t have all the features of something like the CryTek/ID/Unreal/Source/… engines, but can still do something impressive e.g. Love gameplay video isn’t groundbreaking in the technology, but rather in it’s use of known techniques.

Need to work out what your aim is. Become a developer on a AAA title and work for someone like Valve? Write your own games? Just learn stuff?

As for whether to use the code or not. Again depends on your goal. I sat down one week back at the start and wrote my “Orientation” class that I use for my camera. Looking at it now I can’t remember the maths…it just works :), but then I’m just playing around and my engine just renders and moves 3D objects. If you are serious about writing an engine you will need to learn the maths.

And +1 on the first reply. You can get quite far just slowing adding bits as you need them, but plan to scrap and re-write. You won’t get the design right first time unless you’ve a full set of requirements.

Well, I don’t think that big right now. I mean Professional like such this game:

It is written by bunch of students which I think Their result is professional considering their position(students). Of course even designing this game alone would have a lot of work and it need some people to participate in such project.

Hi Ehsan,

One more thing you should consider is the platform where your games will run; for example if your games will run in the PC and XBox consoles then you must consider XNA to create your games, it’s a framework with a lot of functionality implemented so you can develop your games in a shortest time than doing everything by yourself. The disadvantage of this framework is that it will run only in the PC and XBox consoles and it uses DirectX instead OpenGL.

On the other hand OpenGL is used in the rest of the game’s consoles like Sony Play Station, it’s free and it has a strong support by the community.

Hi Ehsan again,

I forgot to tell you the most important feature of OpenGL; it’s cross platform what means that it runs in Windows, Linux, Mac OS, Unix, etc.

Some studies seem to suggest that to become an expert on anything it will take you 10.000 hours of work/practice.

How is the simple part, just start making games.
Go to and learn the openGL basics, then start doing remakes with your own twist of known games like tetris and pacman, the simpler the better.
The rest will come pretty naturally, when you feel like you can do something bigger, you will, just don’t go around thinking it all has to come at once.

The platform is the last thing to consider and XNA is out of the question, stick with what you have in front of you.

I like coding with OpenGL. It is free and I feel more comfortable with that…

Thanx Guys