Rether / docs
engine/gamegine/Architecture
hubLinks and schema of the architecture of the Gamegine project

Architecture

updated 2026.08.29created 2026.07.28~1 min

Initialization

Everything starts in Engine::initialize(). In order:

  1. Window — a Window & Native surface is created and shown (GLFW). It owns the native surface the GPU will eventually present to.
  2. Graphics context — the RHI factory reads the GraphicsAPI enum and creates the matching Graphics context (today: the Vulkan one).
  3. Context initialization — the Vulkan context then builds its pieces, each with its own note:
    1. Vulkan instance — the connection to the Vulkan library, with Vulkan validation layers in debug builds and the instance-level Vulkan extensions.
    2. Vulkan surface — the bridge between the window and Vulkan.
    3. Vulkan physical device — enumerate the GPUs and pick the one that meets our requirements.
    4. Vulkan queue families — find the family that supports both graphics and presentation.
    5. Vulkan logical device — the software interface to the chosen GPU, with the Vulkan 1.3 features we enable.
    6. Resource pools — the Vulkan descriptor pool and the Vulkan command pool, pre-allocated so the rendering loop never allocates.
  4. Renderer
    1. Swapchain
    2. CameraUBO
    3. LayoutConfig
    4. MaterialLayout
    5. Create Pipeline

Recomment all the lines, one by one

The notes stop here for now. The context continues with the swapchain, and Engine::initialize() then brings up the renderer, the asset manager, the scene (ECS), the input bindings, and the UI — to be written as the garden grows.

Frame description

What is going on the each frame ?

Keyboard

search this vault⌘K / /
step the sidebarjk
open selected↵
switch browse mode123
switch vaultgv
toggle themet
close / clearesc
this help?
esc to close