Game Software Engineering
PSU CS410/510GAMES
Lecture 3
June 27, 2000
- The Software Engineering ``Lifecycle''
- Requirements Collection and Analysis: What are we doing?
- Architecture and Detailed Design: How are we doing it?
- Coding: Doing it
- Verification and Validation: Did we do it?
- Maintenance: Making it stay done
- The Game SE Lifecycle
- Requirements: Rules, Performance, System
- Architecture: Common among most games
- State representation (size vs. complexity vs. performance)
- Search methodology (usually recursive DFS: iterations?)
- UI (interactions with other components?)
- Detailed Design: The missing piece
- Coding
- On the importance of constant/poly factors
- Clean code
- Instrumentation
- Verification and Validation
- Unit Test: very important
- System Test: library of test cases
- Inspection: individual and group
- Maintenance
- Most commercial and academic game software
not reproducible!
- Good maintenance: RCS/CVS, root cause analysis,
refactoring
- Verifying maintenance changes: regression testing
- Nondeterminism and PRNGs
- Example: Aces Up
- What are we doing, really?
- Upper-bounding the win rate
- Nailing down the rules
- How will we do it?
- Architectural design
- Detailed design: shuffle, search
- Do it: coding Aces Up
- Did we do it?: testing
- Testing the shuffle
- Testing the search: small cases
- Validating against requirements