Eu li um pouco sobre o design de jogos com base em componentes, mas ainda estou tendo problemas para descobrir como exatamente você implementaria o jogo. Existem bons exemplos de jogos baseados em componentes ou mecanismos de jogos que eu poderia ler para ter uma idéia melhor disso?
fonte
Aqui estão alguns recursos que você pode gostar:
Existe esse tópico incrível. Não é um mecanismo de jogo em si, mas o design e a discussão são ótimos.
Uma pergunta no StackOverflow sobre um tópico muito semelhante.
Para responder à pergunta original, a estrutura do Elephant em C # é exatamente o que você deseja: foi descontinuada, mas ainda existe aqui para referência da implementação.
fonte
Este site começa em uma implementação básica.
A maioria dos itens acima é inspirada neste artigo em T = Machine
Comecei em uma implementação básica inspirada nos dois links acima. Tenho certeza de que desviei muito da teoria pura dos sistemas de componentes e, sem dúvida, há bugs, mas pode ser útil se você estiver procurando por alguns exemplos simples.
Bricle (C # / XNA)
No momento, basta carregar algumas entidades básicas, manipular alguns eventos etc. Os principais locais que você procura são a pasta Engine.EntitySystem e provavelmente a PlayScreen onde as entidades são realmente criadas.
Criar um armazenamento de componentes simples baseado em tipo e ocultar isso atrás de um EntityManager comum era relativamente simples.
O primeiro desafio que encontrei foi quando sistemas individuais podem exigir vários tipos de componentes (por exemplo, componentes físicos e InputMoveable). Para usar a linguagem de banco de dados relacional, tive que encontrar uma maneira de fazer uma consulta JOIN. Para isso, criei outro tipo de coleção para entidades criadas a partir das consultas do tipo de componente correspondente - cada coleção de entidades é conectada a um evento OnEntityCreate e verifica se ela corresponde. Ainda há alguns bugs lá.
O segundo desafio foi realmente criar um 'objeto de jogo' - eu os chamei de modelos. Aqui provavelmente não sou muito puro de acordo com as especificações de T = Machine, mas parece funcionar. Os modelos agrupam instanciações de componentes e permitem uma composição mais fácil da entidade (ou seja, a bola é extraível e física).
Espero que seja útil - os sistemas de entidade / componente podem ser um desafio para superar alguns dos obstáculos iniciais.
fonte
Outro, que eu não usei, mas examinei um pouco o código, é Artemis . Bem comentado e bastante ativo. Originalmente uma estrutura Java, mas foi portada para C # / XNA.
fonte