Hey everyone! 👋

I’ve been working on a custom game engine stack (SGE + TheOfficeEngine) for a while now. I started this because I was frustrated with how older APIs like OpenGL bottleneck everything onto a single render thread, especially when dealing with high draw counts.

I decided to build a “thin” Vulkan wrapper designed for massive parallelism from day one.

The cool technical bits:

Multi-Threaded Rendering: Unlike standard engines that lock the context, I’m recording command buffers across all CPU cores. On heavy scenes (thousands of objects), I’m seeing 4x-8x faster frame prep compared to my old single-threaded path. GPU-Driven Culling: I moved frustum culling entirely to Compute Shaders. It chunks through thousands of objects in sub-millisecond times (vs ~8ms on the CPU). The Abstraction: I love Vulkan’s power but hate the boilerplate. I built a C API that reduces 800+ lines of setup code into basically 3 function calls, without hiding the explicit memory management. It’s not just a tech demo either—I hooked it up to C# for gameplay scripting and added a full cinematic pipeline (ACES tone mapping, PBR) for an SCP-style game I’m making.

Happy to answer questions about the architecture or the nightmare that is Vulkan synchronization! 😅 (learned how to use emojis on pc ^^