Technical design document
From Nephilim Wing
Contents |
Game Engine Selection and Editor
Torque Game Engine is selected due to following reasons:
- Provides in-engine world and GUI editor
- This allows us to create the game world without much effort on coding.
- Provides robust networking code
- The networking code provided for multi-player game uses client-server architecture. With this architecture a lot of player can be supported at one time. With client-server architecture, supporting both single-player and multi-player is easy because single player game can be treated as creating server in local computer and then connecting a single local client to the server.
- Torque also provides ghosting of object at client side. All the objects in the game is created at the server. Only the objects that is needed (displayed) in the client is copied. The copy of object in client is called object ghost. With this feature update to client can be minimized, thus reducing network traffic.
- Provides FPS starter kit
- Because Shoppink uses first person camera, this FPS starter kit can be used to speed up the game development.
- Automatic Level of Details for scene management
- Scripting is done in object-oriented C++ like language: C++ and object-oriented programming is familiar to us so the time spent for learning the scripting language will be shorter.
- Provides built-in physics engine
- There is no need to integrate other physics engine.
More details of Torque Game Engine features can be found at: Torque Game Engine Overview
Art Tools
- 3D Studio Max
- Autodesk 3Ds Max 8 is a graphics application for modeling, animating and rendering 3D models. It will be used to create all the 3D models, terrain/level as well as the animations. All files need to be exported as .3ds format so that they can be loaded into the game engine (3DGS).
- Adobe Photoshop CS3
- Adobe Photoshop is a graphics manipulation program developed and published by Adobe Systems. It will be used to create all the 2D graphics such as loading screen, main menu screen, and other screens.
Development Schedule
Software Design Diagram
To handle single player and multi player uniformly, single player will be treated as running one server and one client in a single computer.
In multi player game, one player will act as server and client, other players will act only as client.
The server will store:
- Game logic - game rules and AI
- All objects - data structure such as, character position, item list of each players, etc.
The client will store:
- Engine used - rendering and physics engine
- Object ghosts - this is the copy of objects from the server, not all objects will be copied, only the one needed in client will be copied (for example, items that is not shown in the player screen will not be copied, only when it appears in the player's screen the object ghost will be made).
- Fixed entity - audio files, characters model and animation, items and maps model, and various screens. These entities will not be updated so they are stored in every client to reduce the network traffic.
Game Logic and Interactivity
Game Rules
- Player is given a list of items to obtain.
- Player must obtain all the items in the list by finding and clicking the correct item, exactly once per item.
- If the timer runs out or player makes too many mistakes player will lose.
Game Screen
Following is the user interface flowchart:
Loading Screen
This screen is shown at the beginning when the game is executed.
Main Menu Screen
In Main Menu Screen players are able to choose one of the following options:
- Start Game – after player selected start game player will need to choose the play mode, whether they want to play in Single Player or Multiplayer
- Options – players are able to make changes such as sound volume, screen resolutions, etc
- Help – to read the instructions of the game
- Exit – to quit the game
Start Game Screen
This screen has 2 options:
- Single player - player will play alone with some non playable characters as the competitor.
- Multi player - player will compete with other players.
Options Screen
This screen will provide an interface for:
- Turning the sound on and off.
- Setting the sound volume.
- Change the screen resolution.
Help Screen
This screen will provide some instructions on how to play the game and explanations about the menu in options.
Exit Screen
This screen will show credits before the game exit.
Single Player Screen
In single player mode players are allowed to select levels. Levels available are those levels that players already finished in their previous session. Therefore, players are able to play again from the first level up to the last level they have successfully finished. Every time player succeed in completing a level a new level will open up.
Multiplayer Screen
After players selected multiplayer mode they will be connected to the server and then they are allowed to create their own room or join the existing rooms.
Create Room Screen
If they choose to create their own room they will be able to specify their room’s name, number of players, also the specific stage they would like to play. Each stage have different difficulties, higher stage will be more difficult than the lower one e.g. Stage 5 will be much more difficult than Stage 1. The room creator also has the right to start the game.
Join Room Screen
If the player chooses to join the existing room, a list of existing room will be displayed. Player can choose a room from the list. After they choose certain room they will need to wait for the room’s creator to start the game.
Game Play Screen
Here where players interact with the world map. On this screen, players will be able to see the list of items they need to collect as well as the remaining time.
Winning Screen
This screen will be shown when player wins the game.
Game Over Screen
This screen will be shown when player lost the game.
Physics
Collision Detection
Collision detection has done to check the proximity of shopping objects from main character and NPC character. They can only pick up the objects when the distance within certain range.
Other collision detections such as detection of solid objects have been done by 3D Game Studio engine.
Artificial Intelligence
AI will be used to control non playable characters. As the level goes up, non playable characters will be added to the game. The non playable characters will walk randomly around the shopping area and take random items.
The following algorithms will be used:
- Priority list
- The non playable characters will try to take items according to certain priority list. The priority list of items will be changed accordingly with the level of difficulty. For example at early level the priority of the items that are in player's shopping list will be low, so the non playable characters will not compete for an item with player. On higher level the list of items that are in player's shopping list will be higher so the player has to compete with non playable characters to get the required items.
- Path finding
- To implement the non playable characters walking towards the next item according to the priority list. On lower level the accuracy of the path finding algorithm will be lower so the characters will have to walk around for some time before finding the correct way to the item. On higher level the accuracy will be higher.
Miscellaneous
Level Map
Here is the map for level 1:
At the beginning the terrain used will be one level of supermarket. It will consist of several shelves and racks such as food shelves, magazines racks, clothes racks.
As the level goes higher, supermarket will have more stories.
Camera Details
In this game the camera will be the same as player's perspective. It will move as the user moves the mouse (move around the map).
Audio Effects
In the game, other than background music, we have the sound effects being played when player picked correct or incorrect items. Timer also plays different ticking sound for different time intervals (e.g. alarm sound when the time almost ends). Characters also have footsteps sound, voices are also incorporated, such as: 'Excuse me' when character is being obstracted by NPC character, 'Aha' when picking correct items, 'Oh' when picking incorrect items.
Video Effects/Animation
Game Opening Screen
The game starts with a video of Nephilim, the main character of the game, busy doing her school assignments to meet her deadline next day. The camera will zoom in to her grandmother shouting at her to buy groceries. Next, the video will show Nephilim frustrated face and with her writing down the list of groceries on her notebook.
The next scene, the camera shows the top view of the shopping centre showing Nephilim running towards the entrance. The camera then zoom in on her frustrated face voicing out her assignment deadline. This explains the time limit for the game.
Final scene, the camera then zoom in to the entrance of the shopping centre, showing the interior with a background music and video similar to "The Price Is Right Opening Screen".
The Price Is Right Opening Screen
Winning Screen
A video effect of sparkles will be animated around Nephilim showing a completion of a level. After the final stage of the game, a video showing Nephilim rushing back to her grandmother and showing a video of the completion of the assignments and a satisfying smile on her grandmother.
Next, a video will show Nephilim submitting her assignments and got a grade "A" but the game does not end here.
Final video, showing Nephilim's grandfather shouting at her to buy spare parts for his old and rusty landrover.... A black screen will slowing fade in and a sentence will be displayed "Oh no... to be continue....", this time Nephilim is rushing for her exams.
Gameover Screen
Nephilim will have black clouds surrounding her with a skull on top of her head. A video will show her grandmother scolding her as well as failing her assignments.
Hardware/Software Requirements
- Minimum: P-75, 32 MB RAM, CD-ROM, sound card, standard VGA card or laptop.
- Recommended: P2-350, 64 MB RAM, 3D video card (16+ MB), 3D sound card.
- Windows 95 or above, and DirectX 5.0 or above are required for software rendering.
- Windows 98 / ME / 2000 / XP and DirectX 8.0 or above, and a decent 3D card are required for hardware rendering.








