После статьи о книгах для саморазвития gamedev программиста, меня просили больше написать про аишную часть и том, что стоит почитать по этой теме. Для программиста ИИ в игрострое ситуация с книгами схожа, но с несколькими интересными особенностями. Здесь важна не только глубина знаний, сколько наработанность с инструментами, библиотеками и технологиями в целом, а с учетом что новые подходы развиваются с поразительной скоростью, поразительной для игростроя конечно. Казалось только лет 10 назад стали использоваться BT (behavior tree), но и они уже имеют редакцию 4.x (https://www.behaviortree.dev/). Но важно не зацикливаться на затаскивании в проект модных примочек, базовые знания остаются самым важным что можно получить. Это как в притче о удочке — дай человеку рыбу, и он накормит себя сегодня; дай ему удочку, и он будет кормить себя всю жизнь. Удочкой в этом случае выступает знание, как оно работает, а не как можно его использовать.
ИИ до сих пор стоит в игрострое особняком, потому что до сих пор нет стандартов построения игровой логики, каждая из студий решает свои уникальные технические и инженерные задачи, и вынуждена находить баланс между чем-то новым и общей стабильностью игры. Этот путь усеян пробами и ошибками, даже если вы уже прошли по нему в прошлом, и мало кто поможет вам увидеть ошибки заранее, банально потому, что прошел по другому пути, со своими граблями и костылями. Тем хуже когда, именитый разработчик приходит в команду и начинает продавать свои решения и опыт, которые часто не бьются с разработками команды. Но, статья не об этом, а о полезных книгах.
К сожалению хороших книг не очень много, а внутренние доклады и презентации с GDC и около игровых конференций, не говоря уже о собственных разработках и исходниках компании берегут и расшаривают ну очень редко, читай практически никогда.
AI for Game Developers
Это, вероятно, лучшая книга, если вы хотите начать изучать концепции построения ИИ для игр. Рассматривайте её как «ИИ для игр для чайников за 21 день»; когда-то существовала серия книг про разные языки программирования с похожим названием. В целом, эта книга является отправной точкой для всех, и скорее всего вам предложат прочитать её в студии и она будет в локальной библиотеке. Как всегда читать лучше в оригинале, потому что наши переводчики не всегд корректно переводят обороты.
Авторы объясняют довольно широкий спектр техник, решений и стратегий, используемых в разработке игр, простым и понятным языком, с небольшим условием, простым если вы уже успели прочитать другие кники по разработке, понятным если уже пробовали чтото делать. Информацию подают доступным языком для людей с разным уровнем опыта и общим бэкграундом в разработке игр. Книга хорошо структурирована, с балансом теории и практических примеров. Подход Бурга помогает понять некоторые концепции ИИ вроде BT, активностей, прерывания, мониторов и т.д. Неплохо рассмотрены такие концепции игрового ИИ, как принятие решений, обучение и восприятие (EOS, environment obstacle system), я затрагивал описание похожей системы в этой статье (https://habr.com/ru/articles/769696/).
Что еще можно будет узнать из книги:
-
Поиск пути и навигация: Одна из ключевых тем книги, которая необходима для движения и поведения NPC, здесь объясняются популярные алгоритмы, такие как A* и алгоритм Дейкстры, но вот A* c прыжками совершенно не затронут, хотя его применение в играх больше распростанено сейчас.
-
Конечные автоматы (FSM): обсуждаются конечные автоматы как способ управления различными состояниями игровых персонажей. Есть примеры того, как создавать и управлять конечными автоматами для контроля поведения персонажей и их взаимодействий.
-
Деревья поведения (BT): базовое понимание работы с деревьями поведения как альтернативе конечным автоматам. Объяснена структуру и то, как их можно использовать для создания более сложных и гибких алгоритмов поведения NPC.
-
Принятие решений и системы полезности: В целом почитать можно, но мне не понравилось — слишком много воды. Описаны системы на основе полезности, активностей и весов целей.
-
Боевой ИИ и стратегии: также рассказываются про стратегии ИИ для боевых сценариев, когда NPC могут адаптироваться к поведению игрока и принимать стратегические (групповые) решения в ходе игры, вроде обороны места, удержания точки, областей наблюдения.
-
Обучение и адаптация: немного затрагиваются концепции машинного обучения, но не в том понимании как это можно делать с LLM, все же книга вышла почти 20 лет назад, здесь больше про классическое обучение, с весами, отсечением веток поведения по триггерам и базовых принципах вроде «преследования игрока», «резиночки» или «пряток», которые делают игровой процесс более динамичным и отзывчивым. Большинство этих моделей хорошо палятся игроками, ибо применяются давно и в большом числе игр, но знать про сильные и слабые их стороны нужно.
Game AI Pro
Серия книг, посвященная искусственному интеллекту в компьютерных играх. Каждая книга представляет собой сборник статей и опыта реальных разработчиков, которые делятся своими знаниями и практическими подходами. Каждая книга организована в главы, посвященные темам, с которыми разработчики часто сталкиваются. Читать лучше параллельно с первой книгой в списке, те главы что пересекаются по темам. Так будет больше материала для осмысления и возможность увидеть больше примеров по теме.
-
Навигация и поиск пути — алгоритмы поиска пути, движение персонажей и прокладка маршрутов.
-
Поведение персонажей — реализация поведения NPC с использованием таких техник, как конечные автоматы и деревья поведения.
-
Осведомленность об окружении — адаптация ИИ к изменениям в игровом мире, а также взаимодействие с игроками и другими NPC.
-
Оптимизация производительности — техники и советы по улучшению производительности ИИ в реальном времени.
-
Машинное обучение — использование продвинутых методов для создания адаптивного поведения персонажей.
Game Engine Gems
Серия книг предлагает истории о создании уже выпущенных игр — что-то вроде напечатанного подкаста с ценными советами, техниками и лучшими практиками от опытных разработчиков. Формат состоит из коротких историй и статей от мэтров, что делает её увлекательным ретроспективным обзором ошибок и рекомендаций по тому, что следует (а главное, чего не стоит) делать в разработке игр. Не дайте себя обмануть названием — это не только про игровые движки; со временем выпуски стали охватывать практически все аспекты разработки. С одной стороны такая подача материла делает её легкой для чтения, я осилил все книги всего за месяц вечерами, с другой стороны, если вы уже что-то делали сами или шипнули игру, вы увидите что темы раскрыты поверхностно. Справедливости ради стоит отметить, что все главы выполнены на хорошем литературном уровне (напомню жто байки от мэтров по разработку игры и зеленую траву). Первую лучше читать отдельно, ибо там в основном про движки, а вот вторая и третья уже более близко рассказывают про ИИ-шку или темы около неё.
!Читать лучше в оригинале, наши переводчики криво используют контекст, а зачастую убирают целые абзацы!
Чтобы было ясно: эти книги не дадут вам полного понимания того, как создать игровой движок или написать хороший и интересный ИИ противников, нет. В книге почти не обсуждается техническая часть, вместо этого внимание уделено некоторым узким специфическим темам которые возникли при разработке и описанию ошибок уже постмортем. Как дополнение к более техническим книгам, которые можно найти по архитектуре игровых движков и игровому ИИ книга достойная и безусловно заслуживает места в этом списке.
Особенности:
-
Анализ ошибок — думаю тут понятно, но стоит учесть разницу во времени почти в десять лет, последняя вышла в 2016. Рзработчики делятся тем, что пошло не так в их проектах, и объясняют, как избежать подобных проблем.
-
Best practices и как делать не стоило — советы о том, что оказалось эффективным на практике: от оптимизации производительности до улучшения взаимодействия с игроком.
-
Тулы — успешные и неудачные примеры использования различных движков, библиотек и фреймворков.
-
Культура разработки — ак наладить эффективное сотрудничество в команде и поддерживать проект в здоровом состоянии в условиях сжатых сроков и давления со стороны инвесторов..
The Pyramid of Game Design
Книга описывает модель для проектирования ИИ в компьютерных играх. Эта модель предназначена для того, чтобы помочь разработчикам игр связать различные аспекты игрового дизайна. Это теория как надо строить связи в игре, между квестами, между предметами, между NPC, между игроком и окружением. За годы разработки я не встречал практических примеров её применения полностью, как она описана в книге. Как теория, выглядит вполне хорошей и стройной, но как практический подход я нигде не видел. Отдельные части да, используются достаточно широко, об этом ниже, а вот про «эмоциональное программирование игроков» — даже звучит стрёмно, хотя вот последние игры вроде «Inscryption» или «Buckshot Roulette» похоже попытались применить определенные главы этой книги на практике.
Темы, которые могут быть интересны программистам ИИ и дизайнерам:
-
Структура пирамиды: Пирамида разделена на различные уровни, каждый из которых представляет собой важный аспект игрового дизайна. Эта иерархическая модель подчеркивает, что фундаментальные элементы должны быть надежно построены перед тем, как переходить к следующему уровню.
-
Игрокоцентричный дизайн: Лавелл подчеркивает важность понимания мотивации игроков и их опыта. Он призывает дизайнеров учитывать, как каждый элемент игры влияет на удовлетворение игроков и их вовлеченность.
-
Итеративный процесс дизайна: Книга отстаивает итеративный подход к проектированию игр, когда идеи постоянно тестируются и уточняются на основе отзывов игроков. Этот подход помогает дизайнерам создавать более отшлифованные и увлекательные игры.
-
Практические применения: Хотя книга представляет теоретические концепции, Лавелл дает практические советы по применению этих идей в реальной разработке игр. Он обсуждает общие ошибки и трудности, с которыми могут столкнуться дизайнеры, и предлагает пути их преодоления.
Behavioral Mathematics for Game AI
Это ценное пособие для разработчиков игр и AI-программистов, но очень скучное. Я осилил книгу после трех попыток. Тем не менее, если вы хотите понимать математические основы моделей поведения NPC в играх и аппелировать этим в спорах с дизайнером, эта книга определенно будет полезной. Написано достаточно запутанно, тут возможно были еще сложности перевода, и бывало, что концепции из прошлой главы забывались к началу следующей. Это больше похоже на справочник для тех, кто хочет увидеть, как определенные игровые концепции воспринимаются дизайнерами в теории. Помните, что автор передает знания конца 90-х или начала 2000-х годов, и некоторые подходы серьезно устарели и сейчас едва ли используются. Не читайте всё подряд — это справочник, не зашла глава после пяти страниц смотрите следующую, из-за того, что главы неправильно организованы, кмк, их надо читать не в порядке расположения, а в порядке возникающих в голове вопросов. Ну что есть, то есть, уже не исправишь. Меня книга зацепила автором, который участвовал в создании ИИ для первой части Majesty, если кто помнит эту игру, думаю многие увидят в этих описаниях решения тех лет.
-
Математика в проектировании ИИ: математика важна в проектировании ИИ, нужно понимать такие вещи как теорию вероятности, базовую статистику и линейная алгебра. И книго объясняет как эти математические инструменты могут быть использованы для создания более сложного и правдоподобного поведения ИИ.
-
Модели поведения: подробно рассматриваются (20-хх год) алгоритмы принятия решений, как математические модели могут быть использованы для моделирования рационального поведения, оценку рисков, ожидаемую полезности, весовые модели поведения.
-
Поиск пути и навигация: расписаны разные алгоритмы для навигации и поиска пути, включая алгоритмы A* и Дейкстры, и объяснено какик математические принципы лежат в основе этих алгоритмов
-
Динамическое и реактивное поведение: показаны проблемы создания игрового ИИ, который может динамично реагировать на изменения карты, предметов или действия игрока.
-
Теория игр: обсуждаются стратегии для NPC в многопользовательских средах и малоуправляемых средах (привет Majesty), где понимание поведения противников имеет решающее значение и основано на критериях, оценках, но не жестких сценариях.
AI Game Programming Wisdom
Серия книг, посвященная техникам в области искусственного интеллекта, применяемого в разработке игр. Это истории о существующих решениях в играх начала 2000-х годов. Серия акцентирует внимание на практических подходах и решениях реальных задач ИИ.
Почему я могу порекомендовать эту серию:
-
Целевая аудитория: Книги ориентированы на тех, кто уже имеет базовые знания в программировании и разработке игр. Однако важно помнить, что многие советы основаны на опыте начала 2000-х, и не все из них могут быть актуальны сегодня.
-
Практическая направленность: Серия включает практические примеры и решения, что делает её хорошей отправной точкой для новичков в индустрии, предлагая ретроспективный взгляд на решения, принятые в различных играх разными авторами.
-
Легко читать: Многие мои коллеги, в том числе и я, прошли всю серию за один раз, часто воспринимая её как художественное произведение. Однако, как уже было сказано, большинство предложенных решений могут быть спорными в своём применении сегодня.
Почему я не могу порекомендовать эту серию:
-
Это книга по истории развития игрового ИИ, исторический справочник, не стоит перенимать и перености решения тех лет на современные игры, тем более что плохие и хорошие решения идут вперемешку и автор зачастую не говорит к чему они привели.
-
К сожалению, серия фактически завершилась на второй книге, третья была почти 700 страниц, но реальных и интересных примеров гдето на 200, остальное вода и размышлизмы, что совсем не вяжется со стилем изложения первых двух. Лично мне показалось, что последняя книга была написана другой командой авторов, так как подача материала сльино отличалась от предыдущих томов, поэтому читать лучше первые две, а третью по желанию.
Заключение:
Спасибо, что дочитали. Докидывайте интересные книги и мнения о них в коментах, добавлю их тоже.
Эта статья на английском (страница на linkedin)