[Sesión 4.4]: Tras terminar de implementar nuestro sistema de IA, analizamos un problema importante que puede afectar gravemente al rendimiento de nuestro sistema Entity-System. Analizamos a qué se debe y planteamos posibles soluciones que deberán ser implementadas en futuras sesiones.
Contenidos detallados:
- Análisis del funcionamiento de nuestros sistemas sobre el diagrama.
- Consideramos la forma en que nuestros sistemas recorren y actualizan las entidades.
- El Sistema de IA recorre las entidades y va preguntando si tienen IA o no para decidir actualizarlas. Teniendo muchas entidades, la mayoría no tendrán IA y nos generarán un montón de comprobaciones negativas que sumadas darán un gran coste innecesario.
- El mismo problema realmente aplica a todos los sistemas: vemos los casos.
- Soluciones posibles:
-- Tener las entidades en el vector ordenadas por tipos. Se ve complejo de implementar y potencialmente con problemas.
-- Este problema revela la potencia del concepto Entity-Component-System original, al organizar arrays de componentes para que los sistemas obtengan sólo los que deben actualizar, y por orden.
-- Utilizar arrays de punteros a las entidades. Cada array de punteros puede tener punteros sólo a aquellas entidades que requieren algún tipo de actualización. Por ejemplo, un array de punteros a entidades que tienen IA permite que el sistema de IA sólo recorra esas entidades, ahorrando mucho tiempo en comprobaciones innecesarias.
-- Entendemos que el concepto Display List de otros sistemas es exactamente la solución de tener un array de punteros a aquello que va a dibujarse
-- Otros usos de clasificaciones de entidades en arrays de punteros: ordenación de las entidades rápidamente. Ordenar arrays de punteros es rápido. Se pueden tener ordenados por ejemplo, para realizar un Z-buffer.
-- Otras posibilidades: Sparse Arrays.
- Planteamiento de implementación: gestionado por el entity_manager o creación de otros managers para cada array de punteros a entidades
- Recordatorio del planteamiento de producto mínimo viable para la próxima semana.
Clase de Videojuegos 1 2019/20
Grado en Ingeniería en Multimedia
Universidad de Alicante
Contenidos detallados:
- Análisis del funcionamiento de nuestros sistemas sobre el diagrama.
- Consideramos la forma en que nuestros sistemas recorren y actualizan las entidades.
- El Sistema de IA recorre las entidades y va preguntando si tienen IA o no para decidir actualizarlas. Teniendo muchas entidades, la mayoría no tendrán IA y nos generarán un montón de comprobaciones negativas que sumadas darán un gran coste innecesario.
- El mismo problema realmente aplica a todos los sistemas: vemos los casos.
- Soluciones posibles:
-- Tener las entidades en el vector ordenadas por tipos. Se ve complejo de implementar y potencialmente con problemas.
-- Este problema revela la potencia del concepto Entity-Component-System original, al organizar arrays de componentes para que los sistemas obtengan sólo los que deben actualizar, y por orden.
-- Utilizar arrays de punteros a las entidades. Cada array de punteros puede tener punteros sólo a aquellas entidades que requieren algún tipo de actualización. Por ejemplo, un array de punteros a entidades que tienen IA permite que el sistema de IA sólo recorra esas entidades, ahorrando mucho tiempo en comprobaciones innecesarias.
-- Entendemos que el concepto Display List de otros sistemas es exactamente la solución de tener un array de punteros a aquello que va a dibujarse
-- Otros usos de clasificaciones de entidades en arrays de punteros: ordenación de las entidades rápidamente. Ordenar arrays de punteros es rápido. Se pueden tener ordenados por ejemplo, para realizar un Z-buffer.
-- Otras posibilidades: Sparse Arrays.
- Planteamiento de implementación: gestionado por el entity_manager o creación de otros managers para cada array de punteros a entidades
- Recordatorio del planteamiento de producto mínimo viable para la próxima semana.
Clase de Videojuegos 1 2019/20
Grado en Ingeniería en Multimedia
Universidad de Alicante
Entity-System (II): Análisis de Rendimiento, Problemas y Mejoras [#ASM #Z80] 6502 instruction set | |
15 Likes | 15 Dislikes |
215 views views | 2.28K followers |
Education Creative Commons Attribution licence (reuse allowed) | Upload TimePublished on 29 Sep 2019 |
Không có nhận xét nào:
Đăng nhận xét