Projplan
Projplan
Introduction
Project Scope
GameForge is a graphical tool used to aid in the design and creation of video
games. A user with limited Microsoft DirectX and/or Visual C++ programming
knowledge will be able to construct a basic 2D-arcade game. The idea is to limit
the amount of actual code written by the user. It will also assist experienced
programmers in generating the Microsoft DirectX and Microsoft Windows9x
overhead necessary for basic game construction, allowing them to concentrate on
more detailed game design issues and implementation.
Critique: Bounding is a critical element of the project scope and the project plan. It would be a
good idea to try to "bound" all the general statement of scope noted here. For example, “a basic
2D arcade game” is open to very broad interpretation. What is basic to one reader might be
unacceptable to another.
The software will consist of a number of inputs, graphically assisting the user in
creating on-screen objects including the following:
User Created Objects (player character, creatures, static objects)
- Bitmaps (with animation)
- Collision Detection Areas
- Movement Routines
- Additional Object Attributes
Backgrounds
Input Device Setup
Sound Events
Outputs include:
User Created Sprite Objects
Bitmaps
Microsoft VC++ (with DirectX code) Files
Game Project Files
Text Files (containing sprite attributes)
1
Database Files
Comment: The author have done a good job of providing the reader with a conceptual model of
the information transform that is to occur.
Critique: A fair amount of application specific jargon is introduced here without definition.
Might be a good idea to refer the reader to a glossary or provide a brief definition as footnotes.
2
Input Processing
Output Processing
Data files – files containing information specified by the user that are
read by the C++ code. The files are generated by the user interface
(information is taken from the resulting database). The user’s game
can be tweaked by editing these files rather than rewriting and
recompiling the C++ code.
VC++ Files (.cpp) – Finished projects can be saved as .cpp files that
can be compiled with Microsoft’s Visual C++ compiler to create an
executable file for the game. The VC++ engine runs these files.
Performance/Behavior Issues
GameForge also requires Microsoft DirectX 7.0 or above. Users may also want
to obtain the DirectX 7.0 SDK if they plan on expanding the GameForge library
files beyond their original scope.
GameForge also requires the Microsoft Visual C++ 6.0 compiler. GameForge’s
VC++ code may be compilable using Borland or some other VC++ compiler, but
functionality is not guaranteed.
3
Management and Technical Constraints
PA Software will be using the Rapid Prototyping model during design and
implementation:
GameForge Prototype
List of Revisions List of Revisions
Requirements System
Deliver
GameForge
Comment: The above diagram presents a useful overview of the project approach. It does not
replace a detailed timeline schedule, but it does provide a “quick look” at what the team will be
doing.
4
Project Estimates
Critique: Given the situation, the above computation is acceptable. However, it is important to
note that the sample for averaging is too small to be meaningful. In the real world, the average
should be computed using at least 5 to 10 projects in the same application domain.
14-Point Questionnaire: 34
5
14-Point Questionnaire: 42
Based on the estimations from the previous section, and dividing by the
time estimate from previous projects, we can calculate a duration estimate for
GameForge:
Interface: 245.98
Engine: 339.19
Total Function Points: 585.17
GameForge est. Person Months: 11.23
LOC = FP*30
GameForge est. Lines of Code: 17,555
The CoCoMo model was also used to verify the estimate calculated by
using the Function Point metric.
Effort = a (KLOC) b
Duration = c (Effort) d
6
Reconciled Estimate
Comment: The two estimates are amazingly close to one another. Don’t expect this to be the
case in most software projects.
Project Resources
While a complete team would contain all of the following personnel, PA Software
has four members. Each team member will be performing multiple jobs.
Required Staff
Lead VC++/DirectX programmer
Assistant VC++/DirectX programmer
Lead VB/DirectX programmer
Assistant VB/DirectX programmer
Windows Help programmer / Tutorial programmer
Documentation/Librarian
Manual Designer
Graphic Designer
Web Designer
Beta Testers
Required Hardware
4 Development Systems
- PIII 600Mhz
7
- 256 MB RAM
- 20 GB HD
- 16 MB Video Card
- Zip Drive
1 CD-ROM Writer
1 Scanner
Required Software
Windows 98SE (4 licenses)
Microsoft Visual C++ 6.0 (2 licenses)
Microsoft Visual Basic 6.0 (2 licenses)
Microsoft MSDN Library (newest version) (4 licenses)
Microsoft DirectX 7.0a SDK (4 copies)
Microsoft Office 97 (4 licenses)
Adobe Photoshop 5.5 (1 license)
8
Risk Management
Project Risks
Comment: It would appear that “late delivery” is a significant issue, givene the estimates presented
earlier in the plan.
For a more detailed list of project risks, see the Risk Mitigation, Monitoring, and
Management (RMMM) document.
Risk Table
Critique: Team should define the meaning of the categories in the “category” column and the
numbers in the “impact” column.
9
have a specified method to handle the risk. This is to ensure that if a risk does occur,
there is predetermined path to follow when attempting to manage the risk.
For more information see the Risk Mitigation, Monitoring, and Management (RMMM)
document.
10
Project Schedule
Process Model
PA Software will be using the Rapid Prototyping model during design and
implementation:
GameForge Prototype
List of Revisions List of Revisions
Requirements System
Deliver
GameForge
Framework Activities
Customer Communication
Planning/Design
Risk Analysis
Programming
Testing
Customer Evaluation
Task Set
Requirements specification
Interface construction
Engine construction
Help construction
Testing
11
List of deliverables
Documentation
System Requirements Specification
Software Requirements Specification
Design Document
Project Plan
Software Quality Assurance Plan
Risk Mitigation, Monitoring, and Management Plan
Software Configuration Management Plan
Test Plan
Code
Engine Prototypes
Interface Mockups
Interface Database
Complete Engine
Complete Interface
Integrated System
Complete Product
12
Functional Decomposition
13
Task Network
Requirements
Specification GameForge
14
Timeline Chart
K = Ken, J = Jon, M = Matt, B = Bill
2-Jan 9-Jan 16-Jan 22-Jan 30-Jan 6-Feb 13-Feb
< = See next chart
s m t w r f s s m t w r f s s m t w r f s s m t w r f s s m t w r f s s m t w r f s s m t w r f s
Requirements Spec. & Design
Requirements specification
K, M, J, B
Engine architecture design
K
Interface layout and design
M
Documentation
15
More Timeline Chart
Engine Help J
FAQ J
Game building tutorials J
Manual J
Validation testing B
Performance testing B
In-house Alpha testing B
Outside beta testing B
Documentation
Test Plan J
16
Staff Organization
Team Structure
Role Definitions
Ken Nelson
Lead Engine Programmer: Ken is the complete DirectX engine
programmer, with the exception of DirectSound. This includes all
logic programming.
Lead Engine Designer: Ken is also the primary engine designer.
Interface Designer: Ken is part of the interface design team.
Help/Tutorial Programmer: Ken is part of the Windows Help
team.
Documentation: Ken is responsible for much of the required
documentation.
Additional Responsibilities: Ken is also the primary consultant
for Jon on DirectSound issues, and for Matt on interface design
issues.
Jonathan Schmoll
Assistant DirectX Programmer: Jon is coding the DirectSound
portion of the engine.
Engine Designer: Jon is part of the engine design team.
Interface Designer: Jon is part of the interface design team.
Help/Tutorial Programmer: Jon is part of the Windows Help
team.
Web Master: Jon is the author and maintainer of
www.patheticattempts.com.
Documentation: Jon is responsible for much of the required
documentation.
17
Matthew Forster
Lead Interface Programmer: Matt is the complete interface
programmer, including all database (SQL) programming, Visual
Basic programming, and DirectX (for VB) programming.
Interface Designer: Matt is part of the interface design team.
Documentation: Matt is responsible for much of the required
documentation.
Bill Lord
Engine Designer: Bill is part of the engine design team.
Documentation: Bill is responsible for much of the required
documentation.
Progress is communicated via e-mail. All files sent to other teams and/or
team members are done via email or ICQ. These communications are
done informally, unless special documentation of progress is required. A
test log is kept for error tracking.
PA Software contacts our clients via email, and sets up in-person meetings
when necessary. A beta tester report form is used for formal testing
outside of PA Software.
18
Tracking and Control Mechanisms
The SQA team’s objective is to ensure that the product does not deviate
far from the original design specifications. If it is discovered that deviation
has occurred, the SQA team will notify the development team to prevent
future deviations and to correct the previous deviations. Also, the SQA
team will perform a walkthrough to analyze the product’s quality at any
particular stage of development. Error detection and possible
enhancements are also expressed to the development team.
The objective of SCM is to limit the impact changes may have on the
entire system. This will help to eliminate unnecessary changes, and to
monitor and control any necessary changes. This allows software
development to continue, despite large and/or insignificant changes
without significant backtracking, lessening development time and
resulting in a higher-quality product.
The SCM team will oversee these activities, and any changes to existing
code or architectural design must pass their inspection before they are
carried out.
19
SCM Organizational Role
The SCM team will work closely with the SQA (Software Quality
Assurance) team, cross-examining many of the submitted documents and
software change requests. Software Engineers will submit change
requests directly to the SCM team for their inspection and approval.
Critique: The sections on tracking and control need to be more specific. Who (by name) is
responsible for SQA and SCM for this project? What are major SQA checkpoints, reviews?
Where can we get more information on change control procedures for this project?
20
Appendix
a b
mode basic intermediate basic intermediate
organic 2.4 3.2 1.05 1.05
semi-detached 3.0 3.0 1.12 1.12
embedded 3.6 2.8 1.20 1.20
21