Код · Ремесло · Реверс-инжиниринг

Люблю старый код,
игры и алгоритмы

Заметки о ремесле, программировании и внутренностях игр.

101 эссе 2 книги с 2014
радость программирования как писалась Game++ охота за fps универ и программисты имена и компилятор и снова ограничения иерархия концептов история концептов концепты в C++ перегрузки в C++ AA+ игрострой архитектура движков история игр многопоточность STL алгоритмы аллокаторы древний Египет cooking vectors string interning все сеньоры слон в чемодане spears & bits task-based движки книги по игровому ИИ тяжёлый хедер 486-го хватит всем Unity и свои строки уроки BioShock: Infinite 20 ядер мало программист в gamedev свой игровой движок? что почитать? что ещё почитать? C++ в gamedev'е красная бочка swizzle в C++ private → public три sin в Switch SDK Не Unity единым генерация укрытий вести игрока за ручку? тёмные паттерны игр механики старых игр коридоры BioShock последний Deus Ex пригоршня ачивок строки в движках не копируй это Федя, дичь шеф, всё пропало спинлоки cache pollution Game++ enum в рантайме Caesar III: текстуры Caesar III: рендер Caesar III: логика Caesar III: генерация Caesar III: модель города Caesar III: игровой цикл reverse-engineering PragmatiC++ ECS в Фараоне карта Фараона Записки ездового кота

01Свежие статьи

Все статьи →
Ненормальное программирование

Как «ужать» мегаполис до размеров iPhone 4

Инженерная изнанка мобильной SimCity BuildIt: как затолкали десктопный ситибилдер в 100–300 МБ памяти айфона — server-authoritative экономика на таймерах, «глупый» клиент-терминал, агрессивный батчинг, TBDR-рендер с превью-секторами, вырезанная симуляция с пробками-спрайтами и электричество через Capacity − Demand. Плюс история питерской студии EA SPB.

12 июля 202610 мин
Ненормальное программирование

Путеводитель по чужим STL

Обзор альтернативных «стандартных» библиотек C++ из игровых студий и больших контор: EASTL и её best practices, LLVM SmallVector/DenseMap, Folly и устройство fbstring (SSO, COW и связка с jemalloc), boost flat_map, сериализуемые контейнеры Zmeya и value-oriented programming от Adobe — зачем каждая появилась и где об неё можно больно удариться.

6 июля 202612 мин
Ненормальное программирование

C++101 (Ч.1)

Каталог из ~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.

21 июня 202638 мин

02Книги

Все →
Game++. Устройство и оптимизация игрового движка

Game++. Устройство и оптимизация игрового движка

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

Отзывы
PDF + EPUB · скоро будет
Записки ездового кота

Записки ездового кота

Свободная книга — скачивайте бесплатно в PDF или EPUB.

Бесплатно · PDF + EPUB
dalerank · черновикPragmatiC++
черновик

PragmatiC++

Черновик книги о прагматичном и «понятном через год» C++.

Черновик · в работе
dalerank · черновикИграя в игры
черновик

Играя в игры

Черновик книги — доступ по запросу.

Черновик · по запросу

03Проекты

Весь GitHub →
Open source Скриншот Akhenaten — город в стиле Pharaoh
Игровой движок · C++

Akhenaten

Современная open-source реализация классического градостроителя Pharaoh (1999) от Impressions Games. Полная совместимость с сохранениями оригинала, кроссплатформенность и живой, читаемый код.

C++ SDL2 Реверс-инжиниринг AGPL-3.0
Об игре →
Header-only Демо анимированных спиннеров imspinner для Dear ImGui
Библиотека · Dear ImGui

imspinner

Коллекция из десятков анимированных индикаторов загрузки для Dear ImGui — спиннеры, прогресс-бары и точки в одном заголовочном файле. Просто подключаешь imspinner.h и зовёшь нужный спиннер.

C++ ImGui single-header MIT
Открыть на GitHub →
Онлайн-курс Обложка курса «С++ без аллокаций памяти» на Stepik
Курс · Stepik

С++ без аллокаций памяти

Курс среднего уровня о том, как писать на C++ без динамических аллокаций кучи: какие возможности языка и STL безопасны в условиях ограниченных ресурсов — в embedded и геймдеве — без потери современного C++ и ООП.

C++ C++20 Embedded Производительность
Открыть курс на Stepik →

04По темам