…learning C++! Of course when I say “learning C++” what I really mean is “learning to express the OOP principles I’m already familiar with in C++’s parlance”, so it’s not like I’ve gone from zero to a working knowledge in seven wee evenings. We’re also talking games development, which essentially amounts to defining object classes and populating linked-lists with them (and not much else), and having such a narrow remit certainly helps. In fact the hardest thing, by far, was getting a working development environment up and running in the first place: Visual Studio is superlative, but I wanted C++ not C++.net; DevC++ throws a wobbler if you have a prior MinGW installation (which I do, for compiling BlitzMax modules) and there are an overwhelming selection of DevPaks for SDL and Allegro (because I wasn’t going to learn C++ writing console apps); Code::Blocks looks lovely but its project wizards are confused by just about every library you direct them towards, never being able to locate the required files. It’s a good job I don’t have any hair!
So, for the similarly inclined, I’m going to quickly outline what I went with because trawling through the available options ended up being a couple of grim days’ work. Here we go:
www.cprogramming.com: For actually learning the language, this place is pretty good with straightforward, easy to follow examples. Again, this is from the perspective of learning the lingo rather than the concepts — personally I wouldn’t actually want to try to grasp OOP via C++ (I’d opt for something higher-level, like BlitzMax) but YMMV.
iMiniB3D: It was the example source code that comes with iMiniB3D that gave me an idea of what clean, sensible C++ looks like. Even if you’re not interested in iPhone development, it’s worth a squiz.
Code::Blocks: Sure, the project wizards for SDL, Ogre and whatnot are squiffy, but as I wound up going with a different media library with a manual setup (see below) it ended up not mattering. It’s a really sweet editor.
SFML: Simple and Fast Multimedia Library is an SDL/Allegro-alike that is just exceedingly clean. You’ll notice I’ve linked directly to the Code::Blocks/MinGW setup tutorial — take the fact that it needs a particular version of MinGW seriously because, from (bitter, bitter) experience, it won’t work otherwise. I would recommend using Search Directories for library installation rather than copying files (in fact your Code::Blocks directory won’t even resemble the one in the tutorial).
irrKlang: Cleaner than BASS and supporting more formats than SFML’s equivalent, irrKlang is a thoroughly decent choice for audio. It will load files from MoleBox packages (which I couldn’t get BASS to handle) and the license allows you to compress the dll (which will UPX to about 200k).
The above should be all you need to get going and write, say, an example little game such as, ooooooh, some sort of Space Invaders clone?

I’ll upload that to the ComPile once I’ve finished writing a lil’ tunelet for it (EDIT: Voila!), but we’re not quite done with the links yet! One of the nice things about SFML is that your window is already an OpenGL context, so it’s an excellent springboard for leaning raw OpenGL (indeed you can even go mySFMLImage.Bind() to bind a texture, and that’s on top of the delight of having SFML’s image laoders). Now there’s a school of thought that says you should no longer learn fixed-function OpenGL but, as I’m specifically interested in OpenGL ES (and therefore iPhone) compatible code, I didn’t pay that advice any heed. Bearing that in mind, I found the following places useful:
Zeus CMD: Nice set of tutorials specifically aimed at OpenGL ES. You’ll have to amend the code a bit to get things running under SFML (‘glOrthof’ becomes ‘glOrtho’, for example, and there is no ‘gluLookAtf’ out of the box) but that’s half the fun, right? RIGHT?!
The Game Programming Wiki: A comprehensive set of tutorials (and links to other sites) with some very useful 2D framework code.
Have fun!