La arquitectura software de Unreal Engine define el tipo de recurso que podemos incorporar como contenido a un proyecto de desarrollo, y cómo estos recursos se usan y combinan para dar forma a una aplicación en tiempo de ejecución.
Las lecciones a tratar en este tema son:
- Proyectos
- Recursos (en general)
- Niveles
- Actores
- Componentes
- Mallas
- Cámaras
- Iluminación
- Materiales
- Volúmenes
- Geometría
- Partículas
- Sonidos
- Fuentes
- Artilugios
- Pegatinas
- Rutas
- Paisajes
- Recursos físicos
- Animaciones
- Metahumanos
- Comportamientos (inteligentes)
- Cinemáticas
Otras posibles lecciones serían las telas o los cabellos, como elementos interesantes desde el punto de vista visual, especialmente para hacer metahumanos.
Se podría añadir una lección extra sobre vehículos, otro tipo de avatareas (pawns) del jugador que usan física y tienen una configuración compleja (curvas para definir el torque del motor, malla esqueletal para relacionar las ruedas y el chasis, etc. (de hecho hay que activar el plugin ChaosVehiclesPlugin). Para aprender se pueden usar recursos gratuitos como los de la plantilla o el CitySampleVehicle. Antes los vehículos se hacían con PhysX, pero es posible convertirlos al nuevo motor de física Chaos, que es el que usa ahora Unreal Engine.
Según la propia terminología de Unreal Engine, aquí se habla de las estructuras de datos de los sistemas que ofrece este entorno (ej. el sistema de Materiales y la propia representación de lo que es un material). De hecho, en la versión 5 se introducen nuevos sistemas como Nanite, Lumen, ECS… que probablemente utilizan recursos algo diferentes que también sería interesante explorar.
Los sistemas ECS tienen por debajo una infraestructura de Job System. En C++ existen algunas librerías muy conocidas sobre ECS, como EnTT (de Michele Caini) y Flecs (de Sander Mertens). Flecs es rapidísima pero bastante rígida (usaba arquetipos que agrupan entidades con el mismo conjunto de componentes, sacrificando el rendimiento del acceso aleatorio a componentes y no permitiendo ponerlos o quitarlos en tiempo real… al menos antes de aparecer este atributo que han añadido en Flecs), mientras que EnTT, desde siempre, usando grupos -una especie de arquetipos- y vistas, y gracias a los Sparse Sets con paginación, resulta más fácil de implementar y algo más útil para videojuegos, porque permite crear y destruir entidades y componentes en cualquier momento (Víctor Blanco está haciendo un motor en 2025 que permite «clonar» Minecraft con EnTT). Seguramente lo mejor es disponer de ambos modelos y poder usar una u otra según el contexto.
Más información
Se recomienda consultar otros documentos para complementar:
Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.