   So very confused about opengl and its versions
  If this belongs in the for beginners section, please move it there.  Thanks.I am a college student who knows c++ and I want to get into the world of graphic design  for games.  I love games and want to program them.  I want to work with opengl for its cross platform nature as well my friend working on it.  I was doing research on books and i found something out about opengl that i did not know. There are multiple version(Keep in mind i am very new to it) and that the newer versions depreciate the older versions(I heard 3.1 has features that will over ride 3 and 2 and below).  The problem is all these books and tutorials i find are the older versions that i think will be depreciated.  I found what is called the redbook online but those reviews were fairly negative and said that the information is out of date already.How do I ,a beginner to opengl, find the newest and non depreciated books and tutorials on opengl?  Any recommendations?Better yet, am i wrong?  Can you still use code from the other older versions found online or in other books?  Will they be outdated or am i completely going on hear say.thanks   
  The development of OpenGL API goes like this:1)There exists a core specification of required opengl commands. These are guaranteed (theoretically) to work for any OpenGL implementation (a graphics card for instance).2)Hardware companies implement new features/technologies which are accessible through extensions. These extensions are independent of the "version" of OpenGL you have. If the hardware supports a feature, you can use the extension. 3)The ARB reviews available extensions and chooses the most important ones. Then they will declare a new version of OpenGL with those commands moved into the "core profile". This means that these must be implemented before a hardware can be considered to support "OpenGL X.X", where X.X is the version where that extension was promoted.4)Repeat from 1)The only point of the "version" of OpenGL is to give a coherent idea of what features are available. If you are writing code for OpenGL you don't really care that much what "version" you are writing for, as it all looks essentially the same to the developer. You can just check at runtime what features are available on the end user's hardware, and based on what is supported you can choose what rendering techniques you will use. If a tutorial is old and out of date you may be rendering with old inferior methods but it will still work. You can write an OpenGL 1.0 application today and it will still run, it will just run crappy and be very inefficient.That said, you should try to seek out up to date tutorials (though I don't have any to recommend unfortunately), or else you will be learning out of date techniques. However even if you start with old tutorials you will still learn, and it is not that difficult to learn the new and improved methods.;  If you want to see what features are deprecated, read this Quick Reference Card;  The wiki has some basic tutorialshttp://www.opengl.org/wikiclick on Tutorials.Of course, there is a lot of information on the other pages as well   