The University of Sheffield
Department of Computer Science

Adam Johnson Undergraduate Dissertation 2000/01

"Game Physics"

Supervised by A.Watt

Abstract

This report details a particular approach to writing games with realistic physics by making use of licensed physics technologies. We take a brief look at some of the problems faced in modern games programming, with reference to physics in general. By looking at the scope of the problem we show how a physics engine is essential if we are to avoid too much programming. Once we have our study, we will be using the Ipion Virtual Physics API to write a simple car simulation framework. For added effect, we will implement some features on our landscape to demonstrate the power of licensed physics. As is common with car racing games, we will drop solid moveable entities on the map to demonstrate impact resolution and show how easily we can achieve this effect.

A key aspect in our critical evaluation of Ipion will be the ease with which we can use it, the quality of the results we achieve, and the potential for future enhancement. Our analysis will be divided into very clear phases, to allow us to stop and reflect on our software. The first phase will look at physics in general, and some of its problems. We move on to look at how Ipion might help in simplifying the task of writing a car racing game. Further, we look at how to improve the quality of the result by connecting with a standard graphics API. This places the details of the graphics back in the hands of the programmer, and allows for more freedom to enhance the game. Finally we take a theoretical look at how we might improve the simulation further by connecting to an industry class graphics API, followed by how we might improve the physical simulation itself.

A conclusion must be met, and we will analyse the system with reference to the amount of work needed to achieve modest results. In this case we need to look at how much work was actually needed to get a car working on a simple map. Obviously, any critical review of the product must have some metrics, so we have to make clear what our targets are. Specifically we are looking for speed of development, clear and concise code, reasonable performance as measured from testing, and scope for improvement. This will be our focus towards the end of this report.