You are on page 1of 20

Padrões de Projeto

em Jogos Digitais

Lucas Nascimento Ferreira

Porque  usar  Padrões  de  Projeto?  
•  Tempo  e  sequencia  são  essenciais  
•  Ciclos  de  desenvolvimentos  são  pequenos  e  
com  muitas  mudanças  de  design  
•  Grande  comunicação  entre  os  objetos  do  jogo  
•  O  desempenho  é  crí$co  em  jogos  
 

1  

Tipos  de  Padrão  de  Projeto   •  •  •  •  Sequencing  PaBerns   Behaving  PaBerns   CommunicaDng  PaBerns   OpDmizing  PaBerns   2   .

Double  Buffer   •  Tipo:  Padrão  de  sequencia   •  ObjeDvo   –  Fazer  com  que  uma  série  de  operações            sequenciais    pareçam  instantâneas   •  MoDvação   –  Displays  desenham  pixels  sequencialmente   –  Uma  cena  do  jogo  deve  atualizar  sem          problemas  e  rapidamente.   3         .  cada  um  aparecendo        instantaneamente.  exibindo  uma          série  de  quadros  completos.

Double  Buffer   4   .

Double  Buffer   5   .

Double  Buffer   6   .

Double  Buffer   7   .

 subsDtuir          current  por  next     8   .Double  Buffer   •  Solução   –  Encapsular  duas  instâncias  de  buffer:  current  e   next   –  Escrever  em  next    e  ler  de  current   –  Quando  terminar  de  escrever.

Double  Buffer   9   .

Double  Buffer   10   .

Object  Pool   •  Tipo:  Padrão  de  ODmização   •  ObjeDvo   –  Melhorar  o  desempenho  e  o  uso  de            memória   •  MoDvação   –  Jogos  de  console  executam  conDnuamente        por  um  tempo  muito  longo   –  Gerenciadores  de  memória  eficientes  raramente   estão  disponíveis.         11   .

Object  Pool   12   .

 alterando  o  estado  deste   objeto  para  “indisponível”   –  Quando  um  objeto  não  é  mais  uDlizado.  o  pool  retorna  um   objeto  dentre  os  disponíveis.Object  Pool   •  Solução   –  Definir  uma  classe  pool  que  mantém  uma  coleção  de   objetos  reuDlizáveis   –  Cada  objeto  possui  um  método  para  responder            seu  estado  de  uso   –  Quando  o  pool  é  inicializado  ele  cria  a  coleção  inteira  e   configura  os  objetos  para  um  estado  “disponível”   –  Quando  um  objeto  é  requisitado.  o  pool  altera  o   estado  deste  objeto  para  “disponível”     13   .

Object  Pool   14   .

Object  Pool   15   .

Outros  Padrões  de  Projeto   •  •  •  •  •  Game  Loop   Type  Object   Message   Dirty  Bits   Padrões  do  Gof:   –  Observer   –  State   –  Strategy   16   .

Conclusão   •  Os  padrões  do  GoF  podem  ser  aplicados  ao   desenvolvimento  de  Jogos  Digitais   •  Jogos  Digitais  possuem  seus  próprios  padrões   de  projeto   •  O  double  buffer  é  um  padrão  para  fazer  com   que  operações  sequenciais  se  tornem   atômicas   •  O  Object  Pool  melhora  o  desempenho  e  o  uso   de  memória   17   .

gamasutra.  (2009)  Game  Engine  Architecture.Referências   •  Gragory.com/blogs/ MichaelHaney/20110920/90250/ Design_PaBerns_in_Game_Programming.html   •  hBp://www.   •  hBp://gameprogrammingpaBerns.php   18   .  J.com/ introducDon.