- Site: http://gamadu.com/artemis/
- Links de apoio:
- http://ploobs.com.br/forum/viewtopic.php?f=33&t=136
- http://t-machine.org/index.php/2007/11/11/entity-systems-are-the-future-of-mmog-development-part-2/
- http://slick.javaunlimited.net/viewtopic.php?t=3076
Fui nestes foruns/sites li seu conteudo, mas ainda não entendi bem, vou dizer o que entendi sobre o Artemis e confirmem se esta correto.
Entidades: São classes “vazias” (Sem regra/lógica de negocio , ações, Dados/Estados, etc.), no maximo possuem metodos GET, SET e nem contem componentes.
Obs: Na pratica nem precisaria ter uma classe Entidade (No maximo ter uma com o atributo ID para garantir que a entidade sera unica), o Artemis parece tratar entidades como “grupos de componentes”.
Componentes: não guardam qualquer lógica também, somente dados e estados.
Sistema (systems): Aqui é onde ocorre toda a regra de negocio (Cada systema pode trabalhar com um ou mais componentes dentro da classe), a lógica dos dados e estados (Regra de negocio) fica aqui nos sistemas.
Obs: Até a criação de um mapa e detecção de colisão seria dentro de um “system”?
Nota: Ter multiplos componentes do mesmo tipo em uma entidade é usualmente uma indicação de um “design flaw”. O que isso quer dizer?
Queria entender melhor as diviões propostas pelo artemis, por e exemplo.
- System:
|–EntityHero
…|–Component Move
…|–Component Render Image
…|–Component … (Outras sugestõe aqui??)
Esta Correto?
Eles sempre criam um pacote “spatials” em seus exemplos que tem classes que estendem uma classe “Spatial.java” que tem “World world; e Entity owner;”, isso é pra deixa-los no mesmo mundo, no caso as entidades?
Exemplo de um projetos:
Projeto 1: http://gamadu.com/svn/tankz
Projeto 2: http://gamadu.com/svn/artemis