Tuesday 31 July 2007

Technical Design Document

1. Game Engine

I used the game engine provided by the Racing Game Starter Kit that can be downloaded at
http://creators.xna.com/Education/StarterKits.aspx. It is a free to use XNA Game Studio Express game that comes ready to compile and run, and it's easy to customize with some C# programming. It is a 3D auto racing game that features advanced graphics, audio, and input processing. It features:

1. XnaGraphicEngineContentProcessorsContentProcessors - XnaGraphicEngine model processor for x files. Loads models the same way as the ModelProcessor class, but generates tangents and some additional data.
2. XnaGraphicEngine.Graphics - Contains low-level application programming interface (API) methods that take advantage of hardware acceleration capabilities to display 3D objects.
3. Some basic on landscape rendering – landscape constructor can loads the map height data from the level file and build tangent vertices with it.
4. Built-in Unit Test – instance creation of the project to call draw method to test the unit data or block is valid.
5. Provide with a sample of physics engine that I believe will be useful in Bumper Game Development.

However, the game engine will be change slightly to suit with Bumper game needs.



2. Development schedule/plan




3. High-level diagrams of Bumper Game Design



4. Art tools used in our production pipeline

1. Photoshop
This art tool will be used in skinning models, focusing on details and textures used to create rough skins of the landscape and objects, Photoshop also is being used to create a background and glow texts for GUIs.
2. Milkshape
Milkshape is used in 3D modelling. Objects in the game are created in Milkshape by combining many shapes available in Milkshape. Some objects are ready made imported from several website, modified in Milkshape with different shapes and skins. Milkshape can import .x objects from the tools menu, which is slightly hidden from users’ eyes. This tool is also used to make a simple animation of the cars’ wheels spinning.
3. UVMapper
This tool is used to ensure the texture skins mapped correctly onto objects.


5. Collision detection, physics

Objects that are moving through the world need to be checked against the geometry and all other objects in the world to see that it does not pass through or get too close to any of them. For instance, I would check if any of the four wheels collide with the guard rail by checking the four wheel positions (or at least the most outer parts of the car) still allow you to do the basic collision detection. If the car is crashing into the right guard rail, it means collision happens at the front right side of the car and vice-versa. Collision response is to rotate the car to opposite direction and slow it down due to the crash. Collision between cars also must be calculated to reduce the car’s defense status bar so that the game will over when the car’s defense equal or less than 0.
For the physics of the game, collision effect should be considered and also forces like gravity, friction and engine boost.


6. 3D Object

Cars
Trees
Mountains
Buildings
Rocks
All models named by their object name.
File Format - .X
Max of 5 textures for small items like trees
Texture file format - .pcx, .bmp, .tga


7. Scene Management

One of the most important aspects of scene management is rendering the scene. We definitely will implement some scene management simply because the less we render, the less work our video card has to do, and the less work the video card has to do, the better.
Some tips should be implemented such as always sort rendering by shaders. GPU-heavy data should be rendered at the beginning of each frame so that we can prepare the landscape models and other rendering data while the GPU is still working with the many landscape and track polygons. Anything that is not visible should never be rendered. Well, the landscape and the track are always visible, so it can be skipped. Smaller 3d models can be skipped after 100 metres.
Additional layers, shaders and effects like water shaders and shadow mapping can be time consuming task, so that these things will be avoided in my project.


8. Artificial Intelligence

Overview
The AI that I can think of is the second car AI if you play single player. It should be able to auto cruise itself along the track, speeding when the first player approaching and able to avoid from collide either from the rail or with other car.


9. Target Platform and OS


Processor
Require: Intel Pentium III at 1GHz or equivalent AMD Athlon.
Recommend: Intel Pentium IV at 2GHz or equivalent AMD Athlon
System memory:
Require: 256MB system memory.
Recommend: 1GB system memory.

Video
Require: DirectX 9 compatible 3D graphics accelerator card.
Require: 32MB video memory.
Require: Hardware transform and lighting.
Require: Hardware support for DirectX pixel shader version 1.1.
Recommend: Hardware support for DirectX indexed vertex blending.
Recommend: Hardware support for DirectX pixel shader version 2.0.
Recommend: 128MB video memory.

Sound
Recommend: DirectX 9 compatible sound card.
Recommend: Hardware 3D sound capabilities.

OS
Require: Windows 2000/XP

Input
Require: Keyboard.
Require: Mouse.

Development hardware
Intel Pentium 4 1.6GHz
256MB system memory
NVIDIA GeForce 3 Ti 200
Operating system
Microsoft Windows 2000

Development software
XNA Game Studio Express


No comments: