If you've decided that you want to learn C++ or even C#, go download the desktop version of
Visual Studio Express, and set it up for whichever language you are going to work with. Then if you want to learn C++,
here is a pretty good tutorial to learn the language. After you have a good grasp on programming, which will not happen in one day, if you want to start working with 2D games, one solution that is made for C++ is
SFML, which is very easy to use. If you want to mess with 3D gaming, then you'll either want to find 3D graphic models you can download and use, or check into the free
Blender 3D modeling software, which will probably take you a long time to master. Then you can start looking into some of the free 3D game engines to mess around with. A few choices are
Unity,
OGRE, and
Irrlicht Engine.
skittle :
dmaag54 :
I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.
I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.
But again, it all depends on what the OP's goals are. He said he wants to learn game programming. If all he wants to do is mess with simple 2D gaming, then we do have
PyGame, which makes good use of Python. But if he wants to go beyond what PyGame can handle, then C/C++, or even C# in some cases, is going to be his best bet. Most game engines and libraries are going to use C or C++ natively, and if you're lucky, they may have a wrapper for other languages, which is really just a hack.
I agree that Python is an easy way to get your foot in the programming door, but honestly, so is C#. And learning C# is going to do a lot more for helping him to transition to C++ later. I have experience with Python, Visual Basic, C#, C++, Java, and some javascript and PHP. What I've learned is that once you've learned the basics of how programming works, and have an understanding of Object Oriented Programming, you can learn about any programming language or API very quickly. Once you get those basics, it's much more valuable to hone your algorithm solving techniques, which can be used in any language.