The Forge#

What is The Forge ?#

The Forge is a cross-platform rendering framework developed by ConfettiFX. It’s role is to ease the developer’s burden when it comes to render things on screen. It is a low-level abstraction layer for the modern Graphic APIs such as DirectX12 and Vulkan). For accredited developers, it can also support all major game consoles (Xbox, Playstation 5, Switch, etc). With The Forge, write once, run (almost) everywhere.

Compared to an in-house project, using this library is the guarantee to have a more stable solution, field tested and with a clear and concise API validated by veteran of the industry. The first official release was done in 2018, so it’s fair to say that the codebase is quite recent. In the few years of development that followed, the maintainers at ConfettiFX added multiple features in the engine related to the work they do as consultants for external game studios.

Some engine features#

Name

Description

Custom Entity Component System ( ECS)

The ECS programming pattern is a quite recent paradigm which provide a code structure better suited for performance and parallelism. They developed an in-house ECS which can be integrated easily in the rendering engine.

Cross-platform file system

The inclusion of a platform-agnostic standard library to handle filesystem in C++ is recent (v17), so they provide a C-like API which is guarantee to work on any platforms The Forge runs on.

Micro profiler

One of the main goal of a library like The Forge is performance, so it is crucial to be able to monitor it easily and this is exactly what this tool is for.

Global shading language)

Multiple APIs uses multiple shading languages. With TheForge it is possible to write every shader with a superset of HLSL called FSL, and a translator will take care of translating the FSL to the API in use.

Multi-threaded rendering

One of the goal of the new Graphic API, besides being closer to the metal, is to be suited for multi-threading environments. TheForge keeps this particularity and handle multi-threaded command buffer generation as well as async and multi-threaded resource loading.

Input handling

They provide an input-handling API similar to what is available in Unity in C#.

LUA Scripting

It is possible to use basic scripting to animate objects, lights and cameras.

Some visual features#

The support for Mesh Shaders (which are growing to be a game-changer as seen with Unreal Engine 5 Nanite renderer) is on its way but not there yet.

Name

Description

Custom debug UI

They provide a custom ui system based on ImGui.

Skinning animation system

It is based on based on the library OZZ and also support invert kinematic and joints.

Sparse Virtual Textures

The Forge is able to use very large textures, the idea is that only the visible portion is loaded on the GPU.

TressFX by AMD

A real-time hair rendering system that they helped developed. It was used for the Tomb Raider) game in 2013

Multiple shadow map generation systems

They support exponential shadow map, adaptive shadow map with parallax correction cache and signed distance field soft shadows

Triangle visibility buffer

It is a culling techniques used to only render what is necessary

Path tracer

A real-time raytracing renderer

Free middleware#

With the release 1.48 of the forge, ConfettiFX made available for free some of the middlewares it sells to game studios.

Name

Description

Aura 3

A global illumination system used in the game Agents of Mayhem

Ephemeris 2

A skydome system used in the Spiderman) game by Insomniac

Who maintains it ?#

The development lead is Wolfgang Engel, a famous head in the Computer Graphics field which used to be the Lead Graphics Programmer at Rockstar Games. He directed the book series ShaderX, GPU Pro and now GPU Zen which gather state of the art articles on various rendering techniques and optimisation. He has founded the company ConfettiFX in 2009, which works as consulting in the game industry.

The Confetti team provided tools and helped for various AAA games such as Tomb Raider), Battlefield 4, Murdered Soul Suspect, Star Citizen, Dirt 4, Mafia 3, Call of Duty Warzone, Spiderman), Hades) and so on. They are experts in the computer graphics field for games. More details is available in their yearly retrospective.

Who uses it ?#

Bethesda - The elder scrolls VI / Starfield (2021+)#

Bethesda is currently developing their new in-house engine with The Forge as their rendering layer. Confetti is working with them for the integration and optimization.

Un-announced Call of Duty mobile game (2021+)#

TheForge is used as an Android / Vulkan runtime for a new Call of Duty game for smartphone.

Facebook Business Framework (2021+)#

Application framework by Facebook for smartphones using TheForge as their renderer. It is supposed to be run in 100s of million mobile devices.

SuperGiant Games - Hades (2020)#

The 2.5D game Hades is using TheForge as their rendering engine. They started to collaborate with Supergiant since 2014. TheForge integration with their tools started in April 2019 and ended in May 2020.

What are the alternatives ?#

Other alternative such as BGFX or Panda3D are much higher level and do not belong in the same category

Diligent engine#

Developed by Egor Yusov, previously a software engineer at Intel and Google, this library is thoroughly documented while offering a similar feature-set as TheForge. He provides articles on Gamasutra about his architecture choice.

Google Filament#

Developed by Google as a rendering engine for their mobile devices and for the web. It is used as the Google Maps and Search AR backend.

Why do we decided to use TheForge ?#

Given its usage in the industry and the people behind it it was a no-brainer.