Кирилл Гейзеров — Entity Component System вместо классического ООП в C++

Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd — — Скачать презентацию с сайта C++ Russia — https://jrg.su/kBNdD8 Игровой движок — это обработка тысяч объектов в реальном времени. ООП, к которому мы привыкли в C++, не лучшим образом подходит для обеспечения нужной гибкости и производительности: 1. Жесткая связь между данными и логикой. 2. Сложность управления зависимостями. 3. Неэффективная организация данных. Добавим сюда еще «плюсовые» сложности: 1. «Слабое связывание» в C++ часто происходит через указатели, управление которыми в условиях динамичного игрового мира — задача со звездочкой. 2. Неявный резолвинг указателей виртуальных таблиц — также не очень бьется с производительностью, когда циклы обработки могут за кадр обрабатывать тысячи полиморфных сущностей. Все это приводит не только к низкой производительности, плохой масштабируемости, но и к снижению эффективности разработки игр, т. к. время на дебаг увеличивается в разы, повышается требование к компетенции разработчиков, что часто сильно бьет в рамках ограниченного времени доставки обновлений. Кирилл рассказал об альтернативном пути архитектурирования движков на C++: ECS (Entity Component System). ECS предлагает иной взгляд на организацию структуры движка: 1. Слабая связанность и модульность. Данные и логика их обработки разделены. Такой подход упрощает добавление новой функциональности без необходимости затрагивать уже существующие механики. В дополнение к этому в основу ECS заложено предпочтение доступа к объектам через ID вместо указателей, что сильно упрощает работу с динамичными сценами. 2. Гибкость. Минимум наследования, максимум агрегации. Если нужно обработать, например, физику всех сущностей за раз, мы обрабатываем только физику. Если нужно построить некий агрегат — мы можем сконструировать его налету, используя только те компоненты, которые нужны для решения задачи. 3. Оптимизация производительности. Компоненты хранятся в памяти в виде пулов, что значительно улучшает производительность за счет повышения эффективности кэширования и использования SIMD-инструкций. В докладе рассмотрели аспекты реализации ECS на C++, DOD (Data Oriented Disign), а еще поговорили про выбор стратегии мультипоточности для подобных систем. Доклад будет интересен не только игроделам, но и всему C++ комьюнити.

Константин Владимиров — Каша из топора: модули в C++, проблемы и решения
▶︎

Константин Владимиров — Каша из топора: модули в C++, проблемы и решения

Software 3.0: код будущего
▶︎

Software 3.0: код будущего

EDT + GIT vs Хранилище + Конфигуратор. Дарья Грабкина.
▶︎

EDT + GIT vs Хранилище + Конфигуратор. Дарья Грабкина.

C++ 2026: безопасность, рефлексия, C++ vs Rust, будущее языка – Антон Полухин в Подлодке
▶︎

C++ 2026: безопасность, рефлексия, C++ vs Rust, будущее языка – Антон Полухин в Подлодке

Константин Владимиров: Странные ограничения статических компиляторов
▶︎

Константин Владимиров: Странные ограничения статических компиляторов

Антон Полухин — Грязные C++ трюки из userver и Boost
▶︎

Антон Полухин — Грязные C++ трюки из userver и Boost

Разбираемся в АЛЛОКАТОРАХ
▶︎

Разбираемся в АЛЛОКАТОРАХ

Why AI won't replace programmers
▶︎

Why AI won't replace programmers

Антон Полухин — C++ трюки из userver
▶︎

Антон Полухин — C++ трюки из userver

Александр Коботов — Что следует помнить C++ разработчику об архитектуре процессора
▶︎

Александр Коботов — Что следует помнить C++ разработчику об архитектуре процессора

Главная проблема ИИ, которую никто не может решить
▶︎

Главная проблема ИИ, которую никто не может решить

Entity-Component-System Pattern in C Games // Demo Lesson for the "C Programmer" Course
▶︎

Entity-Component-System Pattern in C Games // Demo Lesson for the "C Programmer" Course

Inside Anthropic, the $965 Billion AI Juggernaut | The Circuit
▶︎

Inside Anthropic, the $965 Billion AI Juggernaut | The Circuit

Антон Полухин — [Не]очевидные оптимизации и паттерны из userver
▶︎

Антон Полухин — [Не]очевидные оптимизации и паттерны из userver

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Something is jamming GPS over Europe. Here's what we found
▶︎

Something is jamming GPS over Europe. Here's what we found

Reinventing Entropy | Compression is Intelligence Part 1
▶︎

Reinventing Entropy | Compression is Intelligence Part 1

Антон Полухин — Монолит vs Микросервисы, и Как эффективно работать с последними в C++
▶︎

Антон Полухин — Монолит vs Микросервисы, и Как эффективно работать с последними в C++

ISpring 2025: Логика коэволюции компиляторов, инструментов разработки и языков программирования.
▶︎

ISpring 2025: Логика коэволюции компиляторов, инструментов разработки и языков программирования.

Антон Полухин — Анатомия асинхронных движков
▶︎

Антон Полухин — Анатомия асинхронных движков