Welcome to helios
helios is a custom game framework built from first principles, written in modern C++23.
What is helios?
helios is an educational project designed to explore the intricacies of game engine architecture. Each component is built from first principles with a focus on:
- Modern C++23 module-based architecture
- Clean dependency management with fast compilation times
- Flexible rendering pipeline with OpenGL backend
- Component-based design for maintainability
Quick Start
Get started with helios in just a few steps:
# Clone the repository
git clone https://github.com/thorstensuckow/helios.git
cd helios
# Configure with CMake
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
# Build
cmake --build build --config Release
# Run an example
cd build/examples/simple_cube_rendering/Release
./simple_cube_rendering
Features
- Modern C++23: Module-based architecture with clean dependency management
- Scene Graph: Hierarchical scene management with transform propagation
- Rendering Pipeline: Flexible render passes with batching support
- Input System: Unified input handling for keyboard, mouse, and gamepad
- Math Library: Vector, matrix, and transform operations for 3D graphics
- OpenGL Backend: Initial rendering implementation using OpenGL 4.5+
- Cross-Platform: Windows, Linux, and macOS support
- Extensible: Plugin architecture for different rendering backends
Learning Path
Code snippets in this documentation are often simplified to focus on specific concepts. For complete, compilable examples including all necessary setup (shaders, materials, meshes), please refer to the examples/ directory in the repository.
- Getting Started - Set up your development environment
- Your First Application - Create a rotating cube
- Core Concepts - Understand helios architecture
- API Reference - Detailed API documentation
Project Philosophy
The development process emphasizes understanding both the mathematical foundations and the rationale behind established patterns, such as trade-offs between indirect and direct data storage or the division of labor between CPU-side culling and GPU-side clipping.
Contributing
We welcome contributions to helios - before you get started, please review:
- Contributing Guide - Complete guide for the contribution process, commit conventions, and pull requests
- Issue Submission Guide - Guidelines for submitting bug reports, feature requests, and refactoring proposals
- Code Style Guide - C++ coding conventions and formatting standards
Academic Context
This project originated as a semester project for a computer science degree. The design principles, architecture, and prototypical implementation are documented in:
- [Suc25] Suckow-Homberg, Thorsten: helios: Design and prototypical implementation of a C++ game framework (2025), ResearchGate
Community
▸ GitHub Discussions - Ask questions, share ideas
▸ Issues - Report bugs or request features
▸ Contact: thorsten@suckow-homberg.de
License
helios is licensed under the MIT License. See the LICENSE file for details.