Параллелизм в современных игровых движках

DevOps

C/C++
Оптимизация производительности
Профилирование
Оптимизация

Доклад отклонён

Целевая аудитория

Люди, занимающиеся созданием движка, либо те, кто активно их используют в повседневной работе и хотели бы узнать, как это работает под капотом.

Тезисы

В рамках разработки нового движка и быстро меняющегося рынка железа мы активно используем многоядерность для улучшения производительности и масштабируемости клиента/сервера, а также ускорения многих процессов во время разработки игр/продуктов. В данной презентации мы расскажем, для каких задач мы применяем многоядерность, и как она помогает нам использовать все преимущество ПК игрока и разработчика для оптимизации игрового процесса и повседневных задач, с которыми сталкиваются создатели игры (художники, геймдизайнеры, программисты геймплея и т.д.) на движке.

В частности, речь пойдет об ECS-архитектуре движка и как она позволяет использовать все доступные мощности ПК. Более детально коснемся, как мы строим граф исполнения систем и активно используем функциональный и структурный параллелизм. Также речь пойдет об универсальной и масштабируемой ресурсной системе, которая повседневно работает у всех разработчиков игры. Затронем тему распараллеливания рендера для оптимальной производительности в современных играх, где количество контента растет из года в год. И напоследок, посмотрим на те инструменты и библиотеки, которые мы используем, чтобы решить новые вызовы при создании ААА-игр.

Работает в геймдеве уже больше 10 лет, где в основном занимается развитием игровых движков и рендера.

NDA

-

Видео