CS 121 -- Fall 2012


Phase 2 - Alpha Design and Implementation

1. Overview

In Phase I you developed your game concept. In Phase 2 you will develop an Alpha release, which is a small, playable game that will be tested in the classroom. The Alpha release will be a scaled down version of your final game, but one that provides a good representation of the gameplay experience. In terms of implementation, the Alpha release should include: a stable architecture and a reasonable user interface. It is up to you to define your Alpha release then carry out its planning, design, construction, and testing. key points are: to promise less and deliver more and Alpha should focus on what will work.

  1. Summary of Phase 2 deliverables
  2. Description of Phase 2 deliverables
  3. Submission
  4. Grading

2. Summary of Phase 2 deliverables

Major Deliverables Component Points
Management Weekly management updates 5 each
Architecture Inital architecture 15
Architectural Design Review Package 10
Architectural Design Review 10
Revised Architecture 10
UI Design Task Analysis 10
Initial UI 10
UI test 10
Final UI 10
Testing Test Plan 10
Test Plan Review Package 10
Test Plan Review 10
Final Test Plan 10
Code Weekly Prototype/Code development 5 each
Alpha Release Executable 10
Class presentation 20
Documentation 20


3. Description of Phase 2 deliverables

3.1 Management

Management updates will continue through Phase 2 as described here.

3.2 Architecture

A major component of Phase 2 is the design and development of your software architecture. You will develop an architectural design, the design will be reviewed by another team, and then you will revise the design based on review recommendations. The core architecture should be implemented in the Alpha release.

3.2.1 Initial Architecture

Your architectural design is a (hyperlinked wiki) document that explains what your architecture does and how it does it. The design should include the following:

  1. Use Cases the architecture will realize (these will typically be the "must have" Use Cases for your Alpha release)
  2. Domain diagrams based on your Use Cases
  3. Class diagrams identifying major responsibilities and collaborations for each class
  4. Description of important models/algorithms/data structures and their parameters (e.g. scoring algorithms and simulation models). Also, describe any code that you might be reusing.
  5. Sequence diagrams illustrating how the classes collaborate to realize the Use Cases
  6. A critique of the design with respect to good design principles
  7. A rationale for your choices
Since this design will likely evolve over Phase 2, you will want to construct the document so that it is easy to change; i.e. as a hyperlinked wiki document. (I don't know of a good way to create easily editable online UML diagrams so these may have to be presented as pdfs.)
It is important to realize that this Architecture will be the blueprint for your whole game. I would expect that the Architecture includes features that are not included in your actual Alpha release, e.g., saving and restoring a game. Thus at various levels design 'boxes' may not be included in lower design levels because that particular feature is not going to be in the Alpha.



3.2.2 Architectural Design Review Package

Your architecture will be reviewed by another team. You will prepare an architectural review package (a hyperlinked wiki document) that includes the following:

  1. Table of contents
  2. Introduction
  3. Agenda for the review
  4. Recommendation for how the review should be split up among four reviewers
  5. A roadmap to the various architectural design documents (with links to the actual components) for each aspect of the review
  6. A critique of the architecture including strengths, weakness, and a ratioanale for key decisions
  7. Where/how to access additional information (e.g. prototypes, proposal)


3.2.3 Architectural Design Review

You will review ANOTHER team's architectural design with the goal of answering the following questions:

Each member of the reviewing team will be assigned responsibility for some aspect of the architecture. Each member of the reviewing team Must come to the design review with an understanding of their portion of the architecture, e.g., its strengths and weaknesses; be prepared to describe that aspect of the architecture at a high level to the other reviewers; and to lead a discussion about it. Through all the discussions, the review team will agree on an assessment of the architecture, completing the Architectural review rubric and issuing a set of recommendations. The recommendations will be organized into lists of "must do," "should do," and "should consider." Finally, the review team will decide if the architecture "passes," "passes subject to conditions," or "fails." In the case the architecture fails the review, the originating team must correct deficiencies in its design and undergo another review.

Individual members of the reviewing teams will be evaluated on her/his preparation, contributions to the discussion, and role in assessing the architecture. The team will aso be evaluated on the quality of its recommendations. For more details, see the review rubric.



3.2.4 Revised Architecture

You should respond to the shortcomings in your architecture raised in the review. In particular, you can address recommendations by revising your architecture or giving a cogent argument as to why that recommendation should be ignored. You should summarize your revisions and arguments in a report that links (as appropriate) to updated design documents. Your final architecture will be evaluated according to this rubric. (This rubric is identical to the one used in the review except it has additional points about how you responded to problems raised in the review.)

3.3 UI Design

During this phase, uou will design the user interface(UI) of your game (not the just the Alpha release) based on task analysis. You will user-test the design on your classmates and grutors, then revise the design based on test results. Hopefully we can test UIs with one of the schools.

3.3.1 Task analysis

You will perform a task analysis of your game. This should include:

  1. The hierarchy of goals the player confronts in your game. Low-level goals will typically change across time so focus at the start of your game. See Will Wright 13:30-16:30 on user goals.)
  2. Explain how the player comes to understand these goals.
  3. For the 2 or 3 most important mid-level goals, describe a sequence of simple tasks the player can complete in order to achieve those goals.
  4. For the simple tasks described in the previous step, explain the UI elements the player will use to achieve the tasks.

Your task analysis will be evaluated according to the following rubric.


3.3.2 Initial UI Design/Test

You will develop a preliminary UI based on your task analysis and good UI design principles. You may use whatever technology you deem best, e.g. paper, electronic, but the design must be captured in some electronic form (e.g. photo) so it can be uploaded to your wiki. (You might consider this fast UI prototype tool: http://www.foreui.com/.) Your design will be evaluated according to this rubric.

You will test your UI design on your classmates and (hopefully) middle school students. You should devise a test protocol (based on the sample given in class) that reflects the priority established in your task analysis. It should take 20-25 minutes. You should practice on your teammates before the in-class demonstration.)

During the test you will work in interviewer/scribe pairs. Scribe notes should be uploaded to your trac.

Your design/test/notes will be evaluated according to the following rubric. Rubrics will be completed by classmate observers during the in-class session. Rubrics will be completed by grutors/faculty during the testing on middle school students.

In addition, you will do a smaller remote test of the UI on your (non-Sycamore) students by posting (at least) three images of your UI design to your weekly blog post. You will also construct a survey that includes three questions that the students will answer. These questions should be somewhat open-ended and require about a paragraph to answer. (Do not ask simply yes-no questions.)

3.3.3 Revised UI

Your final design should address issues raised in the user tests. You should also critique your design and discuss its shortcoming. The design and critique will be evaluated according to this rubric.

3.4 Testing

You will develop a test plan, it will be reviewed by another team, and you will revise it based on their recommendations.

3.4.1 Initial Test Plan

Your test plan should includes include a broad range of tests including the following:

  1. For each non-trivial method, unit tests that, in particular, test boundary and error conditions.
  2. For each component (class or module), identify the areas of high risk (where errors are likely or where they would be difficult to track) and develop component tests.
  3. Identify areas of high risk cross-component functionality and devise appropriate integration tests.
  4. Identify common game play paths and develop appropriate system tests for them.
  5. Develop a regression test suite that is run before new code is to committed to the repository.
In addition to your tests, your test plan should explain your protocol for Finally, your test plan should include a critique of the weaknesses of your test plan and a rationalization of your choices.


3.4.2 Test Plan Review Package

Your test plan will be reviewed by another team. You will prepare a test plan review package (hyperlinked wiki document) that includes

  1. Table of contents
  2. Introduction
  3. Agenda for the review
  4. Recommendation for how the review should be split up among four reviewers
  5. A roadmap to the various test plan and design documents (with links to the actual components) for each aspect of the review
  6. Your critique/rationalization
  7. Where/how to access additional information (e.g. architectural design, use cases)
You should read the following section before deciding how the review will be organized.

3.4.3 Test Plan Review

All teams (Reviewers) will review a single team's (Reviewed) test plan design. The Reviewed team will present their test plan and their presentation will be evaluated by the presentation rubric. Each Reviewer team member will be assigned responsibility for some aspect of the reviewed test plan. It is the responsbility of each Reviewer Team to divide up the reviewed test plan into the appropriate number of parts. Each Reviewer should come to the review with an understanding of their portion including its strengths and weaknesses, be prepared to describe it at a high level to the other reviewers, and to lead any discussions about it. Through these discussion, each Reviewed team will agree on an assessment of the reviewed test plan, completing the test plan review rubric and issuing a set of recommendations. The recommendations will be organized into lists of "must do," "should do," and "should consider." Finally, each Reviewer team will decide if the test plan "passes," "passes subject to conditions," or "fails." In the case the test plan fails, the Reviewed Team must correct deficiencies in its design and submit to another review.

Individual members of the Reviewer Teams will be graded on her/his preparation, contributions to the discussion, and role in assessing the test plan. The Reviewer Teams will also be evaluated on their recommendations.



3.4.4 Final Test Plan

If you are the Reviewed team, you should respond to the shortcomings in your test plan raised in the review. If you are a Reviewer team, you should have learned enough to appropriately update your test plan. In particular, you can address a recommendations by revising your test or giving a cogent argument as to why the recommendation should be ignored. You should summarize your revisions and arguments in a report that links (as appropriate) to updated test plan documents. Your final test plan will be evaluated according to: rubric. (This rubric is identical to the one used in the review except it has additional points about how you responded to problems raised in the review.)

3.3 Code/prototypes

Every week you will develop code; this code can be in the form of a prototype that is intended to be thrown away or a program that you will evolve into to your Alpha release. Details on the requirements for this code is given here. Important and non-trivial details about submitting code is given here.

3.4 Alpha Release

Your Alpha release deliverable will include the game executable and installation/execution instructions. Important: your executable submission should follow these guidelines. You will also give an in-class presentation and demo.

Documenting your design, tests, and code should be an ongoing process across Phase 2. When the Alpha release is complete you should provide a wiki document that provides a roadmap to the various forms of documentation including:

  1. UML: use cases realized by the Alpha release; class, sequence and other diagrams that provide a snapshop of your architecture and how it works to realize your use cases
  2. Tests: results of UI tests and proposed test plan as well as known bugs/issues report
  3. Installation/users guide: what do I need to know to run/play your Alpha release
  4. Coding conventions used
Your executable and documentation will be evaluated by this rubric rubric. Your presentation will be graded by your peers and the faculty using: rubric.


5. Grading

I am not going to rehash grading here. Check out: grading

4. Rules and Submissions

Deliverables are due as specified in the Calendar. Be sure to read the guidelines for submitting prototypes/code.

Your Trac should have a deliverables table that includes for each deliverable its due date, actual submissions date (you should fill this in), link to a separate wiki page that documents your progress/process on the deliverable (if needed), and links to your actual submissions.

Each team is entitled to two late days that can be applied to any phase 1 deadline except those involving in-class scheduled events (e.g. Customer Elicitation). A late submission that is not redeemed with late days loses ten percent of its value for each day missed.

Mike Erlinger

Last Modified Sunday, 25-Nov-2012 09:53:42 PST