Thursday, April 3, 2014

Sample Video Game Technical Proposal and Execution Plan

A good technical plan can go a long way in helping you attract developers and acquire funding. The following plan was a part of the development package for the game Genesis Seed that was submitted to Activision for their 2011 Independent Games Competition. The project was cancelled but we still have a lot of useful information and resources from it.

Note: The numbers in the work breakdown are not to create a game from scratch. This technical proposal gives details on how to finish the project.

Leave a comment if you would like more information.





For the Word Document Version of this plan: GenesisSEED-Technical Proposal and Execution Plan.doc

This is the technical plan for Genesis SEED and has been prepared for the Activision® 2011 Independent Games Competition.

1      Project Summary

Genesis SEED is a futuristic space mech/armored suit combat game which can be described in a single word -- "freedom." With battles that can take place in open space, players can move in all directions for  a true 3D combat feel. The aim for Genesis SEED is not to become another typical space shooter, first person shooter or mech combat game, but a rich game with various forms of play and an intriguing story line.

2      Summary of Methodology

This project will use a custom 3D game engine, currently named Harmony, based on Direct X 9 using Visual C++. The 3D graphics portion of the engine that will be used in this game is about 90% complete.

2.1      Team Structure

The Genesis SEED team has two permanent members – Dominque Douglas (Lead Developer and Programmer) and Sung Shin (Creative Lead and 3D Modeling). We’ve tried to bring on other permanent members, but without development funds, it’s difficult to keep others motivated so we’ve decided to stick with a two man team. Both permanent members can hire contractors to perform task. When we have a budget, we plan to contract artist and modelers. We’d also like a programmer who can work on scripting and sound programming.

Team collaboration is done over e-mail, IM, and Skype.

2.2      Multiplayer Development

The multiplayer system in Genesis SEED is based on the document "Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization" by Yahn W. Bernier and will have a similar client / server architecture. This client / server design was accounted for since the design phase of Harmony 2.0, the Genesis SEED game engine. Already, users and the entities that they control are in separate c++ classes. Users can not directly alter their entity. All users, including AI users, create a control packet (or message) that is sent to the server. This is followed even in single player games. Command and position histories as well as interpolation and extrapolation code has already been written.

Remaining multiplayer work that needs to be developed is working on making the actual connections and making sure games on the client computers are properly synchronized. Because of this, the number of scheduled work hours is relatively low. The multiplayer system doesn't need to be started from scratch. It just needs to be finished. To help mitigate some of our risk, the engine will use Raknet as our networking solution. Raknet has a good user base and good support

2.3      Artificial Intelligence (AI) Development

Because of the differing unit types and the large number of active units, AI in Genesis SEED is being developed to be like a Real Time Strategy Game (RTS) style AI.  During play, the players are divided into teams. Each team has a commander AI that coordinates the movements of all players. Human controlled players will be able to ignore the commander, but this will affect the player’s reputation and can cause his team to turn on him.

2.3.1     AI Script

A custom AI script has been developed to program instructions for performing various tasks. The AI script uses a BASIC-like syntax but has special flow controls. Each script command has built in success/fail conditions and the next command executed is based on the previous commands exit condition. This allows the script to quickly break off if conditions make it impossible for a task to be completed in the current iteration.

2.4      Physics

NVIDIA PhysX 3 is used for basic collision detection. Future versions will use PhysX for particle effects. Collision with stage characters (large ships that are both characters and a part of the level) and mag-lock are performed using a custom system.

2.5      Space Partitioning

Genesis SEED uses a dynamic self-balancing KD Tree for spatial partitioning and object searches. Tree balancing happens over multiple frames for speed and unused segments (nodes without any objects) and segments with few entities are rolled up or deleted. KD nodes store axis-aligned bounding boxes (AABBs) so objects that are no longer in the correct node can be quickly repositioned.

2.6      Development Tools

2.6.1     Custom Tools Developed

  • GUI Editor
A custom GUI editor has been made to simplify GUI development.

  • Model Builder
Models are created using the 3D modeling package Milkshape 3D, but are customized in this program. The model builder is used to convert to the proper 3D file format, for model preprocessing, and for model testing.


  • AI Script Compiler
Genesis SEED uses a custom AI script. This compiler converts the script into byte code that can be read by the engine.
  • FX Editor
The FX editor is used to configure the special effects used in the game.
       

2.6.2     Middleware and Tools Used

  • TinyXML
TinyXML is a simple, small, minimal, C++ XML parser that can be easily integrating into other programs. It reads XML and creates C++ objects representing the XML document. The objects can be manipulated, changed, and saved again as XML. (Copyright © 2000-2002 Lee Thomason (www.grinninglizard.com))
  • RakNet
RakNet is a cross platform, open source, C++ networking engine for game programmers. The game engine RakNet is used for as the networking layer for the engine. Currently the engine uses RakNet 3, but the engine will upgrade to RakNet 4 before release. (© Jenkins Software LLC)
  • AVL Tree
AVL Tree implementation provided by Brad Appleton. Used under a free license.
  • Angel Script
Angel Script is a C-styled scripting language from angelcode.com. Angel Script is currently not being used in the engine, but it is being considered as possible option. Used under zlib license.
  • Threading
Threading support used under a free license by Walter E. Capers.
(Copyright © Walter E. Capers.)
  • NVIDIA PhysX 3 (Copyright © 2011 NVIDIA Corporation)
  • Direct X 9
  • XACT
Cross-platform Audio Creation Toolkit by Microsoft®.
  • Milkshape
Low-polygon modeling program by Mete Ciragan and Chumbalum Soft.
  • Spacescape
Spacescape is a tool for creating space skyboxes with stars and nebulas.
For the latest info, see http://alexcpeterson.com/spacescape
Used under the MIT License. Copyright (c) 2010 Alex Peterson
  • GIMP
The GNU Image Manipulation Program
  • Adobe Photoshop
Image editing software by Adobe.

2.7      Change Control

Requirements changes will be tracked using an Excel spreadsheet. After the feature complete milestone, no new features will be added to this release. After the code complete milestone, no entirely new product source code will be added to this release. This project plan will be updated as needed throughout the project.

3      Work Breakdown Structure and Estimates

Task
Description
Estimate in hours
Difficulty
A.
Programming Task
547
MODERATE
A.1
Graphics Upgrades
24
Moderate
A.1.1
Update skins to allow for a third texture
4
Easy
A.1.2
Update rendering system to group and render meshes using the same material.
8
Moderate
A.1.3
Allow multiple materials per model.
4
Moderate
A.1.4
Add glow and transparencies
8
Moderate
A.2
AI Part 1
12
Moderate
A.2.1
Add transport ship unit type
4
Moderate
A.2.2
Add transport ship attack AI
8
Moderate
A.3
Prepare Enhanced Demo 1 Milestone
15
Moderate
A.4
Physics
48
Moderate
A.4.1
Remove PhysX controllers from stage entities
4
Easy
A.4.2
Add new collider information to stage entities and configure in the Model Builder
12
Moderate
A.4.3
Add stage entity collision code
20
Moderate
A.4.4
Add mag-lock controls
12
Moderate
A.5
Multiplayer
192
Moderate
A.5.1
Download latest Raknet release and upgrade Raknet in the engine.
16
Moderate
A.5.2
Basic Connection Test
32
Moderate
A.5.3
Build multiplayer game with one player acting as the host server
96
Difficult
A.5.4
Create server only system and connection server
48
Moderate
A.6
AI Part 2
64
Moderate
A.6.1
Aggression levels and base unit AI
8
Easy
A.6.2
Group Formations    
8
Moderate
A.6.3
Task System  / Custom AI script
16
Moderate
A.6.4
Commander AI
32
Difficult
A.7
Story System (maybe contracted out)
48
Moderate
A.7.1
Design story system
12
Easy
A.7.2
Implement story system
36
Moderate
A.8
HUD and Menu Redevelopment
(maybe contracted out)
48
Moderate
A.8.1
Menu design
12
Easy
A.8.2
Menu and HUD implementation
36
Moderate
A.9
Sound System(maybe contracted out)
32
Moderate
A.9.1
Sound System design
8
Easy
A.9.2
Sound System Implementation
24
Moderate
A.10
Feature Complete Task
64
Moderate
A.10.1
Check Requirements and create new task list
16
Easy
A.10.2
Implement new task
48
Moderate

B.
Art Task
1124
B.1
Human Assets
440
B.1.2
Human Mechs Design and Concept
40
B.1.3
Human Mechs Creation using Milkshape 3D   
120
B.1.4
Human Mech Weapons Design and Concept
20
B.1.5
Human Mech Weapons Creation using Milkshape 3D
40
B.1.6
Human Ships Design and Concept
40
B.1.7
Human Ships Creation using Milkshape 3D
120
B.1.8
Other Human Vehicles Design and Concept
20
B.1.9
Other Human Vehicles Creation using Milkshape 3D
40
B.2
Genome Assets
440
B.2.1
Genome Mechs Design and Concept
40
B.2.2
Genome Mechs Creation using Milkshape 3D
120
B.2.3
Genome Mech Weapons Design and Concept
20
B.2.4
Genome Mech Weapons Creation using Milkshape 3D
40
B.2.5
Genome Ships Design and Concept
40
B.2.6
Genome Ships Creation using Milkshape 3D  
120
B.2.7
Other Genome Vehicles Design and Concept
20
B.2.8
Other Genome Vehicles Creation using Milkshape 3D
40
B.3
Menus
172
B.3.1
Base Menus Design and Concept
12
B.3.2
Base Menus Creation
24
B.3.3.1
Human Specific Menus Design and Concept
12
B.3.3.2
Human Specific Menus Creation
24
B.3.3.3
Human HUD Design and Concept
8
B.3.3.4
Human HUD Creation
24
B.3.4.1
Genome Specific Menus Design and Concept
12
B.3.4.2
Genome Specific Menus Creation
24
B.3.4.3
Genome HUD Design and Concept
8
B.3.4.4
Genome HUD Creation
24
B.4
Other Art Assets
72
B.4.1
Explosions
8
B.4.2
Weapons Effects
24
B.4.3
Items
20
B.4.4
Power-ups
20

 



4      Milestones in this Release

Name
Description
Date
Enhanced Demo 1
This demo will be the Activision Independent Games Contest demo but will include:
  • Glow
  • Transport ships
  • Enhanced AI
In this demo, a large Pseudo-human transport ship will carry droids to the attack site.
Feb 29, 2012
Mag-lock Demo
This demo will add mag-lock, allowing mechs to lock onto large ships and walk on them. This demo will also include a special task that player will need to use mag-lock to complete.
Mar 31, 2012
Network Game Demo
This demo will be the first multiplayer demo. It will work over a LAN or over the internet using a connection server. A graphics-less server only version will also be created.
June 30, 2012
Enhanced AI Demo
This demo will include enhanced AI and the completed AI script.
July 31, 2012
Human / Genome Campaigns
In this milestone, the opening scenarios for both the Human and Genome campaigns will be built. This milestone will include some basic mech configurations and enhanced menus.
Aug 31, 2012
Feature Complete Demo
A completed beta version with all planned game features.
Oct 24, 2012



5      Programming Schedule for this Release



February
March
April
May
June

Task
Description
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
Tot
A.1
Graphics Upgrade
12
12


















24
A.1.1
Update skins
4



















4
A.1.2
Update  rendering
8



















8
A.1.3
Multiple materials

4


















4
A.1.4
Glow and Transpar.

8


















8
A.2
AI Part 1


12

















12
A.2.1
transport ship type


4

















4
A.2.2
Transport ship AI


8

















8
A.3
Enhanced Demo 1



15
















15
A.4
Physics




12
16
12
8












48
A.4.1
stage entity PhysX




4















4
A.4.2
Add collider info




8
4














12
A.4.3
Add stage entity coll





12
8













20
A.4.4
Add mag-lock ctrls






4
8












12
A.5
Multiplayer








16
16
16
16
16
16
16
16
16
16
16
16
192
A.5.1
Update to Raknet








16











16
A.5.2
Basic Conn Test









16
16









32
A.5.3
multiplayer game











16
16
16
16
16
16



96
A.5.4
server only system

















16
16
16
48



July
August
September
October

Task
Description
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
Total
A.6
AI Part 2
16
16
16
16












64
A.6.1
Base unit AI
8















8
A.6.2
Group Formations    
8















8
A.6.3
Task System  / AI script

16














16
A.6.4
Commander AI


16
16












32
A.7
Story System




12
12
12
12








48
A.7.1
Design story system




12











12
A.7.2
Implement story system





12
12
12








36
A.8
HUD and Menu Redev








12
12
12
12




48
A.8.1
Menu design








12







12
A.8.2
Menu and HUD Implem









12
12
12




36
A.9
Sound System




4
4
4
4
4
4
4
4




32
A.9.1
Sound System design




4
4










12
A.9.2
Sound System Implem






4
4
4
4
4
4




36
A.10
Feature Complete Task












16
16
16
16
64
A.10.1
Check Requirements












16



16
A.10.2
Implement new task













16
16
16
48



6      Art Schedule for this release



February
March
April
May
June

Task
Description
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
Tot
B.1
Human Assets
20
20
20
20
40
40
20
40
40
40
40
40
40
20






440
B.1.2
H Mechs Design
20
20


















40
B.1.3
H Mechs Creation           


20
20
40
40














120
B.1.4
H Mech Weapon Des






20













20
B.1.5
H Mech Weapon Cre







40












40
B.1.6
Human Ship Design








40











40
B.1.7
Human Ship Cre









40
40
40








120
B.1.8
Othr H Vehicles Des












20







20
B.1.9
Othr H Vehicle Cre












20
20






40
B.2
Genome Assets













40
40
40
60
40
40
40
300
B.2.1
G Mechs Design













40






40
B.2.2
G Mechs Creation           














40
40
40



120
B.2.3
G Mech Weapon De
















20



20
B.2.4
G Mech Weapon Cre

















40


40
B.2.5
G Ship Design


















40

40
B.2.6
G Ship Cre



















40
40



July
August
September
October

Task
Description
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
W1
W2
W3
W4
Total
B.2
Genome Assets
40
40
40
20












140
B.2.6
G Ship Cre
40
40














80
B.2.7
Othr G Vehicles Des


20













20
B.2.8
Othr G Vehicle Cre


20
20












40
B.3
Menus




36
40
40
40
12







172
B.3.1
Base Menus Design




12











12
B.3.2
Base Menus Creation




24











24
B.3.3.1
Human Menu Design





12










12
B.3.3.2
Human Menu Creation





24










24
B.3.3.3
Human HUD Design





4
4









8
B.3.3.4
Human HUD Creation






24









24
B.3.4.1
Genome Menus Design






12









12
B.3.4.2
Genome Menu Creation







24








24
B.3.4.3
Genome HUD Design







8








8
B.3.4.4
Genome HUD Creation







12
12







24
B.4
Other Art Assets








172
172
172
172




72
B.4.1
Explosions








8







8
B.4.2
Weapons Effects








12
12






24
B.4.3
Items










20





20
B.4.4
Power-ups











20




20


7      Developer BIOs