GRIMM GRIMM
Choose Choose-
- Your
Your-
- Own
Own-
- Story Language
Story Language
Mike Lenner Mike Lenner Billy Liu Billy Liu Mariya Mariya Nomanbhoy Nomanbhoy Becky Plummer Becky Plummer
GRIMM GRIMM Choose- -Your Your- -Own Own- -Story Language - - PowerPoint PPT Presentation
GRIMM GRIMM Choose- -Your Your- -Own Own- -Story Language Story Language Choose Mike Lenner Mike Lenner Billy Liu Billy Liu Mariya Nomanbhoy Nomanbhoy Mariya Becky Plummer Becky Plummer What is GRIMM What is GRIMM ! Named for
Mike Lenner Mike Lenner Billy Liu Billy Liu Mariya Mariya Nomanbhoy Nomanbhoy Becky Plummer Becky Plummer
! ! Named for famous storytellers
! ! Designed to make creating an interactive,
! ! No programming experience required
! ! Reallocates the majority of effort where it
! ! First section of GRIMM programs are declarations
First section of GRIMM programs are declarations
! ! Developer declares scenes within a story. Each scene
Developer declares scenes within a story. Each scene contains standard set of properties contains standard set of properties
– – Name (“The Living Room”) Name (“The Living Room”) – – Description (“You are standing in a room with green walls”) Description (“You are standing in a room with green walls”) – – Picture (“ Picture (“room.jpg room.jpg”) ”) – – Items (couch, notebook) Items (couch, notebook) – – Exits (hallway, kitchen) Exits (hallway, kitchen)
! ! Developer may also declare items and characters
Developer may also declare items and characters
scene castleGate scene castleGate scene scene courtYard courtYard castleGate name “The Castle Gate” castleGate name “The Castle Gate” castleGate description “You are standing in front of a large castleGate description “You are standing in front of a large wooden gate. The gate is locked and there are two soldiers wooden gate. The gate is locked and there are two soldiers preventing your passage.” preventing your passage.” castleGate exit courtYard castleGate exit courtYard courtYard name “Castle Court Yard” courtYard name “Castle Court Yard” courtYard description “You have entered the castle court yard. courtYard description “You have entered the castle court yard. You see that a joust tournament is about to begin.” You see that a joust tournament is about to begin.” courtYard contains item lance courtYard contains item lance courtYard contains item helmet courtYard contains item helmet character Merlin character Merlin Merlin holds item staff Merlin holds item staff
! ! Second part of GRIMM program is the
! ! Control flow constructs guide user through
! ! Conditionals test the state of the user
while user inside dungeon while user inside dungeon read user input read user input if user says “unlock cage door” and not user has key then if user says “unlock cage door” and not user has key then say “You cannot unlock the door without the key.” say “You cannot unlock the door without the key.”
say “The door is unlocked and you slip through the cage say “The door is unlocked and you slip through the cage
next door.” next door.” goto treasureRoom goto treasureRoom
say “You open the chest and you see a silver key.” say “You open the chest and you see a silver key.” read user input read user input if user says “take key” then if user says “take key” then user pickup key user pickup key say “You took the key” say “You took the key”
say “The chest has closed shut on its own.” say “The chest has closed shut on its own.” endif endif endif endif endwhile endwhile
! ! Story is played out by displaying current
! ! Many such games are text based
! ! User interacts with a GUI console
Scene title Scene image Scene description Non-hidden scene exits User items Non-hidden scene items User – Game interaction
scene castle scene name “Castle Path” scene description “You are standing on a dirt path. Ahead of you in the distance you see the Castle of the North Kingdom. You think you hear something that sounds like trumpets blaring way off in the distance. To your left is a small dagger.” scene image “castle.jpg” scene castle contains item dagger scene exit gate if user says “pick up dagger” pickup dagger endif
Scene Update Scene Update
slay dragon
! ! Lexer
! ! Parser
! ! Walker
! ! Translator
! ! Runtime Environment
! ! Understand big picture before coding
! ! Split up responsibilities earlier in the
! ! Know the scope of your language from the
! ! Difficult to maintain free
! ! GRIMM is a useful tool for the storywriter
! ! Maintained somewhat intuitive syntax
! ! Extremely successful team collaboration