Streamlining game engine dev

The seamless experience to get back to our roots as developers and seize control over our graphical apps

Get started
import { DE, RendererType } from "dengine/core";

const main = () => {
  const App = new DE();
  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;
};

main();
Modular and simple game engine
Focus on modules independence to aid learning game engine development or any independent module (rendering, physics, etc). Typescript first and webgl based.

uuid

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

import { getMultiSinkLogger } from "dengine/spdlog_helper";
import { utils } from "dengine/utils";

const main = () => {
  const logger = getMultiSinkLogger();

  // Different UUIDS
  logger.info(`UUID 1: ${utils.uuids.GetUUID().to_string()}`);
  logger.info(`UUID 2: ${utils.uuids.GetUUID().to_string()}`);

  return 0;
};

main();
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. The seamless integration of educational content with game development keeps learners motivated and eager to explore more. It's a game-changer in educational technology!"
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 game development; 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.

ECS

Entity component systems from the ground up for high performance runtime

import { Scene, EntityID } from "dengine/ecs/ecs";

interface TransformComponent {
  position: number;
  rotation: number;
}

interface TagIdComponent {
  id: number;
}

const logger = getMultiSinkLogger();

logger.info(`TransformComponent ID: ${Scene.GetId<TransformComponent>()}`);
logger.info(`TagId ID: ${Scene.GetId<TagIdComponent>()}`);

const scene = new Scene();
const newEnt: EntityID = scene.NewEntity();
scene.Assign<TransformComponent>(newEnt);
const t = scene.Get<TransformComponent>(newEnt);
logger.info(`TransformComponent position of newEnt: ${scene.Get<TransformComponent>(newEnt)?.position}`);
t.position = 3.0;
logger.info(`New TransformComponent position of newEnt: ${scene.Get<TransformComponent>(newEnt)?.position}`);
      `,
    },
  },
];

Go and seize it