GAMES GATHERING 2020

CPU Optimizations for the Object Update System in Metro Exodus

Talk recording: CPU Optimizations for the Object Update System in Metro Exodus

Dmytro Markov

Hall:
Water Hall (Programming Track)

What the talk is about

Dmytro Markov explains how the object update system in Metro Exodus was built to handle a huge number of entities on large levels: thousands of static objects, hundreds of NPCs, weapons with animated parts, and tens of thousands of state machines. The frame is split into a serial part, a multithreaded part and an end-of-frame stage with input. The serial part is kept minimal, because every millisecond lost there costs all the cores. Objects are grouped into hierarchies, and cost is cut with levels of detail and sleeping for motionless objects. A priority manager updates nearby objects every frame and distant ones less often, down to once per second. The speaker shows a captured frame and answers questions on Switch and synchronization. Useful for engine programmers optimizing CPU.