|
|||||||||||||
Overview Video Screen Shots Design Plan History Team Development
Plan
|
Vertigo 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. |
|
|||||||||||