-a 3d app (max, maya, blender, XSI, etc)
-create a high poly model
-create a low poly model
-create pickup models
-create a low poly skin
-create a highpoly skin
-create shooting sounds
-create reloading sounds
-rig the 1st person weapon (you would need either a mod team or create your own arms etc)
-rig the 3rd person weapon
-animate the 1st person weapon
-animate the 3rd person weapon/playermodel
-create the necassary code files
-insert all into the editor
done