Master Graphics Reclaim Control

The c++ framework for high-performance graphics with precision and simplicity

Get started
#include "dengine/core.h"

int main() {
  de::DE App;
  App.config.title = "DEngine App";
  App.config.width = 800;
  App.config.height = 600;

  de::logSDL2renderersInfo();

  de::core::Init(App);
  de::core::Run(App);
  de::core::Clean(App);

  return 0;
}
Creative coding reimagined
Performant and easy prototyping or full lifecycle development for stunning data visualization and generative art. Ship tailored experiences without the hassle.

ECS

Entity component systems from the ground up for high performance runtime

#include "dengine/ecs/ecs.hpp"

int main {
  auto logger = getMultiSinkLogger();

  struct TransformComponent {
    float position{1.0f};
    float rotation{2.0f};
  };
  struct TagIdComponent {
    int id{2};
  };

  logger.info("TransformComponent ID: {}",
              de::ecs::GetId<TransformComponent>());
  logger.info("TagId ID: {}", de::ecs::GetId<TagIdComponent>());

  de::ecs::Scene scene;
  de::ecs::EntityID newEnt = scene.NewEntity();
  scene.Assign<TransformComponent>(newEnt);
  auto t = scene.Get<TransformComponent>(newEnt);
  logger.info("TransformComponent position of newEnt: {}", scene.Get<TransformComponent>(newEnt)->position);
  t->position = 3.0f;
  logger.info("New TransformComponent position of newEnt: {}", scene.Get<TransformComponent>(newEnt)->position);
  
  return 0;
}
Module plug and play
Bring your own module and plug it in the engine. The engine will just work. Interfaces is the only thing you need to implement.
"Dominique has completely transformed my classroom! My students are more engaged than ever, and the hands-on learning experiences have significantly improved their understanding of complex concepts. Highly recommended!"
Jane D.
"As a beginner in game development, I found Dominique incredibly user-friendly and intuitive. The documentation is thorough, and the ECS framework made it easy to build and manage game components. This engine is perfect for educators and hobbyists alike."
Michael S.
"Dominique is a fantastic tool for fostering creativity and problem-solving skills in students."
Emily R.
"The versatility of Dominique allows me to tailor lessons to different age groups and learning styles. The support from the community and the developers has been exceptional, making it a reliable choice for any educational setting."
David K.
"What I love about Dominique is how it bridges the gap between education and technology. My students are not just learning computer graphics, they are developing critical thinking and teamwork skills. It's an invaluable resource for modern education."
Sarah M.
"Dominique has made teaching coding fun and accessible. The interactive environment and practical examples help students grasp difficult concepts with ease. It's an excellent tool for educators aiming to bring innovation to their curriculum."
Alex T.

uuid

Standardized UUIDs generation module, bootstraped to be ISO compliant and thread safe

#include "dengine/utils/uuid.h"
#include "dengine/spdlog_helper.h"

int main {
  auto logger = getMultiSinkLogger();

  // Different UUIDS
  logger.info("UUID 1: {}", de::utils::uuids::GetUUID().to_string());
  logger.info("UUID 2: {}", de::utils::uuids::GetUUID().to_string());

  return 0;
}
Green and simple
Modern c++ and opengl green framework, low footprint technology, focus on modules independence

Go and seize it