Register Calendar Members List Administrators and Moderators Search Frequently Asked Questions Home

Game Coding Complete » Presentations » Thief's 3rd Person Camera » Hello Guest [login|register]
Last Post | First Unread Post Print Page | Recommend to Friend | Add Thread to Favorites
Post New ThreadPost Reply
Author
Post « Previous Thread | Next Thread »
mrmike mrmike is a Male
Administrator




Registration Date: 12-09-2002
Posts: 1192
Location: Austin, Texas USA

Thief's 3rd Person Camera Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

This presentation was originally given at Game Focus Germany 2008 in Hannover - it covers the 3rd person camera technology I wrote for Thief: Deadly Shadows during my stay at Ion Storm.



The presentation has almost two dozen movies of bad camera movement, tolerable camera movement, and great camera movement (if I do say so myself). Each section shows what happens to a camera if you dont handle a particular case of third person camera movement, such as linear movement, fast rotations, and negotiating geometry in the environment or the player.

Attachment:
Thiefs3rdPersonCamera.zip (52452 KB, 446 downloads)

__________________
Mr.Mike
Newbie Author

01-28-2008 11:59 mrmike is offline Homepage of mrmike Search for Posts by mrmike Add mrmike to your Buddy List
steelblood_relic steelblood_relic is a Male
Member




Registration Date: 01-22-2006
Posts: 83
Location: UK & Sweden

Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

It's always interesting to watch how different things are solved in AAA-games, thanks for that Mr. Mike!

That involved a lot more problems than I imagined, though I didn't think it would be easy. One thing I could not understand watching the slides, is how to make part of the geometry not blocking the camera.

Did you make some code for finding out which geometry that should not block the camera, or does that have to be defined in some game editor by level designers? Because I can't see any good way to solve that in code, that doesn't also add lots of bugs or include a lot of really ugly hard-coded stuff (or a combination of the two)... Wink

__________________
"There are of course many problems connected with life, of which some of the most popular are: Why are people born? Why do they die? Why do they want to spend so much of the intervening time wearing digital watches?"
-Douglas Adams

01-30-2008 14:16 steelblood_relic is offline Homepage of steelblood_relic Search for Posts by steelblood_relic Add steelblood_relic to your Buddy List
mrmike mrmike is a Male
Administrator




Registration Date: 12-09-2002
Posts: 1192
Location: Austin, Texas USA

Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

The non-blocking thing was just a property that was set on object archetypes by the designer. Butt-ass simple.

__________________
Mr.Mike
Newbie Author

01-30-2008 14:57 mrmike is offline Homepage of mrmike Search for Posts by mrmike Add mrmike to your Buddy List
steelblood_relic steelblood_relic is a Male
Member




Registration Date: 01-22-2006
Posts: 83
Location: UK & Sweden

Big Grin Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

Hehe, I see, the KISS principle is the way to go then.

__________________
"There are of course many problems connected with life, of which some of the most popular are: Why are people born? Why do they die? Why do they want to spend so much of the intervening time wearing digital watches?"
-Douglas Adams

01-30-2008 15:15 steelblood_relic is offline Homepage of steelblood_relic Search for Posts by steelblood_relic Add steelblood_relic to your Buddy List
rezination rezination is a Male




Registration Date: 05-03-2005
Posts: 580
Location: San Francisco Bay Area

Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

I refactored our whole camera system in Rat Race and I can tell you, it's hack city in there.... I'm going to pass on this presentation to one of my co-workers who's now in charge of implementing the 3rd person chase cam that will be used for most of the game.

The camera is one of the easiest things to implement, but one of the hardest to implement well.

Mike: Have you thought about giving more programming lectures at GDC?

-Rez

01-30-2008 15:48 rezination is offline Homepage of rezination Search for Posts by rezination Add rezination to your Buddy List AIM Screenname: krazznoozle YIM Screenname: therezination
mrmike mrmike is a Male
Administrator




Registration Date: 12-09-2002
Posts: 1192
Location: Austin, Texas USA

Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

Heh - I submit programming stuff from time to time but my production stuff is what usually gets accepted. When you've got people like David Wu and Chris Hecker submitting sessions, I can't really compete!

__________________
Mr.Mike
Newbie Author

01-30-2008 15:54 mrmike is offline Homepage of mrmike Search for Posts by mrmike Add mrmike to your Buddy List
Kain


Registration Date: 12-18-2002
Posts: 540
Location: Austin

Reply to this Post Post Reply with Quote Edit/Delete Post Report Post to a Moderator       IP Information Go to the top of this page

Awesome... I stop visiting this forum for a while and I come back to find coolness like this.

Rock!

I'm definitely feeling the notion that a camera should not be a giant switch statement in an update tick but an actual state machine with bookended enter and exit methods for every behavior transition involved. Going one step further.. I believe that a camera should be thought of as an AI. Every science that applies to AIs can apply to a "cameraperson" AI. Naturally, going with something like Jeff Orkin's goal-weighted AI work might be cool, but it also might be overkill. But man... it sure would be nice to have a camera controller that fit right into the AI system.

02-07-2008 08:15 Kain is offline Search for Posts by Kain Add Kain to your Buddy List
Tree Structure | Board Structure
Post New Thread Post Reply
Go to:

Powered by Berning Bored 3.1.4 © 2007
Content Copyright 2002-2009 (C) by Mike McShaffry