Investigation into Real-Time Destructible Environments

April 2009 - Final Year Project / Dissertation

Description

The project is basically summarised by the title itself. The goal was to investigate and create a destruction system which could be used in a computer game or visualisation. It had to be able to run in Real-Time and create content. I was extremely pleased with the results of the application and the entire project, I chose the project as I knew it would really push me to achieve something I never thought I would have been able to achieve. The project got third place in the Universities graduate exhibition.

It is extremely difficulty to summarise what was actually completed in the project, the final report ended up 30 000 words long and 150 pages. Extracts from the report can be seen below with a video of the application. I am extremely proud of this project and plan to use what I have learnt in building up a combined Physics and Graphics package for a destruction system.

Aims and Objectives

The ultimate aim is to investigate how, why and what a computer game would need to do to have a destructible environment. Some key questions are:

  • How could destructible environments be implemented in a computer game?
  • What needs to be done to have a destructible environment?
  • What do games currently do?
  • What is required to have a destructible environment?
  • Why do games not have fully destructible environments?

Critical Appraisal

The primary focus of the project was the investigation and understanding of a destructible environment in a computer game, which was achieved in great depth. Some additional bonuses were being able to use new technologies such as Nvidia PhysX, which has enormous potential to push gaming realism to the next level.

The sheer depth of the topic made it extremely hard to summarise and plan techniques for destruction. The bottom line is that all destruction comes down to the materials and the way they are structured; if they attach to other materials, strength of forces etc. It was difficult to effectively create a summary of destruction in the "real world", as it has virtually endless depth, and then find a way to implement it.

Personal Experience

There were many personal goals throughout the project. The main reason for why the project was chosen is the fact it may not have been completed successfully in the time provided. Another reason is that it would force me to push myself to try achieve something worthwhile outside my comfort zone. I would have been able to complete other project ideas which would have achieved the requirements but lacked challenge. On a personal level, I have always struggled with mathematics and physics. Doing this project forced me to learn and understand a great deal in both areas. A strong background understanding in areas such as physics, geography, architecture, general science, mathematics, C++ and programming techniques, was required before the project could even begin. Challenge is extremely important to me, to push knowledge and understanding. I will continue working in this area as it has renewed my enthusiasm for Games Programming.

The Application

Application Features

  • Custom Force Management System
  • Procedural Object Replacement
  • Mass and Energy Conservation Techniques
  • Real-Time Content Generation
  • Objects Splitting into Debris
  • Collision based Object Replacement
  • Force based Object Replacement

Technologies Used

  • Ogre3D
  • Nvidia PhysX
  • C++
  • Maya 2008 for Modelling and texturing
  • Subversion
  • Office Suite

Video (Youtube)