It's really not hard to do, and I would provide some sample code, but I'm a little lazy right now
Aww, hell, here's some pseudo-code:
float yaw, pitch, roll;//Some variables that will be in your camera class or wherever you want them //You could also just use a quaternion rather than those variables, then just multiply the quaternions. //I feel it's a little better to use yaw, pitch, and roll since you can keep track of your camera's rotations a little better (doesn't really matter if it's a free camera anyway) //I really don't know which is which with yaw pitch roll, but only two are important (I think yaw and pitch, yaw being up/down, pitch being rotation?) //Anyway, doesn't matter. Just find out which is which, add to them using input from a controller/keyboard, then create your quaternion Quaternion rotator = Quaternion.FromYawPitchRoll(yaw,pitch,roll); float camDistance = 5.0f; vector3 back = Vector3.Backward; back = Vector3.Transform(back, rotator);//Rotate our vector rotator *= distance;//Push it out a distance from the player) rotator += playerPosition;//Add the position View = Matrix.CreateLookAt(back, playerPosition, upVector);

Find content
Not Telling