Is your intention to make the video game, or to make the game engine?
My suggestion would be to look at middleware, which takes a lot of the work out of it. After all, someone else has already done it, no need to reinvent the wheel if it does what you need. There is middleware that is basically complete game engines (Unity, Unreal) and there is some that does specifically lighting or physics.
This day and age, most independent developers utilize these engines, those that write their own are becoming very rare, and many are going extinct (such as the case with Two Tribes http://twotribes.com/message/rive-is-our-final-game/
I would personally recommend getting familiar with all the tools that are available to a game developer these days. What platform are you aiming for? Any specific operating system? Do you want controller support or just keyboard? There are a lot of questions that need to be answered in able to find the proper tools before you can even start making the game.
What is the outline for your game? Do you have a story, or is it more arcade? You said first person shooter, what other games would it be similar in feel to? etc.