Getting Started with Graphics. Help?

Started by
7 comments, last by studentTeacher 10 years, 7 months ago

So I just polished off the C++ for Dummies 7 in 1 book and have Michael Dawson's text well behind me, and I'm ready to attack a game. Problem is, neither of these books touched at all on actual graphic presentation.

Where do I go from here? Win32 seemed logical, but I keep hearing that it's inferior to OpenGL. OpenGL seems viable, but the tutorials seem fragmented all over the internet and I'm unsure even if there are programs/plug-ins I need to download, or even where to get them.

Looking for some guidence here on what to pursue, where to get it from, and how to learn it.

Advertisement

First of all, there's a difference between Win32 and OpenGL. OpenGL is a graphics API for rendering triangles, while Win32 is a system API for stuff like showing windows, taking input, etc. The opposing API to OpenGL is DirectX, and I certainly wouldn't say it's inferior. Likewise, the Linux alternative to Win32 is X11. Note that you need both system and rendering APIs if you take this route.

I don't recommend touching Win32 or X11 unless you're extremely serious about some kind of hardcore game engine, which is about the worst decision you could make. Generally, I'd recommend SFML or SDL, as they abstract windowing and system-level details so you don't have to worry about them, as well as simple 2D rendering stuff. They both also expose OpenGL for when you need to do some kind of heavy-handed 3D or post-processing stuff as well.

I'm not sure of the state of OpenGL on Windows. I think you need to get the headers, which should be all you need. There's a good chance that libraries like SFML will either come with that or tell you how to get them.

I'd suggest looking at SDL (though I haven't used SFML or GLUT -- don't have advice for those...). I've used it quite a bit over the last year, and the nice thing about it is you can make hardware-accelerated games without even touching OpenGL! It's great for starting with your first few games, and from there you can even stay within SDL and learn how to use OpenGL with SDL while still avoiding the System mumbo jumbo. It's definitely saved me lots of time getting things up and running for a prototype -- I've had 3D game prototypes (rough, but playable) up in less than an hour thanks to SDL because it makes window creation, management, and resource loading so easy to do.

Once you get the hang of things with SDL and OpenGL, then take a look at System programming, if that's what you're heading towards. Don't feel like you need to take that route, unless you know exactly why to take that route, too. Don't jump straight to the hard stuff; let someone else do some of the hard stuff so you can focus on the more important stuff -- the game, the graphics, etc.

Just my two cents....Good luck :)

--ST

OGRE3D is a pretty good place to start. It's a free graphics engine (well nothing is really free but it's damn close). It leverages either DirectX or OpenGL (your choice)...once you understand how it works you can experiment with the existing underlying engine code. That would be much less overwhelming than learning OpenGL or Directx or even SDL straight out of the gate.

If you want to tackle the basics of a game engine either for learning or you want to make your own game entirely from scratch, I'd say go for OpenGL. Unlike DirectX it's cross platform. It's not as well documented and you can find lots of conflicting tutorials such as ones that use old deprecated methods.

If you want to go further, look into GLFW3, GLEW, OpenGL, and SOIL. Remember that these are just for graphics and user input. You'll also need things like OpenAL for sound and maybe other libraries.

Thanks for the help so far, all of you. I'm truly grateful.

I'm trying to install SDL right now. I downloaded the latest version (SDL-2.0.0) and tossed the VisualC foldier right into my Visual Studio folder. I opened the SDL_VS2012.sln file as the instructions indicated and let it do it's thing. It built a bunch of solutions and says it placed some files here and there (not sure where.)

The rest of the instructions seem disconnected though. It says to build the .dll and .lib files, but I can't find them. All the folders contain either .vcproj or .vcxproj files. In the compiler I see a ton of files for .h and .c, but attempting to access them throws me an error saying that they don't exist (and indeed they don't.) Not quite sure where to go from here.

Edit: I found a youtube video that helped me out on this problem. I've yet to actually fiddle with SDL, but we'll see where this takes me.

I'm at work right now, but if no one helps you by the time I get home this evening, I'll check my setup and let you know what might be up. If someone else answers, then I thank them for saving me some work :)

-ST

P.S. I usually do the manual setup so I know where the files are. If you don't know where to find them, take another look at the instructions. You might just go to the build settings and link the .dll and .lib by its name (a.k.a. "SDL.lib", etc. -- not necessarily the whole file path), not by the exact folder or such (assuming that it placed the files in the correct folders).

Well my problem was that I downloaded the wrong files and thought I would be able to just run a program and they'd be permenant plug-ins for C++. Nope. Gotta be included manually. I found and downloaded the include and lib files seperately, but I clearly have a lot to learn still.

Right now I'm doing other things, so I doubt you'll hear back from me on this issue today.

Yea, gotta do that manually. The SDL website has plenty of good tutorials, you can check those out too! :)

This topic is closed to new replies.

Advertisement