Estoy trabajando en un juego con una arquitectura basada en componentes. Un Entity
posee un conjunto de Component
instancias, cada una de las cuales tiene un conjunto de Slot
instancias para almacenar, enviar y recibir valores. Funciones de fábrica tales como Player
producir entidades con los componentes necesarios y las conexiones de ranura.
Estoy tratando de determinar el mejor nivel de granularidad para los componentes. Por ejemplo, en este momento Position
, Velocity
y Acceleration
todos son componentes separados, conectados en serie. Velocity
y Acceleration
podría reescribirse fácilmente en un Delta
componente uniforme , o Position
, Velocity
y Acceleration
podría combinarse junto con componentes como Friction
y Gravity
en un Physics
componente monolítico .
¿Debe un componente tener la menor responsabilidad posible (a costa de mucha interconectividad) o los componentes relacionados deben combinarse en monolíticos (a costa de la flexibilidad)? Me estoy inclinando hacia la primera, pero podría usar una segunda opinión.