PREVIEW COMING SOON
Interactive demo will be available when the engine launches.
GAME ENGINE · C++ · VULKAN
POIESIA
RENDER /// SIMULATE /// SHIP
A game engine from scratch. Vulkan and OpenGL rendering, entity-component architecture, integrated physics, spatial audio, and a visual scene editor. Built in C++ with no commercial engine dependencies. Free and open-source.
Vulkan & OpenGL
from scratch.
Dual-backend rendering with Vulkan as the primary path and OpenGL as the fallback. Forward and deferred pipelines, PBR materials, shadow mapping, and post-processing — all written from scratch, no middleware.
- Dual rendering backend
- Vulkan for modern GPUs with explicit memory management and multi-threaded command buffers. OpenGL 4.5 fallback for broader hardware support. Switch at launch.
- PBR material system
- Physically-based rendering with metallic-roughness workflow. Albedo, normal, metallic, roughness, AO, and emissive maps. Runtime shader compilation with hot-reload.
- 2D and 3D
- Full 3D scene rendering with perspective cameras, plus a dedicated 2D sprite renderer with atlas support, batching, and pixel-perfect rendering for 2D games.
- Post-processing stack
- Bloom, tone mapping, FXAA, SSAO, and color grading. Configurable per-camera with a scriptable render pipeline.
Entity-component
system.
Data-oriented ECS at the core. Entities are IDs, components are plain data in contiguous arrays, systems iterate over component queries. Cache-friendly, parallelizable, and simple to extend.
- Archetype-based storage
- Components with the same layout are stored together in dense arrays. Iteration is a linear memory scan. Adding or removing components moves the entity between archetypes.
- System scheduling
- Systems declare their component dependencies. The scheduler runs independent systems in parallel on a thread pool. Explicit ordering constraints when needed.
- Scene graph
- Parent-child transform hierarchy on top of the ECS. Local and world transforms update in a single traversal pass. Attach, detach, and reparent at runtime.
- Serialization
- Scenes serialize to a binary format and a human-readable text format. Load, save, and hot-reload scenes during development. Prefab system for reusable entity templates.
Simulate
and listen.
- Rigid body physics
- Integrated physics with collision detection (AABB, sphere, convex hull, mesh), rigid body dynamics, joints, and raycasting. Fixed timestep with interpolation.
- Spatial audio
- 3D positional audio with distance attenuation, doppler, and reverb zones. Supports WAV, OGG, and MP3. Listener follows the active camera. Multiple simultaneous sources.
- Asset pipeline
- Import glTF 2.0, OBJ, FBX models. Texture compression to GPU formats at build time. Asset hot-reload during development — change a texture and see it update live.
- Input system
- Unified input handling for keyboard, mouse, and gamepad. Action mapping with rebindable keys. Supports multiple controllers for local multiplayer.
Visual
scene editor.
A built-in editor for placing entities, adjusting properties, and previewing your game in real time. Not a separate application — the editor is the engine running in edit mode.
- Scene viewport
- 3D viewport with translate, rotate, and scale gizmos. Grid snapping, multiple cameras, and wireframe/solid/textured render modes.
- Entity inspector
- Select any entity and edit its components in a property panel. Add, remove, and configure components with immediate visual feedback in the viewport.
- Asset browser
- Browse, preview, and drag-and-drop assets directly into the scene. Thumbnail previews for textures, meshes, and audio files.
- Play-in-editor
- Hit play and the game runs inside the editor viewport. Pause, step frame-by-frame, and inspect entity state mid-game. Stop and the scene reverts to its saved state.
The stack.
- C++20
- VULKAN
- OPENGL 4.5
- GLSL
- GLFW
- GLM
- IMGUI
- GLTF 2.0
- CMAKE
- ENTT
Free.
Poiesia is free. No subscription, no royalties, no restrictions on what you ship with it. Use it for anything.