Skip to content
gabrielsr edited this page Sep 20, 2014 · 13 revisions

Arquitetura

Utilizaremos o padrão de arquitetura Entity-component-system (ECS).

Entites

Representam um elemento do jogo. São containers de componentes.

Iremos utilizar Entities para representar:

  • Character

  • Bomb

  • Hard/Soft Blocks

  • Monster

  • Powerup

Components

Os dados de um aspecto de um elemento que interage com o mundo do jogo. São os TAD (tipos abstratos de dados dos Systems)

  • Placement (posição e orientação)

  • ExplosionBarrier (como interfere no caminho de uma explosão )

  • Explosion

  • BombDropper

  • Health (quantas vidas)

  • Physical (posição, velocidade)

  • PowerupType

Systems (ou Controllers):

Iteram sobre os TADs de determinados tipos aplicando regras. Como resultado das regras podem ocorrer mudanças dos dados dos TADs ou criação de Events.

Events:

Objetos criados para representar a ocorrência de uma situação. São uma forma de comunicação entre os sistemas.

Exemplo de Eventos são:

CollisionEvent

Uma entidade tenta ocupar uma celula já ocupada por outra entidade

TriggeredBombEvent

Uma Bomb foi disparada e está pronta para iniciar uma explosão

Note
Events, Components e Systems são implementados como classes Java.

Diretivas da Arquitetura

  • Systems não chamam uns aos outros

  • Systems se comunicacam criando e consumindo Events e modificando Components.