Alternatively, get a good knowledge of the 2D, 3D, game mechanics and programming concepts in general, then you can take that to ANY programming language (within reason). You need to learn one language to get started with the concepts, but it doesn't really matter which language you learn first, as long as you're just doing it for the sake of learning, and accept from the beginning that you're not going to make a 'great game' the first, second, third, maybe not even the 10th time you start.
C++ doesn't have any 'builtin' graphics functions, so you have to pick a graphics library, e.g. for 2D games you'll want to learn either SDL, DirectDraw, or Windows GDI, for 3D games you'll want to learn either OpenGL or DirectX. The advantage of a language like say, Java or Phython is that there are either 'builtin' or at the least 'de-facto' libraries for almost everything you need to do with graphics. That's only really a short-term advantage though, IMHO, because getting hold of and configuring libraries is the easy part.
Moderator
Featured Poster
Reputation Points: 522
Solved Threads: 64
Veteran Poster
Offline 1,091 posts
since Jul 2006