bgfx
A cross-platform, graphics-API-agnostic rendering library by Branimir Karadžić, described by its own README as "Bring Your Own Engine/Framework" style. BSD 2-clause, C++, 17,450★ / 2,133 forks, opened April 2012 and pushed the day this page was written — the oldest continuously developed project in this wiki by more than a decade.
It is not an engine. It is the layer an engine sits on: you keep your own scene graph, your own game loop, your own asset pipeline, and hand bgfx draw calls that it translates into whichever native graphics API the target platform actually has.
The abstraction
Nine rendering backends behind one API: Direct3D 11 and 12, Metal, OpenGL 4.3+, OpenGL ES 3.0+, Vulkan, WebGL 2.0, WebGPU (Dawn Native only), and GNM for licensed PS4 developers. Nine platform families: Windows 7+, macOS 13+, Linux, iOS/iPadOS/tvOS 16+, Android 4.0+, PlayStation 4, UWP (Xbox One), Raspberry Pi, and Wasm/Emscripten.
The API is C/C++, with bindings maintained for roughly fifteen other languages — C#, Rust, Zig, Lua, Go, Python, Haskell, Swift, D, Nim, Pascal, Beef, C3, and Java through LWJGL3. Five of those (C#, Python, Zig, Beef, C3) live in the repository; the rest are third-party.
Why it matters to the spoke — the native rung under the engines
vgpu gave this wiki a rung between the raw API and the engines on the web (WebGPU → thin typed wrapper → engine). bgfx is the same rung natively, and it has been occupied for fourteen years. That changes what the rung is: not a young idea one library is trying, but a mature position with a large installed base — the corpus's web-side instance is four months old and 716★, the native one is 17.4k★ and predates WebGPU itself.
It also makes box3d's middleware category a real class rather than a single instance. Box3D simulates and hands results back; bgfx draws and does nothing else. Both are components an engine embeds — the physics core and the rendering core — and the wiki now holds one of each.
Engines built on it, from the README's own list. Torque6 — MIT, "the 6th derivative of the original Torque Engine" and a descendant of this wiki's Torque2D — renders on it. So does Babylon Native, the native runtime for Babylon.js, along with Crown, Ethereal Engine and the commercial NeoAxis Engine. And Unity's Project Tiny used bgfx for rendering before Unity discontinued it — the one case in the corpus of a first-party engine team building on the middleware tier instead of their own.
What it ships against
Around seventy projects are listed as users, and the list is unusually load-bearing for a graphics library: Minecraft (bgfx links Mojang's own attribution page as the evidence) and Minecraft Vibrant Visuals, Guild Wars 2, Football Manager 2018 and 2024, Crypt of the NecroDancer, Braid, Anniversary Edition, World of Goo 2, Griftlands, Rotwood, and MAME, the arcade emulator. Three Wadjet Eye adventure games use it for their Switch versions only — bgfx as a porting layer rather than an authoring choice.
"Lean tools are production-grade" has been a through-line here since MonoGame arrived with Stardew Valley and Celeste. bgfx makes the same point one rung lower: a title can ship on a rendering library and no engine at all.
What it does not claim
No benchmarks, no frame times, no comparison against a hand-written Vulkan backend. The pitch is portability, and the cost of the abstraction is nowhere stated. The user list is also self-maintained — projects are added by pull request, and nothing verifies that a listed game still uses it.
Related
vgpu · box3d · webgpu · opents · babylonjs · torque2d · branimir-karadzic · synthesis