Im new at this forum, but I've been programming for quite some time. I wont tell you which programming languages to use because when it comes to video games its all about creativity; some will argue with me that one language is better over another which in some cases can be true, however with hardware constantly changing and additions to all the top language API's getting better and better, that should be the least of your worries. Your first few games will probably be prototypes on certain concepts so that is where you want to hit your home runs. Learn everything you can learn and then once you have that confidence you can move forward and say "This is the language".
I would probably say that there are a few minimum system requirements that you should have covered before venturing into 3D graphics.
If you haven't had any experience with programming, then that is probably the first step to take. The great thing about creating video games is that you can just create your own mini set of video games based off of what you learn in a programming language. I started using Java when I did my computer science BSc degree, its a fairly easy language to learn (similar in most ways to C#) and doesn't require you to worry about the gritty details on how to program.
If you know how to program and you are confident that you can architect a great system but just need the requirements to push your programming fingers forward, then I would just do tutorials. You want to learn how to build a video games IN GENERAL, all the steps you would normally take such as programming (AI, etc) to modeling, animating, maybe even sound. You will want to do some research for maybe an all in one solution sandbox that lets you do this learning.
I'm currently using Unity 4.3 with a great book I found to learn how to use Unity; it introduces all general topics of game development and takes me through the process of learning. If you want to use something specific to C++ then maybe you could use Leadwerks, it uses C++ and Lua scripting language. In the end, I would probably pace yourself with what you want to learn; obviously you want to learn everything, but you want to focus somewhere and then branch out; thats why I chose Unity.
Edited by d4n1, 30 December 2013 - 01:19 AM.