
Game++. Устройство и оптимизация игрового движка
Как современный игровой движок устроен изнутри: архитектура, подсистемы и приёмы оптимизации — на практике.
Заметки о ремесле, программировании и внутренностях игр.
Инженерная изнанка мобильной SimCity BuildIt: как затолкали десктопный ситибилдер в 100–300 МБ памяти айфона — server-authoritative экономика на таймерах, «глупый» клиент-терминал, агрессивный батчинг, TBDR-рендер с превью-секторами, вырезанная симуляция с пробками-спрайтами и электричество через Capacity − Demand. Плюс история питерской студии EA SPB.
↗ Ненормальное программированиеОбзор альтернативных «стандартных» библиотек C++ из игровых студий и больших контор: EASTL и её best practices, LLVM SmallVector/DenseMap, Folly и устройство fbstring (SSO, COW и связка с jemalloc), boost flat_map, сериализуемые контейнеры Zmeya и value-oriented programming от Adobe — зачем каждая появилась и где об неё можно больно удариться.
↗ Ненормальное программированиеКаталог из ~100 идиом и приёмов C++, выросший из раздела Game++. Часть 1: ресурсы и компиляция — RAII, scope guard, copy-and-swap, smart pointer, copy-on-write, Pimpl, interface class, include/inline/export guard, CRTP, Barton-Nackman, EBO и metafunction.

Как современный игровой движок устроен изнутри: архитектура, подсистемы и приёмы оптимизации — на практике.

Свободная книга — скачивайте бесплатно в PDF или EPUB.
Черновик книги о прагматичном и «понятном через год» C++.
Черновик книги — доступ по запросу.
Современная open-source реализация классического градостроителя Pharaoh (1999) от Impressions Games. Полная совместимость с сохранениями оригинала, кроссплатформенность и живой, читаемый код.
Об игре →
Коллекция из десятков анимированных индикаторов загрузки для Dear ImGui — спиннеры, прогресс-бары и точки в одном заголовочном файле. Просто подключаешь imspinner.h и зовёшь нужный спиннер.
Курс среднего уровня о том, как писать на C++ без динамических аллокаций кучи: какие возможности языка и STL безопасны в условиях ограниченных ресурсов — в embedded и геймдеве — без потери современного C++ и ООП.