CS 248 Video Game Project
- The Age of Transformers -


Team members
Introduction
Features
Screen Shots
Download

Team members :

     Kim, Nam Wook
     Park, Sung Hee
     Ryu, Soo Woong


Introduction

     Save the Earth! The aliens have sneaked into the Earth and built secret base in dessert area. Your mission is to destroy enemy forces with our "transformer" robot.The robot can transform from tank, to human type robot and fighter aircraft. You may choose the best robot style to fight with the enemies.


Go Back


Features:

1. Character animation
- All vertices of meshes are bounded to bones. And the bones have hierarchical structure. So if a bone translates or rotates, all bounded vertices and children bones of it move correspond to the bone. This technique makes character animation designs easier and more flexible.

2. Collision detection
- Efficient and fast collision detection is done by using dynamic quad-tree to store numerous objects, which take O(log n) to search objects to compare. The tree structure is updated only when object is moved away from the area represented by current node. It is also possible to get objects that are inside a certain radius from input point. Various collision detection methods are applied, from coarse detection to more complicate ones. Finding intersection between line segment and AABB, AABB and AABB, line segment and OBB, OBB and OBB and so on are implemented, which can eventually pin point the collision points. This technique enables collision check between objects and objects, and objects
and curved trajectory.


3. View frustum culling
- Dynamic quad-tree is also used to do fast view frustum culling. Only objects in a certain area are pulled out from the tree and checked with six planes.

4. Particle system
- Very flexible particle system is implemented to generate smoke, flame and other special effects. Friction and Brownian motion are added in Newtonian physics. For fast rendering, sequence of result images are captured to build animated texture with billboarding. Two blending modes are used to give different effects.

5. Shadow Volume
- Z-fail volume shadow (as known as Carmack¡¯s reverse) was used to render shadow. First of all, we made multi-pass rendering pipeline except for 2d objects: heads up display and particles. The next step is finding silhouette edges from the lighting source. After then, shadow volumes having sides and caps are built by the edges. Finally, we rendered the game scenes twice with stencil operation; first rendering for shadow area, and second rendering for lightning area.

6. Heads up display
- Heads up display shows 2D radar map with texture and game infos. In flight simulation mode, various information such as altitude, height, roll, pitch angle and velocity are displayed in an intuitive way. Also, health bar is displayed for enemy that is inside front half circle from main character.

7. Event driven game engine
- Every entity has statuses and message queues. Statuses have several categories such as a ¡®fire state¡¯ indicating which the entity is firing or not. All events in game are notified through messages. In every update time, the entities check their messages box and take appropriate action determined by a finite state machine.

8. Maya 3D Modeling
- We use Autodesk's Maya 2009 to model 3D objects (triangulated meshes) and export them to .obj files. We implement a simple .obj file reader to load the meshes into our 3D world. The file reader read an indexed triangle mesh from .obj file and store adjacency information of the mesh into Half-Edge data structure. By taking advantage of the data structure, any adjacency relation query such as vertex split or edge collapse can be operated in constant time per primitive.

9. A* Path Finding
- As a part of artificial intelligence in the game, we use A* path finding technique. Our A* is based on 2D tile map and uses Manhattan distance for heuristic. We can think of the terrain as 2D tile map, when projected onto x-z plane. (i.e. y-coord represents height) Thus, A* is easily incorporated into the terrain.

10. Bump Mapping and Fog using Cg Shading Language

- To achieve realistic rendering effect of the terrain, we implement Bump mapping and Fog using Cg shading language.

11. Terrain Rendering with View Dependent Refinement and Geomorphing
-
We refer to a paper, ¡°Terrain Simplification Simplified: A General Framework for View-Dependent Out-of-Core Visualization¡±, written by Peter Lindstrom and Valerio Pascucci. In sum, error metric is recursively defined for each vertex from parent to children. The error metric depends on the distance from previous refinement level and from the eye position. For example, if the eye position is close to the vertex, the region around the vertex should be refined further until the error metric is within error tolerance. In addition, if the error metric falls within a range of certain thresholds, geomorphing is used to alleviate popping phenomena. Furthermore, view frustum is also automatically done by checking whether the bounding sphere, which is defined for each vertex's error metric, is within the view frustum.

Go Back


Screen Shots:

Go Back

Download:

Compilation:
- Windows, Visual Studio 2008 or above
- GLUT, DirectX SDK, CG are required.

Running Environment:
- Windows environment with DirectX and hardware pixel shader support.

Installation:
- Move all the .dll files to Windows' system32 directory and run the program.

Key Instruction (provided along with gameplay):
- move: w,a,s,d (q,e: side walking for robot)
- transformation: z,x
- booster: space bar
- fire: mouse

Download (Executable on Windows Vista)

Go Back