Estou trabalhando em um jogo com uma arquitetura baseada em componentes. Um Entity
possui um conjunto de Component
instâncias, cada uma com um conjunto de Slot
instâncias com as quais armazenar, enviar e receber valores. Funções de fábrica, como Player
produzir entidades com os componentes e conexões de slot necessários.
Estou tentando determinar o melhor nível de granularidade para componentes. Por exemplo, agora Position
, Velocity
e Acceleration
são todos os componentes separados, conectados em série. Velocity
e Acceleration
pode ser facilmente reescrito num uniforme Delta
componente, ou Position
, Velocity
, e Acceleration
poderia ser combinada juntamente com tais componentes, como Friction
e Gravity
em um monolítico Physics
componente.
Um componente deve ter a menor responsabilidade possível (ao custo de muita interconectividade) ou os componentes relacionados devem ser combinados em componentes monolíticos (ao custo da flexibilidade)? Estou inclinado para o primeiro, mas eu poderia usar uma segunda opinião.