3D Game Engine

Flexible architecture with WebGL (OpenGL ES) and WebGPU (Vulkan-like) support

Renderer: WebGL (OpenGL ES)
FPS: 0

Engine Features:

  • ✓ Modular renderer architecture (WebGL & WebGPU backends)
  • ✓ Entity-Component system inspired by ioquake3
  • ✓ Input management (keyboard & mouse)
  • ✓ Primitive mesh generators (cube, sphere, pyramid, plane)
  • ✓ Transform system (position, rotation, scale)
  • ✓ Game loop with delta time
  • ✓ Automatic fallback from WebGPU to WebGL

API Usage:

// Create engine
const engine = new GameEngine({
  canvas: canvasElement,
  rendererType: RendererType.WebGL,
});

await engine.initialize();

// Create entity
const entity: Entity = {
  id: "cube1",
  transform: {
    position: { x: 0, y: 0, z: -5 },
    rotation: { x: 0, y: 0, z: 0 },
    scale: { x: 1, y: 1, z: 1 },
  },
  mesh: Primitives.createCube(),
  update: (dt) => {
    entity.transform.rotation.y += dt;
  },
};

engine.addEntity(entity);
engine.start();