home 

homeproductscompanytechnology   
real-time 3dinternet kioskfuture projects
    
Overview    
Video     
Screen Shots     
Design     
Plan     
History     
Team       

Development Plan 
Table of Contents  
Introduction   
Editor   
Graphics   
Hardware  
Architecture   
Data  
Code  
Demo  
Motion Capture   
Networking 
Scoring   
Tools   
Team   
Behavior   
3D 

       
real-time 3dVertigo PC Plan
Code Components  

All of the pieces of code which make up the finished Vertigo software are embodied to some extent in the current prototype. Each component will be enhanced over the course of the project to create the final product. Code component descriptions in this chapter follow this format:  
 

Game Flow User Interface 

Language: C++  

Libraries: None  

Algorithms: None  

Priority: Low  

Requisite Components: Character Generator  

Platform Dependent: No  

Data Structures: None  

Description: The Vertigo user interface follows the sparse style of console games and other real-time 3D games like Doom, Descent and Duke Nukem. A simple hierarchy of menus appears when the game is launched and re-appears whenever the user pauses game play. 

   

   

   

Game Flow User Interface 

Language: C++  

Libraries: None  

Algorithms: None  

Priority: Low  

Requisite Components: Character Generator  

Platform Dependent: No  

Data Structures: None  

Description: The Vertigo user interface follows the no-nonsense style of console games and other real-time 3D games like Doom, Descent and Duke Nukem. A simple hierarchy of menus appears when the game is launched and re-appears whenever the user pauses game play. 

   

 

Game Play User Interface 

Language: C++  

Libraries: DirectInput  

Algorithms: Conversion of raw user input into forces and torques applied to parts of the skater’s physical model. Lookup into table of special moves.  

Priority: High  

Requisite Components: Engine, Controller Input Interface  

Platform Dependent: Yes  

Data Structures: controllerInput 

Description: The Vertigo game play user interface converts the player’s input from the joystick, keyboard, or mouse into units of force and torque. These quantites are then applied to the player’s avatar’s simulation element data structure for the simulation engine to act upon.  

The game play user interface must also take into account the player’s avatar’s position, orientation, velocity and physical state to determine which motion capture segments to initiate, if any. For example, at slow speeds, a sharp banking turn will initiate a kick turn. At high speed and at an extreme angle, a sharp banking turn will initiate an ‘eggplant’ maneuver.  

   

 

Controller Input Interface 

Language: C++  

Libraries: DirectInput  

Algorithms: None  

Priority: High  

Requisite Components:   

Platform Dependent: Yes  

Data Structures: controllerInput 

Description: This component reads information from DirectInput functions for use by the Game Play User Interface component. It uses the player’s options settings to determine which combination of physical input devices to use to feed back   

The game play user interface must also take into account the player’s avatar’s position, orientation, velocity and physical state to determine which motion capture segments to initiate, if any. For example, at slow speeds, a sharp banking turn will initiate a kick turn. At high speed and at an extreme angle, a sharp banking turn will initiate an ‘eggplant’ maneuver.  

 

Mesh Loader 

Language: C++  

Libraries: Direct3DRM  

Algorithms: None  

Priority: High  

Requisite Components: Direct3D  

Platform Dependent: Yes  

Data Structures: elementInfo 

Description: This component reads mesh files from the disk and brings them into a form in memory which is accessible by Direct3D. We may continue to use the Direct3DRM builder->Load(); function with ‘.x’-format files.  

 

Environment Traversing Database 

Language: C++  

Libraries: None  

Algorithms: Appropriate Level of Detail is displayed for objects depending on their distance from the camera.  

Priority: High  

Requisite Components: Engine  

Platform Dependent: May contain platform specific components, such as format of images and meshes, and the code that actually feeds the meshes/images to the underlying hardware.  

Data Structures:   

Description: To have a high quality, fast animation environment it is necessary to only draw those components of the game relevant to a specific scene. In addition, those objects which are in the distance should contain many fewer polygons than the same world object would contain if it was right in front of the character. This technique of having multiple meshes describing the same object is called Level of Detail.  

Another technique which is necessary to have a speedy game is the division of the game into scenes. Levels such as the skateboard park have one scene, while the city streets has many scenes which are connected seamlessly. Any scene only contains the art which can fit in the target hardware’s VRAM. Scenes are connected with transition scenes. Transition scenes use less art than a full scene, so the art for the next scene can be loaded while traveling through the transition scene.