Modern console architectures have heterogeneous, multi-core computation architectures that differ vastly in performance and memory characteristics. As a result, game engine architectures have moved away from thread-level parallelism to use 'job systems' for fine-grained task and data parallelism. To optimally take advantage of all available resources, a game engine must be designed from the ground up for job-based multithreading.
In this talk we will delve into the renderer that Bungie developed for Destiny, a fast-paced shared world shooter for PlayStation 4, PlayStation 3, Xbox One and Xbox 360. We will describe the architecture of a multithreaded renderer that delivers low-latency, efficient execution across multiple platforms, focusing on both the successes and challenges encountered. This talk will not cover the specific GPU rendering techniques used in Destiny but will cover the implications for features designed in this multithreaded architecture.