Dune Engine banner

Dune Engine

C++ OpenGL Assimp SDL3 ImGui

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.

3 Team members
5 days Development time
2025 Year
Unity Engine

Mi rol

Engine Programmer

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 architecture

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 renderer

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

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 and tools

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

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.