Quote:Original post by IKG
Actually, is there a small simple library for input too? I know it's just more work to use 3 seperate libraries instead of just OpenGL and SDL, but SDL just seems like too much of an "easy way out" with less credibilty - seeing how image functions can be done with it alone. Please no lectures lol.. I know what I'm doing is unnecessary but it's for practice so it can't hurt.
Alright, here's your lecture. You're being stupid and you aren't thinking this all the way through. You want a library that doesn't give you an easy way out? Well, then OpenGL is out the window. After all, OpenGL is an easy way out, a replacement for lower-level graphics control which is tooooo haaaaaard. Ditto with Direct3D, of course. Oh, and quit using the Windows API, which gathers input and graphics and all that into one "easy way out." You don't need it. You can make BIOS calls instead. That way, things will be nice and difficult and you'll get sick and tired of all this game development crap and quit.
On the other hand, maybe the reason you want to do things without an "easy way out" is that you really want to get experince with how things work under the hood, but without having to get endlessly bogged down in hardware-specific stuff. Good idea. Don't listen to anybody who tells you that you don't need to care about what's happening, because it isn't true. There isn't a single successful game developer out there who can't do things close to the metal when it's needed. So congrats on taking the right path.
The only problem is, you screwed up a little. You lumped SDL into the category of "libraries which keep me from seeing what's really going on", instead of the category of "libraries which let me worry about stuff that really matters". I can assure you, it is not in the former category. SDL is actually really good at stepping out of the way when you want to do things it doesn't support. In fact, SDL's support for OpenGL pretty much IS it stepping out of the way; with the exception of a couple of WGL calls, SDL has no idea how to do OpenGL. You do that yourself.
And let's generalize a bit from your mistake there, since the only real way to learn from mistakes is to apply their lessons as generally as possible. When evaluating a library to figure out which of those categories to put something into, it is a Bad Idea to look negatively at libraries which make things conventient. Convenient libraries are convenient because they are the result of experience. I have seen inconvenient libraries, and they are the result of people who shouldn't be writing them. And they take you further from what's really going on, not closer. Instead of looking negatively on convenience, look negatively on lock-in. SDL doesn't make you use SDL for image loading; you can do your own thing. It doesn't make itself the only way to do 2D graphics; in a pinch you can grab the HWND and use it yourself. This is quite unlike something like DarkBasic, which makes itself the only way to do things. The perfect library--both for learning, and for using--is one which will do things for you but will step out of the way and let you do them yourself if you want it to. SDL fits that mold.