Many users of the Blender Game Engine at the Blender Artists community (www.BlenderArtists.org) have wanted to make an FPS (First Person Shooter) game. But there's no Logic Brick function for rotation of the camera caused by mouse movement. So you have to write a Python script. The problem is most users don't know Python.
This tutorial will not show you how to make a script, but how to set up a player with a script that I will provide (I DID NOT MAKE) The script was made by z3r0_d, a user from the Blender community. The script is licensed "Public Domain" so hopefully I can use it here.
Note: I'm assuming you know the basics of the Blender interface and the basics of the logic brick system (Game Engine) If you don't, then I suggest you don't read this tutorial becuase an FPS game is not simple. Once most users find out that Blender can make games, they want to make Halo. But then they end up biting off more than they can chew. So if you're new to this, I suggest this tutorial for the Game Engine: http://www.users.bigpond.net.au/blendage/pages/tutorials/tut6/maze.html
Ok. Lets get started. Open Blender and delete the default cube, camera and the lamp (X-Key) Then create a camera from the front view and move it up one grid unit. Then from the top view, create an Empty directly below the camera. Parent the camera to the Empty (Select the Camera and hold (Shift-Key) and select the Empty. Now Release the Shift-Key and press (CTRL & P) at the same time to parent the camera) This is what your setup should look like:

Now, Go to the Logic panel (
The purple Pac-Man) Make sure the Empty is selected. Then click "Static" This will bring a drop up menu. Select "Dynamic" then enable "Actor" and "No Sleeping" This will now apply the physics to the Empty. Now for Logic Bricks. Create keyboard sensors linked to AND controllers and then linked to motion Actuators. These are all the logic bricks to make the player move. Make it look just like this:

If it looks overwhelming, here it is with all the logic bricks minimized:

Doesn't look that intense now, does it? Now were going to make the camera look script setup. Add a mouse movement sensor and name it "m_move" no quotes. We do this becuase the script only recognizes a sensor named m_move. Then attach it to a Python controller and input this script: http://www.freewebs.com/lojimekworks/mouse.py in the controller (Right Click & Save Target As) After that, Hold shift and select the camera. Add a motion Actuator in the cameras logic bricks and link the python controller to it. Here's what is should look like:

Now were going to make a buttload of Properties. All of these are properties that have to be created to make the mouse script work. Just follow the image below and make sure there identical.

Ok. You are now finnished. Look at this image and make sure there exactly the same:

Now add a plane underneath the Empty and test out your player! If you did everything right, you should be able to move by pressing the W,A,S,D keys and moving the mouse to look around. You can experiment with some of the properties to change the way the player behaves or change any of the senors or actuators to whatever you feel like. In the script, there is an "xsensitivity" and "ysensitivity" that specifies the mouse sensitivity for looking around. Play with the numbers (they should be set to 10 and -10) You can set the mouse sensitivity you like. Here is what I've made with the exact same player setup:




Note: This image was taken from the player.
This player is very basic and is good for a first starter. If you're stuck or want to leave a comment, please go here: http://www.freewebs.com/lojimekworks/contactme.htm
Good luck and happy blending!