Bluekkis: Well if you are determined to learn and want to make games yourself. Take this advice: Forget FPS and those engines for now and start small.
I can't really stress this enough since if you go directly to hard stuff, you can't make heads or tails of what you need to know and eventually just get depressed and scrap the idea. Make a text adventure or roguelike first. May not look like much but it gets you started and you can use the same constructs later when you move onto more complicated stuff with a lot more understanding.
ceeker: I would dispute this, but only slightly - I see what you're saying, but I've played around with making both, and the skillsets involved in making a roguelike and those involved in making an FPS are quite different - programming in 3D space is a totally different kettle of fish. If his goal is an FPS game, I would suggest that he stick to 3D space, since learning how matrices etc. work is pretty important if you plan to work with anything involving a 3D camera. Roguelikes can still require getting to grips with some complex stuff like search algorithms and so on, anyway.
But I'll confirm this:
Start. Small.
Maybe make a small game that involves driving a tank around a small 3D area and shooting at spheres or something. It won't be the best game ever, but you'll learn stuff from it. Build up from there. My first game was a simple remake of Space Invaders with a 3D camera.
On the other hand, making a text adventure or roguelike can be a lot of fun too, so I wouldn't can the idea if that interests you as well, sloganvirist -
I'd recommend
Ren'Py as a text adventure framework. It's really quite easy but you still have to program most of the game yourself (In Python, which is a good beginner language), so it's a good start. Look at making a Flash game too, maybe. A lot of programmers sneer at Flash/actionscript since it encourages some bad habits, but nevertheless, you can make a quite good game in it.
If you still want to stick with a 3D game, make sure you pick one of the more newbie friendly frameworks like Unity or (somewhat more difficult) XNA. If you try XNA, look at
these tutorials. Aim to eventually build your way up to C/C++, because that's where you can really do impressive things and what most of the powerful engines out there are written in.
But if you want to get anywhere, you'll need to learn some programming.
Well I don't absolutely know no programming language, I know some of this and some of that, but the only one I really knew well was Unreal Script, but that was only for UE1. Unfortunately, UDK won't run on my PC.
I am not that concerned about making a 3D game, as I said, I would like to make a side scrolling shooter, but using 3D models.