I've been done with my c++ training and i applying it to some of my projects. I've started reading some OpenGL tutorials. What would be the requirement for creating a Game in 3D/2D?what would you prefer?
>What would be the requirement for creating a Game in 3D/2D?
For 2D, just some basic math and knowledge of the OpenGL API. Neither are very hard to come by. 3D is far more difficult; you should know stuff like linear algebra and be comfortable with working with lots of matrices.
Myself, I prefer programming with 3D, except my math knowledge isn't strong enough to deal with the more complex details of moving around objects in 3D space. So that leaves me pretty much with 2D.
If you've got good math skills, you can pretty well jump right into 3D programming. If you're unsure, stick to 2D; you won't hurt yourself by going too slow.
>Ive read some post and they talking about game engines?
One of the main things they do is encapsulate other functions. For example, they remove the need to work with the OpenGL API directly -- they provide a set of classes/functions that make using it simpler.
As well, they also provide other features like map loading, model loading, etc.
Engines are software modules (normally standalone) which perform a core functionality. Its not just the game engine, there are others namely Physics Engine (dealing with friction, viscosity etc), Sound Engine (playing sounds), AI Engine (managing the AI part of the game).
Normally you won't get to see most of these terms since they have specialized purposes and for normal purposes are encapsulated within the game engine. Segregating the functionality of the game into small components of engine is a technique commonly used for developing professional games.
C++ is the language in which most of the engines are written, not to mention C++ is the language predominantly use in the game development scenario. How fluent are you with C++? If you are a beginner, first consider learning C++ rather than jumping right into the fray with 3D game programming.
>then master win32 GUI (forms apps)
Why is that even relevant? It's true that polished games do need an interface that is a little bit more sophisticated than command-line arguments or the terminal, however, that is added at quite late stages in the development process and is not a hindrance to the learning of the graphics API.
Its proprietary content. You can at the most know the name of the engine it is using which would be normally a Doom III or Half Life II engine. Not many companies are into engine development -- its an arduous task, better left off to the pros.
Almost all the games out there either buy a engine or build upon an existing one.
>Almost all the games out there either buy a engine or build upon an existing one.
True, although it's also true that the companies which build commercial games from existing engines are almost always fully capable of producing a game engine themselves. The only reason they don't is time/money.