|Disch, I started with that site (as you might have read above)|
Ah, whoops. No I missed that. Sorry.
|And I could not get the projects to build correctly. Something about setting up the environment REALLY confused me.|
OpenGL is weird because it (AFAIK) doesn't have an official SDK. So the easiest way to approach it is to use things like GLEW as he does in that tutorial. It is not as straightforward as it could be, but I haven't found any tutorial that makes it simpler than he does. All of the required files are provided via a link in the tut:
You just run premake as he describes, and it spits out project files for <insert your IDE here>. Then you just load up those project files and build them like they were a normal project and you're good to go.
| And I cant even build the first tutorial. (I cant set up my IDE to link to the libraries)|
Are you using premake? Just grabbing the source files and trying to compile them will be more of a hassle than it's worth. You really need to auto-gen the project files.
|Doesn't [NeHe] teach me methods that have been removed from the newer versions of OpenGL?|
Yes. Which is why I recommend against it.
|You think its better to jump directly into OpenGL rather then learn SDL/SFML/Allegro? |
I'm an advocate of "learn how to do what you want to do". If what you want to do is 3D... then learning 2D is an unnecessary step towards that goal. While coding 2D first might "soften the blow" a bit... coding 2D and 3D graphics are very different both conceptually and practically.
2D can be accomplished with simple "draw this rectangle here" calls... which is basically how SDL/SFML/Allegro abstract it for you.
Whereas 3D requires a broader understanding of the rendering pipeline, 3D space, shaders, etc. It's hardly ever as simple as "draw this triangle here".
What I do, personally... is I use SFML for managing the window, doing audio, and capturing input... then use SFML to do the actual graphics rendering. So in that
way... starting with something like SFML might work out because it'll introduce you to all the non-graphic parts of game programming... and then when you feel comfortable you can "re-learn" the graphics programming part.
|is it really necessary to do get the premake thing, the SDK and use those?|
The SDK: Absolutely. You can't use a lib without an SDK. At least not reasonably.
Premake: Only if you want to compile the tutorial example programs. I certainly would recommend it... but if you just want to see the source without interacting with the generated programs, then you don't need premake.
|I've not started 3D programming yet but I'm thinking about starting it, this all seems like a little much. |
Any library is going to require downloading/installing its SDK. That is very typical.
Most tutorials are going to make you jump through a hoop or two to build their example programs.
So neither of these are atypical. You should probably expect this.
The reason he uses premake is so that:
1) He doesn't have to distribute binaries (which would be platform specific and would require people to download and run misc executables, which might be malware, etc)
2) The code will work for any platform/compiler. Distributing just VS project files means only people with VS will be able to compile the code. Distributing with makefiles means only people with gcc+make will be able to compile the code. Distributing with C::B project files means [etc etc].
My distributing premake files, you can build with any IDE that premake supports. Which is virtually all of them.
|Iv heard of SFML, Allegro, and SDL on this site. Im just curious which one is most similar to OpenGL.|
None of them are at all similar to OpenGL. They use OpenGL as their framework, but they all abstract it beyond recognition.
Do not expect to gain any insight on OpenGL by using any of those libs. You will not.
|If you have success with that website, meaning you can get the tutorials built, could you give me a hand on the set up part?|
I've had success and don't mind helping you through it. Give me a sec to install C::B again and see if I can't make a step-by-step thing for you.