C ++ Experimental y trabajo en progreso 14 Biblioteca de encabezado de sistema de sistema de compilación de tiempo compilar multiproteo multipresado.
El desarrollo exitoso de aplicaciones y juegos complejos en tiempo real requiere un sistema de gestión de entidades flexible y eficiente. A medida que un proyecto se vuelve más intrincado, es fundamental encontrar una forma elegante de componer objetos para evitar la repetición del código, mejorar la modularidad y abrir potentes posibilidades de optimización.
El patrón de arquitectura del sistema de componente de la entidad fue diseñado para lograr los beneficios antes mencionados, separando los datos de la lógica.
Las entidades pueden estar compuestas de componentes pequeños, reutilizables y genéricos.
Los componentes se pueden almacenar en áreas de memoria contiguas, mejorando así la localidad de datos y la amabilidad de los caché.
La lógica de la aplicación se puede paralelizar y abstraer fácilmente de los objetos mismos y sus políticas de almacenamiento.
El estado de la aplicación se puede serializar y compartir a través de la red con menos esfuerzo.
Una base de código más modular, genérica y fácilmente probable.
"ECST" se desarrolló como mi proyecto de graduación BCS.
Construir instrucciones
Muestra de código
Licencia
Tesis acompañante
Toboganes
Entidades: definido por Adam Martin (ver tesis) como "bloques de construcción conceptuales fundamentales" de un sistema, que representan ob-obos de aplicaciones concretas. No tienen datos o lógica específicos de aplicación.
Componentes: Tipos pequeños, reutilizables que componen entidades. Nuevamente, citando a Adam Martin en (ver tesis) , un tipo de componente "etiqueta una entidad como poseer un aspecto particular". Los componentes almacenan datos pero no contienen ninguna lógica.
Sistemas: Proveedores de lógica de implementación para entidades que poseen un conjunto específico de tipos de componentes.
Paralelismo externo: término utilizado en ECST que define el concepto de ejecutar múltiples sistemas que no dependen entre sí en paralelo. Sus detalles de implementación se analizarán en el Capítulo 10 (ver tesis) . Conceptualmente, se crea un gráfico acíclico dirigido implícito en el tiempo de compilación gracias al conocimiento de las dependencias del sistema. La ejecución del DAG implícito es manejada por un tipo de programador del sistema especificado durante la definición de configuración.
Paralelismo interno: otro que ejecuta sistemas separados en paralelo, ECST admite dividir un solo sistema en múltiples subtareas, que se pueden ejecutar en hilos separados. Muchos sistemas, como los que representan computaciones funcionalmente puras, no contienen efectos secundarios que modifican su propio estado o que definen las interacciones entre las entidades suscritas: estos son ejemplos principales de cálculos "vergonzosamente paralelos".
"¿Dónde puedo encontrar documentación para la API?"
"¿Podemos tener componentes que no sean construibles por defecto?"
"Estoy tratando de leer/escribir hacia/desde mi componente, pero estoy recibiendo un error de compilación. ¿Qué está pasando? "
"¿Es posible iterar sobre los componentes unidos a las entidades, sin estar dentro de la función de proceso de un sistema?"
"¿Cómo controlar si mi sistema se ejecuta en paralelo o como un solo hilo? "
"¿Cuál es la diferencia entre hacer que mi sistema de un solo hilo vs desactivante paralelismo interno?"