Skip to content

Repository files navigation

B3D Framework

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.

In development

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

  • Features - A detailed list of all currently available features.
  • Release notes - A list of changes made in each release.

Get started

  • 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.

Screenshots

1 2

3 4

5 6

About

Modern C++ library for the development of real-time graphical applications

Topics

Resources

Contributing

Stars

1.9k stars

Watchers

99 watching

Forks

Releases

Used by

Contributors

Languages