ok then im forced to write this long loooong post...read on:
Just like in the real life the easy way usually results in pour outcome, and the harder one is more awarding.
Same in game making.
You CAN ACTUALLY make 3d games without NO PROGRAMING at all. There is a software where you make your models and animations, and then basically create your game using Drag-And-Drop. http://www.fpscreator.com/ is one example if you want to know....but I HIGHLY RECOMMEND you to forget about it. It limits you. And those limits are really tight. All you can do are those functions that were included in the package(run stand stop shoot for example). No fun, no originality. All games made with this kind of soft are ONe and THE SAME game, only that all models textures and maps are different, and besides that, they are no fun, And if that is not enough....Not only your friends will dislike you for a game that stinks (or if you have programmer friends- for using this technique), but you will get NOTHING out of it, you will not learn new programing tricks or something like that, so you will be wasting time.
If you want to make good games you wil have to spend at least the upcoming half of year on learning programing.....believe me ITS WORTH IT 100000 TIMES!!!!. Well if you still want to make games then read on
So you do want to make games...good.
Now, First you need to learn some programing language(this is 99% of whole learning process). All good games (even commercial ones like Half Life2(which is obviously the best game ever ) are made with c++)
C++ is the most common choice. However for some people (not all) it's better to firs learn simpler languages , like pascal. If you will do this for say 12 hours a week (2 hours a day and free on Sunday) you will be able to do cool stuff in hmmm...3-4 weeks. Then you can pass on to c++(or like i said above, for others its easier to move on right to c++)
You do understand that you need compilers. For c++ you said you have visual basic (i think best choice currently), and pascal is free.
When you get the basics of the language (you can write programs that do some sorts of calculations and operations, not games) you can then move on to 3d. For that you will need directX sdk( http://www.microsoft.com/downloads/details...;displaylang=en )
If you know a bit about programing: directX sdk is a (big) package of code that describes operations about 3d(tels the hardware how to load models, how to move them, and how to do everything that is associated with 3d, as the normal languages dont have these functions on their own.) and other effects(like pixel shading). When you write a game you dont have to write thousands of your own lines to say load a model, instead you only write a command from directX library and when computer has to execute your comand it executes all those lines (that you never had to write yourself).
Now you can work with graphics, but you cant really do nothing interesting. You can tell your pc to display a model, but you cant tell it to interact with something because neither directX nor c++ (nor your pc) doesn't know how to do that. So you have to write what is called the game engine. That is a code that is the Heart of your game, say your player hits the fire button. First your game engine notices that the fire button was hit, then it sends comand to directX to create this effect, then it calculates what happens after that (if the bullet hit anything and what happens after that and so on(this might be where physics engine comes int play, read below)
Also there may be a seperate physics engine. It would solely calculate how things react to one each other, if they fall, fly, hang, or bounce of, or if that wall would have been demolished after explosion or not and so on.
In brief: Game engine does all the thinking and tells what to show on screen(directX). Physics engines can be just a part of the game engine, not a separate one.
Now no need to be scared, you don't have to write all this. There are plenty of games engines you can download from the net. Like i said earlier irrlicht and newton are ones i used long time ago, they were nice then. ( http://irrlicht.sourceforge.net/ ) ( http://www.newtondynamics.com/ )
And not to mention you can get source codes and modify it yourself, add functions, and this way make your own game engine.
Ok, i think thats all there is to it, but i may have forgotten something, or maybe you have some more questions. Feel free to ask again.
OMG, i wrote whole darn book here, sorry admin, when i was writing it it looked like it ain't that long