of stick figures and boxes or off the shelf tools for communicating your game design montreal...
TRANSCRIPT
Of Stick Figures and Boxes
OR
Off the Shelf tools For Communicating your Game Design
Montreal International Game Summit, 2006
James [email protected]
James Everett
Game Designer
Game Designer
Artificial Mind and Movement
Communication
Design =
Programming =
Art =
Designer’s Vision
Designer’s Vision
Programmer’s Implementation
DesiredGame
Oh Joy! Oh Rapture!
Designer’s Vision
Programmer’s Implementation
DesiredGame
Designer
Programmer
DesiredGame
Not aDoctor
What is the Unified Modeling Language?
History of UML in 30 Seconds or Less
???
OMG!(Object Modeling Group)
1997
2004
1.0
2.0
How does UML work?
English
FrançaisEspañol
Deutsch
NihongoBosanski
Dansk
Esperanto
but not cleverComputers: fast,
if (Game) !=
then
PPPPPP
• Prior
• Planning
• Prevents
• Piss
• Poor
• Performance
Stand
Jump
Fall
StandAvatar waits in idle stand state-Player can jump from stand
JumpAvatar jumps into the air-After completing Jump the avatar enters the fall state.
FallAvatar is airborne and cannot jump again-When the avatar reaches the ground return to stand
UML Text
Player Avatar
Behavior Diagrams?
Use Case Diagram State Machine Diagram Activity Diagram
Use Case
Actor
Stand
Jump
Fall
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Use Case Diagrams
Use Case
Actor
Actor
Customer
ATM
Withdraw
Deposit
BalanceCheck
BankDatabase
Avatar
GAME
Movement
Combat
Health
Enemy
Actor Player/avatar NPC/Enemy
= and
Punch
Avatar
ACTORGAME
ASSOCIATION
Use Case
Actor
Use Case
1) Use Case specifications2) Provide a detailed explanation of use cases3) Through text
Use Cases arePlayer 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 EntersHurt State
Player Combat Activity Diagram (rev 0.01)
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Flow
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Flow
Activity
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Flow
Fork
Activity
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Flow
Fork
Activity
Parallel Activities
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt State
Initial Node
Flow
Fork
Activity
Join
Parallel Activities
Punch Enemy
Reduce Enemy HP
Enemy EntersHurt 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 EntersHurt 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 EntersHurt State
No
Kill EnemyYes
More UML Notation
Decision
Note
<<extends>>Timer
Exception
Use Case
Activity
GeneratingSignal
ReceivingSignal
Where does it fit?
Concept
Designer
Programmer
Game
Designer
Programmer
WARNIN
G
Use Case
• All forms of documents must be maintained
• Impractical to create state machines and activity diagrams for everything
WARNIN
G
Don’t be afraid to throw it away
WARNIN
G
Complex AI may not play well with UML
WARNIN
G
•Removes confusion!•Clarifies Designs!•Scrubs high level to low level!
Still not aDoctor
Resources• Books
– UML Demystified– Elements of UML 2.0 Style– UML Distilled
• Programs– StarUML (free, open source)– Visual Paradigm
• Watch out for ATM examples• www.agilemodeling.com
Contact: [email protected]