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


Monday 23 July 2007

Menu Interface - page 1


This is the main page for my Bumper game. Basically, I just used the starter kit menu with some changes on the buttons, pictures, title and color. There are 5 buttons; start race, highscores, option, help and quit.

Friday 13 July 2007

Make the things clear..

Just in case you are asking these questions.
We know it's a framework like XNA about game making which support Xbox360 etc. but :

1) Is XNA GSE is a Game engine ?

2) Is there features like : collisions, physics, tilemaps, particles, scripts, network libraries ?

3) In what way concretly XNA GSE will help me to achieve games better than others middlewares like BlitzMax, Torque Game Builder, Haaf Game Engine, ... ?

Well, here are the simple answers:

1) Not a game engine. It's a framework.

2) These aren't features that are built into the framework, but developing these kinds of things are easier with XNA. Also, other people have started projects which implement these. For examples, this site http://www.xnaresources.com/ gives some tutorial of how to make tile engine with XNA GSE.

3) You have more control over how things work? I guess because it's a framework, YOU decide how the game will run.

Tuesday 3 July 2007

Game Design Document


1. Background and Objectives

Since the game will be like bumper car game, the game is named as “Bumper”. The game is a race game genre but with the objective of capturing the opponent’s car (can be the computer or the second player). In this game, Bumper is the name of the chaser car.

2. Storyline

The patrol radio reports that a lawbreaker has been escaped to the race track. It is now the job for the player which is the nearest patrol car to capture the lawbreaker. The player will drive the Bumper to do this task. However, the criminal’s car is made with a special armour make it hard to block its way or punctured its tyres. The only hope is on Bumper made with special material make it hard as steel. The player has to drive Bumper to bump the car to wreck its armour so it can be captured. But, it must be done quickly before the car cross the country’s border. Otherwise, the pursuit will end.

3. Game Play, Logic and Rules

In this game, player 1 will controls (drives) the Bumper to knock down the other car. The game is presented in third person view, which means that the player can see the model of the Bumper from the back and side view and has the wider view.

A special material made from steel is attached on the front of Bumper to make it immortal to the collision. Therefore, bumper can hit the car as many as it can as long the car not cross the border or in other word, the end of the track.

When bumper hit the car, the collision will be presented in sound and particle emission. The armour indicator will be reduced depends on how hard is the collision.

If the opponent car is controlled by the computer, it basically controlled with some AI features that enables the car to follow the track with several of speeds and controls.

4. Game Play I/O Controls and GUI Interfaces

Controls option will display the controls in this game. The picture explanation is easier for the player to study and understand about the controls. The controls GUI will be like in the figure 2 below:

Figure 2: Controls GUI

The I/O control is very simple. It just uses some keys on keyboard. The keyboard control is the movement control; accelerate, turn right, turn left and brake or reverse.

5. Game Elements

5.1 Characters
Bumper – the main car controlled by player 1 to pursuit the criminal car. The car is attached with special black steel in front of it.

Criminal’s car – the car that has been chased by Bumper. It will avoid itself from getting hit by Bumper until it cross the border to the end of the track.

5.2 Environment

The chase is taking place in mountainous region in hot sunny weather with the long race track that has been build for the hot pursuit.

6. Score

The score is based on the time Bumper destroy the criminal’s car armour. The quicker it destroy the armour, the higher Bumper’s points, the lower the criminal’s (second player) points.

7. Audio and Visual Effect

7.1 Visual Effect

Particle emission will be produced shows the dust and impact of the collision whenever the Bumper hits the criminal’s car.

7.2 Audio Effects

Engine
Tyres stretching
Car collision
Armour destroyed.

7.3 Sound and Music

Main Menu
Time critical
Winner

8. Minimum System Requirement

§ Platform: PC
§ 1GHz Intel Pentium III or AMD Athlon
§ DirectX9 compatible 32MB 3D graphics card with hardware transform and lighting
§ 256MB RAM
§ Microsoft Windows 2000/XP
§ DirectX9 compatible sound card
§ Mouse, keyboard
§ 4x CD-ROM

9. Supporting Technology

§ The core engine of Insecticide will be based upon the Microsoft DirectX 9.0 suite of technologies.
§ Graphics Engine
§ Direct3D

Input
§ DirectInput

Audio
§ DirectShow
§ DirectMusic
§ DirectX Media

10. Game Mode

§ Single Player
§ Multiplayer


Click here for Bumper GDD in pdf

New Idea..

After a few weeks, I got a new idea of what game I want to develop. I decided to build a racing game. Since I found a racing starter kit, it will boosts my game development and make my life easier. The game basically will be a racing game as a default, but I decided to make it a bit different way, which is, a pursuit racing game. The player may be given a choice whether to be a chaser or lawbreaker. In order for the chaser to capture the lawbreaker is by hitting the lawbreaker’s car. Hmm.. simple enough. Let's put it on paper and code then.. (Analysis and development)