C++ : Game Engine con Arquitectura por Componentes Básica

preview_player
Показать описание


La Arquitectura realizada NO es Entidad-Componente-Sistema, sino Arquitectura por Componentes. Tienen parecidos pero, aunque se llamen así, son distintas.

FE DE ERRATAS: La versión const y no-const de getComponent están invertidas. Debería ser la versión no-const la que hiciera const-cast y llamase a la versión const.

Contenidos detallados:
- Diseñando entidades como un conjunto de #Componentes
- Explorando formas de almacenar distintos tipos de componentes en una entidad
-- Clase Component_t
-- Uso de std::vector
-- Almacenamiento basado en #punteros y #herencia
-- Uso de std::unordered_map
- Creación de componentes como estructuras planas que heredan de Component_t
- Método para añadir componentes de cualquier tipo
- Uso de referencias versus uso de punteros al añadir componentes
- Inicialización de estructuras planas con herencia en C++17: Aggregate Initialization.
- Método para obtener componentes de una entidad
- Buscando y devolviendo componentes de una entidad son std::unordered_map::find
- Método draw basado en componentes
- Versión const del método getComponent
-- FE DE ERRATAS: Los métodos const y no-const deberían haberse implementado al revés. El método que busca debería ser const y el método no-const el que debería contener el #const_cast
- Convirtiendo componentes genéricos en componentes reales con #static_cast
-- Posibles problemas de static_cast y comportamiento no-definido (undefined-behaviour)

Clase de Videojuegos 2, 2019/20
Grado en Ingeniería Multimedia
Universidad de Alicante
Рекомендации по теме
Комментарии
Автор

Esto es como una serie por capítulos: siempre se acaba en lo mejor! Gracias como siempre por compartir.

andresmata
Автор

Pero en unity no puedes crear nuevo componentes ~.~ Solo puedes crear gameObjects.

darthvader