Destiny 1
How Destiny 1 works: its platform layer, frame timing, renderer, Activity Host and actors.
These pages describe how Destiny 1 works inside: its platform layer, its frame timing, its renderer, its Activity Host and its actors. The facts come from reverse engineering the game’s PS4 executable, and from Bungie’s own talks where a page says so.
Every page is about PS4 version 1.29, from September 2016. The Xbox One build and Destiny 2 are used for cross-checks. The build has the details.
Conventions:
- Function and field names are descriptive names, not Bungie’s, unless they are in backticks.
- Offsets are in hex. Sizes are in bytes unless a page says bits.
- A fact that is not proven is marked “unverified” or “assumed”.
- Each page ends with what was not checked.
Destiny 1 facts do not carry over to Destiny 2 on their own. For Destiny 2, see Destiny 2.
The build
The Destiny 1 build these pages describe: PS4 version 1.29, its modules and libraries, and the Xbox One build used for cross-checks.
Read more →The platform layer
The engine's own operating-system layer: threads, locks, time, memory, files, sockets, input, audio, crash handling and the retail log.
Read more →Time and frame pacing
How the engine paces frames at 30 Hz, turns frame time into ticks, and counts gameplay and UI time.
Read more →Compared with Destiny 2 PC
How the Destiny 2 PC build adds the PC features this console build lacks: frame pacing, vsync, mouse and keyboard, resolution and field of view.
Read more →Rendering
The engine's render layer on PS4: the backend boundary, resources, surfaces, command recording and submission, draws, state, and what the GPU hands back to the CPU.
Read more →The Activity Host
How Destiny 1 splits a mission between the Activity Host, the physics peer and the clients, and what the client's own code shows about joining, leases and authority.
Read more →Actors and AI
The action system and animation rig from Bungie's SIGGRAPH 2014 course, and what the PS4 client shows about factions and object filters.
Read more →