Информационные технологии развиваются так стремительно, что список литературы можно обновлять дважды в неделю. Но есть книги, которые не теряют актуальность. Я составил подборку таких книг для разработчика игр: о знакомстве с индустрией, математике, искусственном интеллекте, шаблонах программирования и Unity.
1. Jeannie Novak. Game Development Essentials: An Introduction
Джинни Новак — знаковая личность в игровой индустрии. Она писатель, преподаватель и член такого количества профессиональных организаций и ассоциаций, что о них можно написать отдельную статью.
Game Development Essentials подойдет и новичкам в геймдеве, и опытным разработчикам из других областей. Автор разработала интересный сценарий обучения и свела техническую составляющую к минимуму — короче говоря, сделала всё, чтобы ваше знакомство с разработкой было увлекательным.
В отличие от многих других книг для начинающих, Game Development Essentials не вводит в заблуждение, говоря, что для создания игры вашей мечты нужна только хорошая идея, а процесс программирования — сплошное развлечение. Для Джинни разработка — в первую очередь бизнес, требующий кропотливого труда, а уже потом — искусство.
Книга охватывает все важные для геймдева темы: от истории индустрии и создания игровых сюжетов до процесса разработки и развития команды. Благодаря понятному языку и скриншотам в качестве иллюстраций с этого издания можно начать освоение геймдева.
В книге есть «заметки на полях» — цитаты разработчиков из известных студий, например Infinity Ward, Obsidian Entertainment, Ensemble Studios и т.д. Создатели игр подтверждают тезисы автора примерами из опыта и дают действительно хорошие, применимые на практике советы.
2. Eric Lengyel. Mathematics for 3D Game Programming and Computer Graphics
Эрик Ленгел — основатель Terathon Software и создатель C4 Engine, в прошлом — разработчик в компаниях Naughty Dog, Sierra Studios и Apple.
Если вы плохо помните программу технического вуза или вовсе его не заканчивали, эта книга для вас. Автор собрал всю необходимую для написания качественного 3D-движка «вышку» в одном месте. Больше никакого чтения выцветших конспектов и бессистемного поиска в Google.
Автор начинает с векторной геометрии и линейной алгебры и переходит к более сложным задачам 3D-программирования, например освещению и определению видимости. Целый раздел в работе занимает ноу-хау автора — моделирование жидкостей и тканей.
Есть и практические задания на закрепление пройденного материала. Примеры использования C++ и GLSL-кода доступны на сайте mathfor3dgameprogramming.com
Книга совсем не универсальна, поэтому браться за неё стоит только в том случае, если вы уже обладаете определенным уровнем подготовки. В качестве первого учебника по математике она точно не подойдет, как и в качестве единственного аргумента на собеседовании в геймдев-компанию.
3. Ian Millington. Artificial Intelligence for Games
Ян Миллингтон — британский разработчик, специализирующийся на искусственном интеллекте (ИИ) и системах поддержки принятия решений (СППР).
ИИ — одна из самых важных проблем геймдева. От качества ИИ довольно часто зависит успех игры.
Artificial Intelligence for Games рассказывает, как научить компьютер мыслить: решать арифметические задачи, принимать решения, искать и сортировать данные.
Книга состоит из четырех частей. AI and Games включает основные понятия искусственного интеллекта, в Techniques рассказывается о структуре ИИ, Supporting Technologies посвящена способам реализации полноценной работы, а Designing Game AI — проектированию.
Автор стремится доступно объяснить читателю, как что работает, поэтому вместо непонятных новичкам простыней C++ в книге много примеров псевдокода и подробных описаний алгоритмов. В каждой главе есть упражнения, чтобы применить полученные знания на практике.
Автор приводит и анализирует множество примеров из реальных игр топ-студий. Кстати, второе издание книги охватывает больше ИИ-ориентированных тайтлов.
В профиле Яна Миллингтона на GitHub есть большая библиотека исходного кода ИИ: github.com/idmillington/aicore
4. Will Goldstone. Unity Game Development Essentials
Unity, кроссплатформенная система для создания игр, становится популярнее с каждым днем. Я бы сказал, что с её помощью можно стать разработчиком игр в кратчайшие сроки, поэтому и включил в список одну из лучших книг о конструкторе.
Уилл Голдстоун — разработчик, веб-дизайнер и блогер. Он работает на Unity, пишет о Unity и продвигает Unity с первых её версий. Если официальная документация движка оказалась для вас слишком сложной, эта книга вам поможет.
Изложение доступное и последовательное. Вам не потребуется никаких знаний по разработке, автор начинает с основ. После прочтения книги вы сможете создавать профессиональные 3D-игры с реалистичной средой, звуком и динамическими эффектами.
Уилл объясняет устройство интерфейса редактора, рассказывает о языке сценариев и расположении объектов. Под руководством автора вы будете делать приключенческую игру с аркадными элементами и мини-играми внутри основного сюжета.
Автор уделяет внимание повторному использованию кода, добавлению 2D-элементов в игру и её компиляции. Уилл даже рассказывает, где вам найти бета-тестировщиков для вашей разработки или как поделиться ею с другими Unity-разработчиками.
А если вы захотите пройти онлайн-курсы на официальном сайте конструктора, советую изучитьсамую актуальную версию — Unity 5.
5. Robert Nystrom. Game Programming Patterns
Роберт Нистром программирует уже 20 лет, 8 из которых — в Electronic Arts. Он разрабатывал игры на PC, PS2, GameCube, Xbox и DS, но больше всего гордится созданием разделяемых .NET-библиотек.
Эта книга не научит вас проектировать конкретные системы, но расскажет о том, как использовать шаблоны программирования и связывать разные системы в коде игры. Описанные паттерны используются для решения проблем, возникающих в конструкции движка игры, но их можно использовать и в других областях программирования.
Game Programming Patterns вряд ли подойдет новичкам — чтобы полностью понять её, необходимы знания
Каждая глава описывает один шаблон, объясняет, как и для чего его использовать, и дополняет примером кода. Главы абсолютно автономны, поэтому обращаться к ним можно в любом порядке.
Издание поможет вам понять алгоритмы работы языков программирования в целом. Образцы кода написаны на С++, но в них нет лишних деталей, поэтому воспринимаются они легко — как учебный псевдокод.
Лучшее в этой книге то, что она описывает технически сложные вещи в простой, несколько шутливой манере, оставляя послевкусие легкого развлекательного текста, а не тяжелого научного исследования.
Сайт книги: gameprogrammingpatterns.com
Вместо выводов
Некоторые люди относятся к книгам с определенной долей скепсиса, предпочитая им более современные средства обучения. Видеокурсы, онлайн-туториалы и другие интерактивные методы активно вытесняют профессиональную литературу с рынка.
На мой взгляд, наилучших результатов можно добиться, комбинируя информацию из всех доступных источников. Поэтому я рекомендую читать, смотреть и слушать всё, что касается вашей сферы деятельности, независимо от формата. Будет здорово, если вам еще и повезет найти хорошего наставника.
И конечно, теория без практики мертва. Чтобы научиться делать игры, нужно делать их постоянно.