bgfx VS magnum

Compare bgfx vs magnum and see what are their differences.


Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. (by bkaradzic)
Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • SaaSHub - Software Alternatives and Reviews
bgfx magnum
37 14
11,510 4,031
- -
9.5 9.8
5 days ago 3 days ago
C++ C++
BSD 2-clause "Simplified" License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of bgfx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-16.


Posts with mentions or reviews of magnum. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-23.
  • C++ Game Engine - Which framework?
    1 project | | 6 May 2022
  • Magnum: Lightweight, modular C++11 graphics middleware for games/visualization
    6 projects | | 23 Apr 2022
    > He has Vulkan support in here with a clearly marked file named Pipeline.cpp. The guy knows what a pipeline is...

    There is a Vulkan API wrapper. However, there is no "Vk Renderer" -- no code seems to use the Vulkan parts of the code system, and the two projects seem unrelated.

    > * Is this not a UBO interface?

    There are ways of making a uniform buffer, however the examples don't cover them and the API doesn't adapt automatically. See how all of the setters assert if UBOs are enabled.

    > * I don't see why you think there's limited support for multiple framebuffers...?

    The code I do see is about binding/unbinding framebuffers in a stateful manner, e.g. AbstractFramebuffer::bind(), rather than supporting passes.

    > None of your criticism seem well intentioned. It might behoove you to give people the benefit of the doubt and realize that you may be able to learn something from them, even if they're so clearly inferior to you.

    To put it simply, I've taught enough graphics to know first-hand the kinds of misconceptions that OpenGL-styled APIs can cause, and I'm just a bit tired to see it continue. Admittedly I was a bit harsh, I don't mean any harm towards the author. There are just graphics APIs with interfaces I consider to be much better designed.

    6 projects | | 23 Apr 2022
  • Is there a C++-oriented platform that is similar to Three.js?
    6 projects | | 22 Apr 2022
    I've not played with this one, but looks promising: Look­ing for an open-source lib­rary that gives you graph­ics ab­strac­tion and plat­form in­de­pend­ence on ma­jor desktop, mo­bile and web plat­forms? Do you want it to have all the con­veni­ence util­it­ies around yet stay small, power­ful and not give up on flex­ib­il­ity? And it’s free to use, even for com­mer­cial pur­poses.
  • C++ graphic library that works well in Linux systems?
    2 projects | | 14 Apr 2022
    I have just started a project using the magnum graphics library and I’m finding it very enjoyable. It is easy to get started with, provides a lot of functionality and has good documentation/examples.
  • Graphics Engine Only ....
    5 projects | | 7 Feb 2022
    If you want to take some of the legwork out of the rendering, the Magnum framework is a pretty thin wrapper that provides some basic abstraction around the graphics API. Haven't used it for Vulkan before, but for GL it's pretty nice. It's C++ though. If you really want all this granular control anyways, why not just write in C++?
  • Game Engine From Scratch
    4 projects | | 17 Jan 2022
    It's not a tutorial, but magnum is a modern C++11/14 graphic engine actively developed by a small team.
  • Game engines favouring a programming-heavy approach?
    7 projects | | 5 Jan 2022
    There are code-only engines like Urho3D, Monogame, etc. Unfortunately there aren't a ton of options, though, and in many cases it becomes worth it to just write games without an engine. Libraries like Magnum and EnTT can help reduce the legwork.
  • What to consider when trying to target Web + native platforms (Linux, Windows, macOS, Android, iOS) for a graphics project?
    1 project | | 13 Dec 2021
    Doing all that in Rust might be too much to ask for; there are libraries like Magnum that make it pretty easy to support Windows/Linux/Android and Emscripten/WebAssembly, but I'm not sure you're going to find anything that's not in C++, and/or that works on mac.
  • Unified Shader Programming in C++
    13 projects | | 3 Oct 2021

What are some alternatives?

When comparing bgfx and magnum you can also consider the following projects:

GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

Ogre 3D - scene-oriented, flexible 3D engine (C++, Python, C#, Java)

DiligentEngine - A modern cross-platform low-level graphics library and rendering framework

sokol - minimal cross-platform standalone C headers

Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

The-Forge - The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2

urho3d - Cross-platform 2D and 3D game engine

raylib - A simple and easy-to-use library to enjoy videogames programming

OpenSceneGraph - OpenSceneGraph git repository

vulkan-guide - Introductory guide to vulkan.

sdl-bgfx-imgui-starter - A starter project for graphics applications using SDL, bgfx and Dear ImGui