GAMES GATHERING 2020

Оптимізації CPU для системи оновлення об'єктів у Metro Exodus

Запис доповіді: Оптимізації CPU для системи оновлення об'єктів у Metro Exodus

Дмитро Марков

Зала:
Water Hall (Programming Track)

Про що доповідь

Дмитро Марков розповідає, як у Metro Exodus побудовано систему оновлення об'єктів, щоб витримувати величезну кількість сутностей на великих рівнях: тисячі статичних об'єктів, сотні NPC, зброя з анімованими частинами, десятки тисяч автоматів станів. Кадр поділено на послідовну частину, багатопоточну та кінець кадру з input. Послідовну тримають мінімальною, бо кожна втрачена мілісекунда там коштує всіх ядер. Оновлення об'єкта складається з трансформ, логіки та залежних частин (скелети, анімація), а об'єкти об'єднані в ієрархії. Для здешевлення використовують рівні деталізації та «засинання» нерухомих об'єктів. Менеджер пріоритетів оновлює близькі об'єкти щокадру, а далекі — рідше, аж до раз на секунду. Спікер показує приклад захоплення кадру й відповідає на питання про Switch та синхронізацію. Корисно ігровим програмістам, які оптимізують CPU і багатопоточність.