Master's Thesis

Real-time Camera Control

The thesis is related to real-time camera control.

At first I decided to use Ian Horswill's Twig as a test bed since my supervisor (Arnav Jhala) is also interested in developing a better camera for Twig himself. Twig is an open-source library for procedural animation of characters in interactive narrative. But later after having tried out Unity I decided to use this engine instead as it is really good for rapid prototyping and it has a nice physics engine included which I can use for collision detection for the camera and Twig did not really have this.

I have also been inspired by Laurent Cozic's Master's thesis. He uses shot contributions for each object which could potentially be in each shot and thereby selects each objects to include in a shot. A functionality which Owen Bourne does not have.I have also been inspired by Laurent Cozic's Master's thesis. He uses shot contributions for each object which could potentially be in each shot and thereby selects each objects to include in a shot. A functionality which Owen Bourne does not have.

I am planning to implement the resulting camera system into the game Puzzle Bloom which I was part of developing during the one month DADIU production during March 2009. The game has potential of using an intelligent camera to guide the player towards important puzzle elements in the game. This game is developed in Unity which is another reason for me to use Unity to develop the camera system.

The current demo version of my thesis work is found here. Please note that the real version of Puzzle Bloom is found at puzzlebloom.com.

Here is the abstract for the thesis:
Many computer games, especially games of the adventure genre, require the player to solve various tasks or puzzles to progress in the game. Depending on the player's level of experience in playing games, the player might need help or hints on how to solve a certain task/puzzle. One way of giving hints to the player is using the camera as a helping tool. In the history of movies, cinematographic principles have been used for many years to emphasize and dramatize specific elements on the screen. These principles can be used in the same way to help the player notice current important elements in the game. However, not all players play the same way, for example sometimes the player wants to explore rather than complete the game, which of course the player should be allowed to do. A camera system, in dynamic environments should adapt to provide cinematic views to players while giving them freedom to control their point of view.
A method for automated camera placement is presented, which is based on previous work by Cozic for managing the view between the camera system's optimal view (the camera hints) and the player's intentional view by using fuzzy logic to choose view. An implementation of the adaptive camera is presented in a complete game with preliminary comparison of current techniques between current state of the art. 
My programming contribution of the thesis consisted of creating a fuzzy system to base the decision maker on, creating a camera system based on Cozic's work and Bourne's work to implement the decision maker method into and creating a simple event system to trigger when camera hints should be used. All coding was done in C#.

Links:

Author:
Martin Treacy-Schwartz