B3D Framework is a C++17 library intended as a foundation for high-performance game engines, games and other real-time graphical applications. It targets zero-compromise performance capable of running large open-world projects, paired with a clean, intuitive API and a modular internal architecture that's easy to understand, modify and extend.
Highlights
- High performance: an ECS that scales to massive object counts, fiber-based task scheduling across all systems, and cache-aware data layouts
- Modern rendering: physically based shading, a hybrid tiled deferred / clustered forward renderer, and a robust Vulkan backend
- Feature rich: integrated UI system, C# scripting, physics, animation, audio and asset import for all popular formats
- Clean architecture: highly modular, fully documented, and cross-platform
The framework is still in active development, but can already serve as a solid foundation for custom game engines.
Currently being worked on:
- Platform ports: macOS, Linux and PlayStation 5
- GPU backends: Direct3D 12 and Metal
- GPU backend enhancements: push constants, bindless resources, reserved resources, frame graph and memory aliasing
What's next:
- Physically based API for controlling cameras, lights and materials
- Renderer overhaul: all shaders modernized with the new BSL 2.0 language, large coordinate support, view-relative rendering, reverse Z, occlusion culling, instanced rendering, GPU scene, virtualized geometry, mesh simplification and LODs
Further out: rebuilt Banshee 3D editor, real-time global illumination, high level networking, Recast / Detour nav-mesh integration and more.
- Features - A detailed list of all currently available features.
- Release notes - A list of changes made in each release.
- Documentation - Head over to the "Manuals" section to learn how to use the framework from the ground up. Use the API reference to look up what a particular class/method does.
- Examples - Grab a set of working examples and start tinkering and analyzing them to figure out how things work. They are well documented and can be used for quickly learning the framework.
- Building - Learn how to build the framework from the source code.