
Game++. Building & Optimizing a Game Engine
How a modern game engine works under the hood: architecture, subsystems and real-world optimization. Published in Russian by BHV.
Notes on craft, programming and game internals.
The engineering underbelly of mobile SimCity BuildIt: how a desktop city builder was crammed into an iPhone's 100–300 MB of RAM — a server-authoritative economy on timers, a "dumb" client-terminal, aggressive batching, a TBDR renderer with preview sectors, a gutted simulation with sprite traffic jams, and power as Capacity − Demand. Plus the story of the St. Petersburg studio EA SPB.
↗ Abnormal programmingA tour of the alternative "standard" C++ libraries from game studios and big companies: EASTL and its best practices, LLVM SmallVector/DenseMap, Folly and the anatomy of fbstring (SSO, COW, and the jemalloc pairing), boost flat_map, Zmeya's serializable containers, and Adobe's value-oriented programming — why each appeared and where you can hurt yourself on it.
↗ Abnormal programmingA catalog of ~100 C++ idioms and techniques that grew out of the Game++ section. Part 1: resources and compilation — RAII, scope guard, copy-and-swap, smart pointer, copy-on-write, Pimpl, interface class, include/inline/export guards, CRTP, Barton-Nackman, EBO, and metafunction.

How a modern game engine works under the hood: architecture, subsystems and real-world optimization. Published in Russian by BHV.

A free book — download it in PDF or EPUB. (In Russian.)
A work-in-progress book on pragmatic C++ that still makes sense a year later.
A work-in-progress book — access on request.
A modern open-source reimplementation of the classic city-builder Pharaoh (1999) by Impressions Games. Full savegame compatibility with the original, cross-platform, and clean, readable code.
About the game →
A collection of dozens of animated loading indicators for Dear ImGui — spinners, progress bars and dots in a single header. Just include imspinner.h and call the spinner you need.
An intermediate course on writing C++ without dynamic heap allocations: which language and STL features are safe under tight resource constraints — in embedded and game development — without giving up modern C++ and OOP.