Project : Chain Reaction

In this project, you will make the roller coaster applications more interesting. You will add an interactively controlled animation into the roller coaster. The purpose of this project is to force you to use the physical simulation engine which is an important tool for the game design. The animation is to demonstrate the a chain reaction simulation. The things must be done with a physical engine in QT & openGL. We recommend you to use bullet.

Components in your animation.
  • Vehicle moving on uneven surface:
    1. Vehicle must be export from Maya, 3DMax or Blender and then be loaded in by the openGL function.
    2. You should also have some UI to control the speed of the car.
    3. Uneven surface can be a terrain using the height field.
    4. You should provide some UI to control the roughness and the slope of the ground
  • Cloth and wind
    1. Cloth simulation can be easily done by the physical engine and thus in your scene, you must get the cloth into the reaction chain.
    2. The wind is the force to act on the cloth and the speed of the wind must be controlled by a slider. In addition, the speed of the wind will also define the force on the cloth.
  • Water (not real simulation)
    1. Water is important for reality. Water simulation is slow but you can have different ways to hack the effect such as using the combination of sine wave. More examples can be found in Bullet and NVidia web site.
    2. Refraction effect on the water.
  • Some objects like dominoes and pool balls
    1. Dominoes can act a complex reaction among objects which one cause another to react and this is interested physical phenomenon.
    2. The same description can be say to pool balls.
  • Animated character: skeleton characters are important in the game. It can represent the hero or the enemy. Please use a tool to import the animation in and put an animation on the character.
  • Fire and smoke:
    1. Fluid is important for reality and normally a physical engine will provide the proper tool to do it.
    2. The size of the fire and the heat generated by the fire should be able to control by a slider
  • Camera control to follow the active animation: the smooth game camera motion is important to generate a nice game and thus you need to have a follow camera to follow the events. In addition, the camera should be moved smoothly.
  • Sound according to the events: sound is an important element. You should put the sound for each collision and the events happen.
  • Sky
  • Day and night: day and night should have different effects on the result.
Example scenarios

Here we will provide an example scenario but we hope that you can make something more interesting and intrigued. The scenario setting is illustrated in the figure.


  1. When the user push the button, the car is initiated down the slope and the UI similar to accelerate pedal should be able to control the speed.

  2. The car is driven down the hill which is an uneven surface.
  3. The car will hit the start button of a fan and the fan start to rotate to generate the wind and there should be a UI to control the speed of the wind.
  4. The wind will blow the cloth to make the boat move across the water and the speed of the wind will change the speed of the boat.
  5. At the same time, when boat move across the water, it should show the wave as the ripple. At the same time the water should reflect the sky and show the bottom of the water with refraction.
  6. The boat will cross the water and then initiate the dominos and then hit the balls to start the robot.
  7. The robot will walk across with some interesting animation to hit the start of the fire.
  8. The fire is up and will burn down the rope and the size and heat of the fire should be controlled by some UI.
  9. The fire will burn down the rope and the weight will drop and stop the animation and then there should be some final scene.
Check Points
  1. Check point 1: integrate bullet: Demo basic object collisions (cubes, spheres, plane).
  2. Check point 2: set up the scene layout: Model the terrain, import different models (vehicle, table, boat, etc.); Show that everything works with the physics engine.
  3. Check point 3: have the vehicle simulation, camera control, and UI for setting parameters.
  4. Check point 4: demonstrate all physics simulations (cloth, water, fire, smoke, etc.).
  5. Final demo.