Overview
Dune Engine es un motor de videojuegos desarrollado desde cero en C++ utilizando OpenGL. El proyecto implementa los sistemas fundamentales de un engine moderno, incluyendo renderizado, gestión de escenas, editor y herramientas de desarrollo. Su desarrollo estuvo orientado a construir una arquitectura modular y escalable, capaz de integrar nuevas funcionalidades mientras reproduce el flujo de trabajo habitual de un motor de videojuegos.
Mi rol
Responsable del diseño y desarrollo del motor, implementando los sistemas necesarios para la creación, edición y renderizado de escenas. El proyecto se planteó con una arquitectura modular que facilitara la incorporación de nuevas funcionalidades y sirviera como base para el desarrollo de videojuegos.
Qué programé
Engine Core & Module System
Núcleo del motor encargado de gestionar el ciclo de vida de todos los subsistemas mediante una arquitectura modular. Cada módulo implementa las fases de inicialización, actualización y liberación de recursos, permitiendo desacoplar funcionalidades como el renderer, la escena, el editor o la gestión de recursos y facilitando la escalabilidad del motor.
OpenGL Rendering Pipeline
Renderer basado en OpenGL con soporte para la importación y representación de modelos 3D mediante Assimp, gestionando automáticamente meshes, materiales y texturas. El sistema genera los buffers necesarios en GPU y renderiza la escena utilizando shaders propios, incorporando además herramientas de depuración como bounding boxes, normales, grids y diferentes modos de visualización.
Component-Based Scene System
Sistema de escenas basado en GameObjects y componentes, permitiendo combinar elementos como Transform, Mesh Renderer, Camera o Material para construir entidades reutilizables. La jerarquía de objetos mantiene las transformaciones padre-hijo de forma automática, facilitando la organización y gestión de escenas complejas.
Editor & Development Tools
Editor desarrollado con Dear ImGui que integra las principales herramientas necesarias para la creación y edición de escenas. Incluye ventanas de Hierarchy, Inspector, Console, Configuration y Project, permitiendo modificar componentes en tiempo real, gestionar recursos y visualizar el estado del motor desde una única interfaz.
Resource Manager & Asset Pipeline
Sistema de gestión de recursos encargado de importar, almacenar y reutilizar modelos, texturas y materiales. Los assets se procesan automáticamente al incorporarse al proyecto, generando versiones optimizadas en la Library y evitando cargas duplicadas mediante un sistema centralizado de recursos.