Описание
Книга рассказывает о тонкостях разработки игрового движка на языке C++. На материале компьютерных игр премиум-класса подробно разобран полный спектр работы со сложными программами на C++, способы оптимизации кода, структуры данных и их выбор для достижения максимальной производительности. Особое внимание уделено стандартной библиотеке шаблонов (STL) языка C++, многопоточной обработке, а также решению непредвиденных проблем, связанных с неопределённым поведением, поддержкой и обновлением сложнейших баз кода, а также поддержке работоспособности высоконагруженных систем.
Для программистов С++
Книга представляет собой сборник размышлений о языке программирования C++, алгоритмах и практиках в контексте разработки игр — о его сильных и слабых сторонах, практических решениях и устоявшихся способах работы. C++ на сегодняшний день остается основным языком в индустрии разработки игр благодаря сочетанию высокой производительности, гибкости и широкихвозможностей низкоуровневого контроля.
Несмотря на свою популярность, он обладает множеством архитектурных и синтаксических проблем, которые сложно устранить из-за необходимости поддерживать обратную совместимость и учитывать текущее направление развития языка.
Автор не претендует на универсальные ответы. В некоторых случаях он предлагает конкретные идеи и даже возможные решения, но чаще всего фокусируется на выявлении проблем производительности и обсуждении общих принципов проектирования современных игр и игровых движков. Во многих местах книги предложены решения, которые расходятся с общепринятыми подходами для разработки программного обеспечения.
По сути, это не академическое исследование и не руководство к действию — это личный перечень наблюдений, пожеланий и претензий к C++. В книге описаны подходы к разработке игр, выработанные автором на основе собственного опыта. Это бесценный материал, помогающий понять, как заставить сложные высоконагруженные системы работать предсказуемо, безотказно и с приемлемой скоростью.
Ключевые темы:
- Архитектура игровых движков
- Работа с памятью в компьютерных играх премиум-класса и других приложениях с высокими требованиями к производительности
- Структуры данных языка С++
- Работа со стандартной библиотекой шаблонов C++ (STL)
- Обработка исключений
- Неопределённое поведение и способы его предотвращения
- Память и аллокаторы
- Оптимизация в C++
- Многопоточность
- Классические паттерны проектирования применительно к разработке игр
Впервые я оценил писательский талант Сергея, познакомившись с его статьями на Хабре, где они регулярно привлекают множество читателей и получают высокие оценки. Привлекли они и меня разбором интересных ошибок из мира разработки игр на языке C++.
Теперь вы держите в руках новый масштабный труд Сергея о разработке игр и их оптимизации. Я далек от тематики игр и не берусь оценить, например, приведенный там обзор игровых движков и специфических подходов для увеличения производительности. Однако как любитель “экстремального использования С++” считаю книгу однозначно достойной внимания.
Вы найдете описания многих приемов, которые следует применить при необходимости на практике, а также тех, которые применять не стоит :). Сергей поистине раскрывает бездну “великолепия и ужаса” языка C++.
Желаю всем приятного чтения! И качественного быстрого кода, хотя понимаю, что совместить это непросто. Удачи.
Андрей Карпов, один из основателей проекта PVS-Studio — инструмента статического анализа кода

Сергей Кушниренко — разработчик с более чем двадцатилетним опытом программирования и создания игр. Выпускник Национального исследовательского университета ИТМО. Начинал карьеру с разработки программного обеспечения для военно-морских тренажеров, навигационных систем и сетевых решений. Последние пятнадцать лет специализируется на разработке игр: в Electronic Arts занимался оптимизацией игр The Sims и SimCity BuildIt, в Gaijin Entertainment руководил переносом игр на платформы Nintendo Switch и Apple TV. Активно участвует в проектах с открытым исходным кодом, включая библиотеку ImSpinner и проект восстановления игры Pharaoh (1999).






Отзывы
Отзывов пока нет.