Estou trabalhando em um jogo com uma arquitetura baseada em componentes. Um Entitypossui um conjunto de Componentinstâncias, cada uma com um conjunto de Slotinstâncias com as quais armazenar, enviar e receber valores. Funções de fábrica, como Playerproduzir 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, Velocitye Accelerationsão todos os componentes separados, conectados em série. Velocitye Accelerationpode ser facilmente reescrito num uniforme Deltacomponente, ou Position, Velocity, e Accelerationpoderia ser combinada juntamente com tais componentes, como Frictione Gravityem um monolítico Physicscomponente.
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.