Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am a computer science student and I am developing with C/C++ and Python and I want to begin learning graphics tools to start developing with game engines, especially the Blender Game Engine. So what is your recommendation for me to learn and to read? And recommend me a road map for it.

share|improve this question

closed as off-topic by Krom Stern, Anko, jhocking, Trevor Powell, Josh Petrie Jan 6 '15 at 3:18

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

  • "Questions about "how to get started," "what to learn next," or "which technology to use" are discussion-oriented questions which involve answers that are either based on opinion, or which are all equally valid. Those kinds of questions are outside the scope of this site. Visit our help center for more information." – Krom Stern, jhocking, Trevor Powell, Josh Petrie
If this question can be reworded to fit the rules in the help center, please edit the question.

Possible duplicate:… – Jari Komppa Feb 11 '11 at 15:02
Sorry what has blender to do with game engines? do you want to use its format? – PhilCK Feb 11 '11 at 15:40
@Jari Komppa, yeah but i ask for a recommended road map not only resources @PhilCK, i means developing in the BGE – Islam Wazery Feb 11 '11 at 15:42
@PhilCK – Noctrine Feb 12 '11 at 1:23

Not looked into blender game engine for a while, but I'd have thought the only requirement to use BGE would be to learn how to use it, like any other program.

Firstly a Game Engine and Graphics Engine are very different. A Game Engine could be thought of as lots of little engines, graphics, sound, network, input etc... A Graphics Engine such as Ogre, focuses entirely on the graphics side of things.

The single most important thing is Maths. Maths, Maths, and Maths. Leaving aside the physics.

Vectors, Matrices, Quaternions, Ray tracing, curves in space, Projections stuff, Approximation methods, it goes on ...

The maths is platform independent and will be useful on ALL platforms.

Also pick a graphics API such as OpenGL or DirectX, I prefer OpenGL for platform sakes, but it doesn't really matter. XNA would do I guess if you'd prefer C#.

A good general book on Amazon

share|improve this answer
+1 cause this answers the topic of the question, math is very very key to graphics programmers above all other areas of game engines. – James Feb 11 '11 at 16:36
The opengl superbible has a great chapter specifically about the maths. It's also a great book if you decide to use opengl. – Spidey Feb 11 '11 at 19:55

You would be best served by learning how to use openGL off their site. It will introduce you to programming for graphics. Only after you are comfortable with openGl then move to creating a game loop and object manager.

share|improve this answer

Learning to be a good programmer and learning how to use the (relatively obscure and underused) Blender Game Engine are two very different problems. Almost so different that I think you should be asking two separate questions.

That said, learning the Blender Game Engine is like learning any other API or toolchain. Check out the documentation, read and understand it, and practice using it over and over until you are comfortable with it.

That general concept applies to learning how to be a good programmer as well. Generally a programmer will learn by first acquiring some basic skill with a particular programming language and then experimenting in the default environment of that language -- this typically means building text-based, console-IO type programs and games for a while. It sounds like you are there already and want to move beyond that.

At that point the programmer tends to start experimenting with windowing libraries or 2D graphics libraries. There's a big jump between console-based IO and 2D, window-oriented, event-based programming for some. Making games in this space that introduce the programmer to the fundamentals of linear algebra, which is a critical part of understanding the 3D graphics programming that many programmers eventually end up doing. Once a programmer has built a few 2D games, it may be time to consider learning 3D math and APIs (Direct3D or OpenGL, or some higher-level API provided by some engine or whatnot).

At some point during that whole process, which is very focused on the everyday minutiae of being a programmer, you will hopefully acquire a talent for larger-scale problem solving and for considering the design and architecture of the systems you build rather than just the "how to" of building them in particular languages -- this is the thing you want to strive for, this is where you start becoming a good software developer instead of a good code monkey.

In your specific case, PyGame might be a reasonable thing for you to start looking at.

share|improve this answer

If you're a computer science student, then find out what the graphics course is at your university/collage and its prerequisites. You'll probably want to take both optional and required prerequisites for the graphics, but you also need to get all of the prerequisites for the graphics prerequisites.

For example, the University of Waterloo's graphics course is CS488. The prerequisites are (CM 339/CS 341 or SE 240) and (CS 350 or SE 350) and (CS 370 or CS 371). Each of these will have their own prerequisites that you need to fit into your schedule.

While the specific courses are different for each school, I'd assume a lot of the content is similar. The UW graphics course requires students to build several small scenes and then a ray tracer. They then make a proposal for and implement their final project. You can get ahead in your education by going through the courseware for a lot of universities online: MIT, Stanford, etc... (MIT puts a lot of effort into making their courses available online.)

share|improve this answer
(In case you're wondering, I'm a UW grad, but I never took our graphics course.) – idbrii Feb 11 '11 at 17:14

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