There're couples of top-notch free 3D game engines in the markets, ie:
and many more. By starting with the game engine, you focus your work on game itself, and not the engine.
After some tries-and-errors, I chose to start with Unity. Its UI looks simple and the requirement on hardware spec is low, if compare with CryEngine & UDK. The ability to export to multiple platforms, likes Apple's iOS & Google's Android, is also another reason I choose it.
For those FPS lover, I highly-recommend to try the Unity3D with this book: "Beginning 3D Game Development with Unity 4", by Sue Blackman.
Not only it guides you with some basic concept, it also comes with chapters on building a FPS game on one of the level from scratch. And for the past few months, I was following all the chapters closely and it's quite fun.
Here are some of the screenshots from the sample of the book (credit to the author)
Impressive with the graphics, huh? Why waits then? :)
You can reach the author here, and sometimes she is at Unity forum as well.
You can read some free excerption from Google Books too.
Two things bear in mind:
- Unity is getting updated frequently, some of the old features might not available (or even works, a.k.a bugs) in new version. To follow the chapters in this book, please download a suitable version 4.2.X from here.
- There're couple of erratas in the book, my suggestion is: please open the finished chapter along with you own project, side-by-side, to compare whenever something's wrong.