Elysium Engine
Project information
- Introduction
- Programmers
- Skills developed
- Development duration
A multi-thread custom engine written in C++ that uses OpenGL and DirectX, and integrates physics, sound and physically-based rendering.
Alejandro Díaz Rodríguez and Joel Vinaroz Giménez.
C++, OpenGL and DirectX11.
8 months (October 2023 - May 2024).
My role in the project
Elysium Engine is a C++ rendering engine focused on modularity, real-time rendering, and extensibility. I was responsible for the core architecture, rendering pipeline, and several advanced rendering features.
Core Features & Techniques
🧩 Entity Component System (ECS)
I designed and implemented a custom ECS using std::optional-based component storage. Each component type is stored in a separate container,
and I created custom iterators to efficiently traverse only valid instances, optimizing cache usage and logic execution.
📦 Resource Manager
I developed a multithreaded resource manager that loads textures and geometry asynchronously using a job system.
It supports both OpenGL and DirectX11 backends and ensures smooth asset streaming in real-time contexts.
💡 Rendering Features
- Physically Based Rendering (PBR) with a metallic-roughness workflow.
- Shadow mapping for all kind of lights.
- Full OpenGL integration including VAO, VBO, FBO, and shader systems.
🌊 Screen Space Reflections (SSR)
Implemented with screen-space ray marching and binary search refinement. Depth comparisons are used for accurate hit detection,
with optional skybox fallback for rays that miss visible geometry. Adds dynamic, realistic reflections to surfaces in real time.
🌄 Procedural Terrain
Integrated as part of an AI research project. The terrain system supports:
- Wave Function Collapse for structured patterns
- Perlin Noise from both library and custom implementation
- Vegetation spawning based on heightmap data
Key Outcomes
This project strengthened my understanding of graphics architecture, parallel resource loading, real-time shading techniques, and AI-based content generation. Elysium Engine served as a solid base to explore advanced rendering techniques in a modular, reusable framework.