Print Story More notes from Game Focus Germany, 2008
Diary
By codemonkey uk (Thu Jan 31, 2008 at 03:39:19 PM EST) (all tags)
Part 2, Friday, continued.  Previously:

Now: "Challenges of creating a good first and third person camera system" - Mike McShaffry (Thief: Deadly Shadows / Unreal 2.5)

And coming soon:


  • "Inside the Unreal Networking Model" - Thaddaeus Frogley
  • "Collaboration FTW; What Game Studios and Game Studies can Learn from Each Other" - Robin Hunicke (EA), &
  • "Core Casual Gaming; How soccer mums came to play RTS games" - Stéphane Adamiak (Orange)



"Challenges of creating a good first and third person camera system" - Mike McShaffry  (Thief: Deadly Shadows / Unreal 2.5)

Unfortunately, as a speaker scheduled for the following slot in a different room, I had to leave this session early, so my notes are incomplete.

goals: Easy to Debug, Avoid Geometry, Create a cinematic feel, Avoid the player, Be data driven (designer controlled).

Thief problems:  World build for 1st person (tight, complicated spaces).  Support for 1st person also required.  PC (mouse and keyboard) & Xbox (dual stick).

Parameters: Orientation / Frustum / Dolly Distance / Anchor.

Goal: To let the player see what he wants to see.

1st Naïve solution: “Pole”.  Jumps about when backed up against complex geometry.  Frustum penetrates world geometry at angles.

Debug tool: Console commands.  Camera-camera, view shows the game camera frustum and trace lines.

Frustum is a physical thing.  A large frustum is hard to fit in the world.  Making it smaller makes it easer to place the camera in the world.

Not all object types should “block” the camera.

Geometry detection.  Cast multiple rays, select shortest location.  Smooth surfaces.  Bad movement (teleports/jumps).  Alternative: shape/volume cast. 

Ray rotation to avoid vertical seams.  Radius of rays increased during rotation of the camera (grow 8% of frame, shrink at 3% per frame).

Elasticity, vs none.  In which axis?  Thief was elastic only on the z axis to show vertical movement of the player character going up stairs.  Dolly on 1d spring damper.  Dolly out on a delay.  Interpolate through geometry vs teleport vs geometry - only time you should teleport.  Note, dolly to the geometry then teleport past it.

Full discussion: http://www.hulver.com/scoop/story/2008/1/31/153919/122