Of Stick Figures and Boxes OR Off the Shelf tools For Communicating your Game Design Montreal International Game Summit, 2006 James Everett
James Everett
Game Designer
Artificial Mind and Movement
Communication
Design = Programming = Art =
Designer’s Vision
Programmer’s Implementation Desired Game
Oh Joy! Oh Rapture!
Designer’s Vision Programmer’s Implementation Desired Game
Designer Programmer Desired Game
Not a Doctor
What is the Unified Modeling Language?
History of UML in 30 Seconds or Less
???
OMG! (Object Modeling Group)
How does UML work?
English Français Español Deutsch Nihongo Bosanski Dansk Esperanto
but not cleverComputers: fast,
if (Game) != then
PPPPPP Prior Planning Prevents Piss Poor Performance
Stand Jump Fall Stand Avatar waits in idle stand state -Player can jump from stand Jump Avatar jumps into the air -After completing Jump the avatar enters the fall state. Fall Avatar is airborne and cannot jump again -When the avatar reaches the ground return to stand UML Text
Player Avatar
Behavior Diagrams? Use Case DiagramState Machine DiagramActivity Diagram Use Case Actor Stand Jump Fall Punch Enemy Reduce Enemy HP Enemy Enters Hurt State
Use Case Diagrams Use Case Actor
Customer ATM Withdraw Deposit Balance Check Bank Database
Avatar GAME Movement Combat Health Enemy
ActorPlayer/avatarNPC/Enemy = and
Punch Avatar ACTOR GAME ASSOCIATION
Use Case Actor Use Case 1)Use Case specifications 2)Provide a detailed explanation of use cases 3)Through text
Use Cases are Player Centric
Punch Avatar Punch: 1) The avatar punches an enemy and causes damage. 2)... Kick: 1)... Shoot: 1)... Use Case: Combat Kick Shoot
1) The avatar punches an enemy and causes damage. What is an enemy? How can I tell if I hit the enemy? What if I don’t hit the enemy? How much damage do I cause?
1) The avatar punches an enemy and causes damage. Enemy = Actor Damage = State
Notes on Enemy Enemy is a non-player character Enemy will attack the player The Player must defeat the enemy The player defeats the enemy by reducing its hitpoints to 0 To reduce the enemy’s hitpoints the player must successfully attack the enemy
Player Combat State Machine Diagram (rev 0.01) Punch Idle [Player presses Punch] [Punch Complete]
Player Combat State Machine Diagram (rev 0.01) Punch Idle [Player presses Punch] [Punch Complete] State Transition Guard Condition
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Player Combat Activity Diagram (rev 0.01)
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow Activity
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow Fork Activity
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow Fork Activity Parallel Activities
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow Fork Activity Join Parallel Activities
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Initial Node Flow Fork Activity Parallel Activities Join Activity final node Player Combat Activity Diagram (rev 0.01)
Punch Player Punch: 1) The player punches an enemy and causes damage. 2) Punching an enemy causes it to enter a Hurt state 3)... Kick: 1)... Shoot: 1)... Use Case: Combat Kick Shoot Hurt state
Punch Enemy Reduce Enemy HP Enemy Enters Hurt State Punch Idle [Player presses Punch] [Punch Complete] Punch Avatar Kick Shoot
Kim Possible: Player Combat Actions Use Case Diagram
Kim Possible Jump State Machine Diagram
Is Enemy HP 0? Punch Enemy Reduce Enemy HP Enemy Enters Hurt State No Kill Enemy Yes
More UML Notation Decision Note > Timer Exception Use Case Activity Generating Signal Receiving Signal
Where does it fit?
Concept
Designer Programmer Game
Designer Programmer WARNING
Use Case
All forms of documents must be maintained Impractical to create state machines and activity diagrams for everything WARNING
Don’t be afraid to throw it away WARNING
Complex AI may not play well with UML WARNING
Removes confusion! Clarifies Designs! Scrubs high level to low level!
Still not a Doctor
Resources Books –UML Demystified –Elements of UML 2.0 Style –UML Distilled Programs –StarUML (free, open source) –Visual Paradigm Watch out for ATM examples Contact: