Hello I just made a smart camera system that is using very high level functions (e.g. Turn, Position, Rotate) and it's wrapped in a very simple FPS example. The bad news is that I fight with my code for the last two hours and I've reached a dead end, now I'm too lazy to finish it :P. However, it would be very cool if you guys can modify everything from scratch in order to make it better.
I forgot to do it... you'll have to comment out something by yourself. Go to the 'Camera' class, locate the 'Update' method and comment out the method call 'Turn()' in order to run it properly (else it will spinning all the way around).
Constrols: Use WASD, Arrows, Space and C to move around.
P.S. Warning... very dirty code. ;)