Project 3:
Milestone C

CSE 190C, University of Washington, Early Fall Start 2021


 

Overview

Work in your project groups to further develop the game based on your wicked problem. Then create a report and short presentation addressing the issues below.


 

General Progress Report

Include the following:

  1. Your names: List the names of your team members.
  2. Game Title: Either use the same name as you did in Milestone B, or explain the need for the change and give the new name.
  3. Changes Since Milestone B: Describe any alterations of the plans you laid out in Milestone B.

Discussion of Game Elements

  1. Learning Curves: Briefly describe the expected learning curve for your game. Will it be gradual, or will a large effort be required at the beginning? Plot expected effort as a function of time. Next plot the amount of knowledge needed as a function of time. Finally, plot the expected amount of knowledge acquired by the player in the game, as a function of time. Explain your rationale for these graphs.
  2. How Knowledge Will be Conveyed: How will players acquire the knowledge needed to play your game? Will they learn it directly in the game through textual prompts? Will they learn by trial-and-error exploration? Or will they be expected to access external materials such as websites before or during their play sessions?
  3. Embedded Game Structures: Note that you are not required to support multiple roles. However, you must fully answer this question whether or not you will have multiple roles. (Answer part a, then either b1 or b2, and then either c1 or c2.) (a) Do you plan to support more than one role? (b1) If not, what second role could you imagine in your game, and how would that role work? (b2) If so, what are your multiple roles? (c1) If the second role is competitive with your game's first role, describe a possible embedding of the Prisoner's Dilemma in your game. (c2) If the role is not competitive but collaborative, then describe "complementary affordances" (additional operators available only to the new role that empower the players in the second role to contribute to solving the wicked problem in a manner that is not redundant with what players in the first role can do).
  4. Scoring or Indicators of Progress: Describe how players will know if they are making progress towards solving your wicked problem in the game. Some games include multiple indicators such as score, health level, empowerment level, game level, etc. Which of these would you consider to be meaningful if incorporated into your game? Do you consider these to be state variables or simply properties of states that could be computed on demand? For example, distance to the goal is not inherently a state attribute, but might be computed by finding a shortest path from the state to a goal state.

 

Implementation Considerations

  1. State Representation: Describe (in English) the class you are using to represent your game states. (This class might be named Game_State and defined in your COMMON CODE area.) The Game_State class should support the following methods: __str__(self), __eq__(self, other), __hash__(self), in addition to any methods you wish to define in order to make it easy to define your operators, such as can_move and move. By defining these specified methods, you will make it possible not only for some automatic testing of your game, but also for an intelligent (or not-so-intelligent) agent to play your game.
  2. Initial State: Your working code should display the initial game state, at least in a textual form (such as from the __str__ method. If you have a visualization of it, you can include that.
  3. Operators: Make a decision about what operators will be in the NEXT (and probably final) version of your game. Describe the set of operators in the CURRENT version of the game, and then explain how you will implement the remaining operators.
  4. Specification of the Current Working Code: Explain the functionality of your code in its current state. At a minimum, it must at least compile without errors and display the initial game state. If you have implemented any functionality in addition to these, then please describe that.
  5. Specification for Your Upcoming "Working Prototype" Code: What additional features, bug-fixes, and other changes to the code to you envision for your Milestone D working prototype? Remember that at Milestone D you should have a complete and functioning game.


 

Presentation

For Milestone C, please prepare a SHORT presentation involving 3 slides. One slide should be a revised timeline slide, which is an update of the timeline or map slide from Milestone B. Put an asterisk ("*") next to each item on the timeline that is different from what it was at Milestone B.

Your second slide should be a list representing the BACKLOG of your Scrum right after Milestone B.

Your third slide should be a list representing the BACKLOG of your Scrum here at Milestone C. (What code changes and features remain to be performed or added before Milestone D?)


 

Actual Second Working Code

The last required item for Milestone C is Python code that corresponds to what you specified for "Second Working Code" above.