O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

MetaBoard

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 16 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (17)

Quem viu também gostou (19)

Anúncio

Mais recentes (20)

Anúncio

MetaBoard

  1. 1. MetaBoard: a framework for board games. By Laura Risani (alias) with the collaboration of Stéphane Ducasse
  2. 2. Motivation Games like •PacMan • Tetris •Sokoban •Snake •Miner •SameTile •Atomic •BoulderDash A tiled space through which pieces are moved according to some rules
  3. 3. Boardician’s design metaphor There is a board on a table, a post-it of game data attached to it, players sitting around and a director standing. He says 'play' successively to each of them and, as a consequence, they according to their thoughts (play- conditions) modify other players' thoughts by saying things to them and modify the board/post-it with their hands.
  4. 4. board data play- conditions #play director player player player player
  5. 5. BGPlayer BGDirector BGData BGUserInterface BGBoardSpace BGBoardPlace BGWall BGFloor BGMovableItem BGSteadyItem <PlayCondition> BGBoard BGPosition * * * * BGHuman BGPointer
  6. 6. •BGPlayer : action of modifying game’s board/data/players' play-conditions when 1. receiving #play 2. receiving other msg to do some work related to its playing purpose Tell #nextPlayer. •<PlayCondition> : anything that conditions how a player behaves when receiving #play (like BGDirection : BGDown, … ; BGPlayState : BGOver , BGPaused, … ; BGUserInput: BGClick, BGKeyStroke). Not necessarily directly known by the player. •BGHuman : action of modifying (…) because of user input.
  7. 7. •BGDirector : action of directing game flow. Initialize and know the things that made up the board game. Loop while game not over : decide who plays next, send him #play. •BGBoard : board’s space and items placed at it. •BGData : game data that doesn't belong to any particular object (like lives, score, ... ) •BGUserInterface : handling of user input/output. •BGFloor can hold any type of BGBoardItem (BGMovableItem, BGSteadyItem), while BGWall doesn’t accept any
  8. 8. A possible workflow To implement a game with the framework 1. Define game's director (subclass of BGDirector) and then define/implement successively what is needed in each msg sent from within BGDirector's msg #initialize. 2. Run game sending 'BGDirectorSubclass new play' and adjust details according debug windows. 3. Add enhancements (menu, settings, … )
  9. 9. Example : Mines (MI-) BGFloor MIBoard MITile MIMine MINumber MIVoid BGBoardSpace MICoverState MICovered MIUncovered MIFlagState MIFlagged MIUnflagged BGBoard *
  10. 10. BGData MIData BGPlayer MITileAction BGHuman MIHuman BGDirector MinesGame •MIData: mines left, seconds spent playing. •MITileAction: action of doing something on a tile (toggle flag / uncover) and carrying on its consequences. It’s play-conditions are the pointed MITile’s MICoverState and MIFlagState. ( 1° ) ( 2° ) MICoverState MIFlagState
  11. 11. Example : Tetris (DP-) BGSteady Item DPBoard DPSquare DPPiece BGBoard BGMovable Item DPPieceLayout * BGData DPData •DPData: number of completed lines.
  12. 12. BGPlayer DPPieceMover BGHuman DPHuman BGDirector TetrisGame •DPPieceMover: action of moving current piece. It’s play-condition is aBGDirection. •DPPieceDropper: action of dropping current piece (if not bottomed periodically drop it, if bottomed add it to board and drop a new one). It’s play-conditions are aBGTimedState and the BGPosition of the board where new pieces are first dropped) ( 1° ) ( 2° ) BGTimedState BGDirection DPPieceDropper ( 3° ) BGPosition
  13. 13. Example : Pacman (E-) BGBoardSpace BGFloor BGMovableItem BGSteadyItem EBoard * * EEater BGBoard EBiFloor ETeletransporter ETriFloor EDirectedFloor EBullet EBigBullet ESmallBullet EScoreItem EMonster BGData EData
  14. 14. BGPlayer EEaterMover BGHuman EHuman BGDirector PacmanGame ( 1° ) ( 2° ) BGTimedState BGDirection EMonsterMover ( 3° ) EScoreItemPlacer ( 4° ) BGDirection EAttitude EVulnerability EMoveConseq uencer , , EPositionSituation EEaterAtBullet , EEaterAtEmptyFloor , EEaterAtMonster , EEaterAtScoreItem , EMonsterNotAtEater
  15. 15. •EData: lives, score. •EMoveConsequencer : action of carrying on consequences of moving an EEater / EMonster. Play-conditions: BGPosition, EEater/EMonster , EPositionSituation subclasses. •EEaterMover : action of moving an EEater and carrying on consequences. Play-conditions: BGDirection. •EMonsterMover: action of moving an EMonster and carrying on consequences. Play-conditions: BGFloor subclasses, BGDirection, EVulnerability, EAttitude. •EScoreItemPlacer : action of placing/displacing a EScoreItem on the board. Play-conditions: BGTimedState.
  16. 16. Other example games : Sokoban, Snake, SameColor. More info at http://boardician.blogspot.com/2015/07/metaboard.html Questions? Comments? Suggestions? Mail me at laura.risani@gmail.com Thank you ! <3

×