This article relates to the game "Titanfall". Click here for more information.
This article's documentation is for anything that uses the Source engine. Click here for more information.

Titanfall engine branch

From Valve Developer Community
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

Promotional screenshot of Apex Legends Apex Legends, which runs on a heavily modified version of the Source Engine called Titanfall branch, featuring DirectX (Direct3D) 11, detailed models and better graphics, plus increased engine limits, allowing maps to be larger.
Promotional screenshot of Titanfall Titanfall, the first game on this engine branch.

The Titanfall branch Titanfall branch (also known as ReSource internally) is a third-party Source branch developed by Respawn Entertainment using licensed Source Engine code from Valve. It is a heavily modified version of the Portal 2 engine branch[1] that adds many huge modifications and improvements that bring Source close to modern standards, while keeping the game running on consoles at 60FPS with stable framerate. This engine branch is still in active development.

It is also the only Source branch to be released on modern consoles.

Features

Todo: List all of the features of this modified engine.

Renderer

Native DirectX 11 (dxlevel 110) and DirectX 12 (dxlevel 120) (only in Apex Legends) renderer
First Source engine branch to support both DirectX 11 and 12 renderer.
DirectX 11 (Direct3D 11) is used by default, supported in all games. Previous versions (DirectX 9.0c) has been dropped.
DirectX 12 (Direct3D 12) is currently only supported in Apex Legends, and can be enabled with -anticheat_settings=SettingsDX12.json command line argument. Requires Windows 10 or later.
Cascaded Shadow Maps (also in Alien Swarm Deferred Counter-Strike Online 2 Counter-Strike: Global Offensive Strata Source Xengine)
Cast very detailed shadows from the skybox.
Deferred shading
Allow many lights to be rendered on scene with little performance impact.
New rendering system with Physically Based Rendering
A approach that seeks to render images in a way that models the lights and surfaces with optics in the real world.
Texture streaming (also in Counter-Strike: Global OffensiveStrata SourceVindictusTeam Fortress 2 branch)
Reduce system RAM and graphics card VRAM by streaming textures.
Better HDR Rendering
Improves the HDR (bloom) lighting.[Clarify]
Native HDR displays support (not to be confused with HDR Rendering)
Outputs the game image to HDR-capable display, which is capable of rendering image with higher contrast, brighter image and more intense colors. Exclusive to PlayStation 5 and Xbox Series X/S version of Apex Legends only.
Not available on PC, but it can be workaround by using Windows 11's Auto HDR feature.
TAA anti-aliasing
TAA (aswell as TXAA, TSSAA/TSAA and other variant of TAA) is a new method of anti-aliasing which was common in later games since 2010s, as most games are transitioning from forward rendering to deferred rendering which allows many lights to be rendered with little performance impact, and because MSAA (on deferred renderer, are more expensive, harder to implement and less effective compared to forward renderer). TAA is a spatial anti-aliasing technique that works by combines information from past frames and the current frame (while simultaneously jittering between both frames) to smooth the current frame. Through it's main drawbacks is that it can cause ghosting and blurriness (basically creating motion blur) to the image, especially on lower framerate (Example). Some of the TAA drawback can be workaround by applying sharpening filter on the image.
TAA was first introduced with Titanfall as "TXAA" which requires "MSAA" to function. Later TSSAA was introduced in Titanfall 2, replacing TXAA, and doesn't need MSAA to function. MSAA were later removed starting with Apex Legends.

Audio

Custom in-house Sound System
Audio system improvements
Speex audio codec
Titanfall uses Wwise sound system.
Titanfall 2 and Apex Legends uses updated version of Miles Sound System, which properly support 7.1 surround on modern version of Windows and better DSP effects.

Networking

New netcode and (only in Apex Legends) Cross-play support
Cross-platform multiplayer is supported starting with Apex Legends, allowing users other platforms (such as consoles), to play with PC users.

Platform

64-bit support
Full support for 64-bit, which improves performance and allow the engine to access more than 4GB of RAM. 32-bit are not supported on this branch.
Modern console support (PlayStation 4 PlayStation 4, PlayStation 5 PlayStation 5, Nintendo Switch Nintendo Switch, Xbox One Xbox One and Xbox Series X/S Xbox Series X/S)
Titanfall, Titanfall 2 and Apex Legends support modern game consoles, running at 60 FPS. Very little use of modders, by the way.

Other

Customized version of BSP and VPK, along with RPAK (Respawn Pack File)
Titanfall uses BSP version 29, Titanfall 2 uses version 37 and Apex Legends uses version 47,[2][3] with the BSP headers using rBSP (Respawn BSP) instead of VBSP as identifier.
Titanfall up to Apex Legends at launch, uses modified version of VPK file format, while Titanfall 2 also ships with RPAK file format, using it alongside heavily-modified VPK. Later updates to Apex Legends completely removed VPK files and moved remaining files to RPAK file format.

Availability

Source code and official tools for this branch are not available. However, the community has made unofficial mod tools (such as Northstar, Black Market Edition, and MRVN-Radiant) for these games.

References

CollapseReferences
1. According to steam.inf and gameinfo.txt, the games contain a leftover SteamAppID (620) for Portal 2 Portal 2 as of March 2025 (both Titanfall 1 and 2). The AppID was likely left unchanged as both Titanfall and Titanfall 2 were originally released on Origin (now EA App), making "SteamAppID" unused. Also, most of the .vtf files inside the game's .vpk files are version 7.5, which were introduced in Alien Swarm engine branch.
3. bsp_regen source code (bsp.hpp)
bool is_valid() {
        if (header_->magic == MAGIC_rBSP) {
            switch (header_->version) {
                case 29:  // Titanfall
                case 36:  // Titanfall 2 [PS4] (Tech Test)
                case 37:  // Titanfall 2
                    return (header_->_127 == 127);
                default:
                    return false;
            }