Este sitio comienza en una implementación básica.
La mayor parte de lo anterior está inspirado en este artículo en T = Machine
Comencé con una implementación básica inspirada en los dos enlaces anteriores. Estoy bastante seguro de que me he desviado mucho de la teoría pura de los sistemas de componentes y, sin duda, hay errores, pero podría resultar útil si está buscando algunos ejemplos simples.
Brículo (C # / XNA)
En este momento solo está cargando algunas entidades básicas, maneja algunos eventos, etc. Las ubicaciones principales que está buscando son la carpeta Engine.EntitySystem y probablemente la PlayScreen donde se crean realmente las entidades.
Crear una tienda de componentes basada en tipo simple y ocultar eso detrás de un EntityManager común fue relativamente sencillo.
El primer desafío que encontré fue cuando los sistemas individuales pueden requerir múltiples tipos de componentes (es decir, componentes físicos y InputMoveable). Para usar el lenguaje de base de datos relacional, tuve que encontrar una manera de hacer una consulta JOIN. Para eso, hice otro tipo de colección para entidades creadas a partir de las consultas de tipos de componentes coincidentes: cada colección de entidades se conecta a un evento OnEntityCreate y comprueba si coincide. Todavía hay algunos errores allí.
El segundo desafío fue en realidad crear un 'objeto de juego': los llamé plantillas. Aquí probablemente no soy muy puro de acuerdo con las especificaciones de T = Machine, pero parece funcionar. Las plantillas agrupan las instancias de componentes y permiten una composición de entidad más fácil (es decir, la bola es dibujable y física).
Espero que sea útil: los sistemas de entidad / componente pueden ser un desafío para superar algunos de los obstáculos iniciales.