Rendering
A renderer written from scratch: DirectX 12 on Windows, Vulkan on Linux, with a separate hardware-accelerated 2D path for the top-down game.
- One renderer, two backends. Shaders, materials and the frame graph are shared, so a Linux player gets the same picture as a Windows player rather than a cut-down port.
- Physically based materials, image based lighting and a deferred post chain: bloom, ambient occlusion, depth of field and motion blur.
- Hardware raytraced reflections and sky lighting on cards that support them, with a raster fallback on cards that do not.
- Optional tessellation and parallax occlusion mapping, both off by default so they stay a choice rather than a tax.
- A batching Direct3D 11 renderer for the 2D game: one vertex format and one shader for sprites and shapes, so a full scene draws in a handful of calls.
- Multisampling, a cached text rasteriser, and a frame pacer that holds a stable frame rate instead of leaning on the driver.