Unity и C#. Геймдев от идеи до реализации. 2-е изд. - Джереми Гибсон Бонд - E-Book

Unity и C#. Геймдев от идеи до реализации. 2-е изд. E-Book

Джереми Гибсон Бонд

0,0
13,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Впервые введение в геймдизайн, прототипирование и геймдев объединены в одну книгу. Если вы собираетесь заняться разработкой игр, то в первую очередь вам необходима информация о современных методах и профессиональных инструментах. Эти незаменимые знания можно получить в книге Джереми Гибсона Бонда. Кросс-платформенная разработка Unity позволяет создать игру, а затем с легкостью портировать куда угодно - от Windows и Linux до популярных мобильных платформ. Начните путешествие в мир игровой индустрии прямо сейчас! Заявите гордо: «Я — геймдизайнер». Ведь, если вас услышат другие, то вы будете стараться соответствовать своим словам. А что дальше? Как стать геймдизайнером? Ответы на эти вопросы дает книга Джереми Гибсона Бонда - геймдизайнера и профессора, который больше 10 лет учит других создавать великолепные игры и делает это сам. Вы погрузитесь в увлекательный мир игровой индустрии, построите 8 реальных прототипов и овладеете всеми необходимыми инструментами. «Книга сочетает в себе важные философские и практические понятия, необходимые всем, кто хочет стать настоящим разработчиком игр. Она познакомит вас с высокоуровневыми теориями проектирования, главными понятиями из мира разработки игр и основами программирования. … Джереми использовал свой многолетний опыт, чтобы научить вас мыслить категориями геймдева и создавать игры». — Мишель Пун (Michelle Pun), игровой продюсер в Osmo. Ведущий геймдизайнер в Disney и Zynga

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 1347

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Джереми Гибсон Бонд
Unity и C#. Геймдев от идеи до реализации. 2-е изд.
2021

Переводчик А. Макарова

Технический редактор О. Букатка

Литературный редактор Д. Дрошнев

Художники Л. Егорова, В. Мостипан

Корректоры С. Беляева, Н. Викторова

Верстка Л. Егорова

Джереми Гибсон Бонд

Unity и C#. Геймдев от идеи до реализации. 2-е изд.. — СПб.: Питер, 2021.

ISBN 978-5-4461-0715-5

© ООО Издательство "Питер", 2021

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Отзывы на книгу «Unity и C#. Геймдев от идеи до реализации»
Предисловие
Вступление
Цель этой книги
Другие книги
Наше окружение для цифрового прототипирования: Unity и C#
Кому адресована эта книга
Типографские соглашения
Веб-сайт книги
Благодарности
Об авторе
От издательства
Часть I. Проектирование игры и прототипирование на бумаге
1. Думать как дизайнер
Вы — геймдизайнер
Bartok: пример игры
Определение игры
Итоги
2. Методы анализа игр
Методы анализа для игрологии
МДЭ: механика, динамика и эстетика
Формальные, драматические и динамические элементы
Простая тетрада
Итоги
3. Многоуровневая тетрада
Фиксированный уровень
Динамический уровень
Культурный уровень
Ответственность дизайнера
Итоги
4. Фиксированный уровень
Фиксированная механика
Фиксированная эстетика
Фиксированный сюжет
Фиксированная технология
Итоги
5. Динамический уровень
Роль игрока
Непредсказуемость
Динамическая механика
Динамическая эстетика
Динамический сюжет
Динамическая технология
Итоги
6. Культурный уровень
За рамками игры
Культурная механика
Культурная эстетика
Культурный сюжет
Культурная технология
Авторизованный перенос не является частью культурного уровня
Культурное влияние игры
Итоги
7. Действовать как дизайнер
Итеративное проектирование
Новаторство
Мозговой штурм и формирование идей
Изменение мнения
Ограничение объемов работ
Итоги
8. Цели проектирования
Цели проектирования: неполный список
Цели для дизайнера
Цели для игрока
Итоги
9. Прототипирование на бумаге
Преимущества прототипирования на бумаге
Прототипирование интерфейсов на бумаге
Пример бумажного прототипа
Лучшие примеры использования прототипирования на бумаге
Неудачные примеры использования прототипирования на бумаге
Итоги
10. Тестирование игры
Зачем тестировать игры?
Воспитайте в себе хорошего тестировщика
Круги тестировщиков
Методы тестирования игр
Другие важные типы тестирования
Итоги
11. Математика и баланс игры
Значение баланса игры
Важность электронных таблиц
Выбор Google Sheets для этой книги
Исследование вероятности с игральной костью в Sheets
Математика вероятности
Технологии внесения элемента случайности в настольные игры
Взвешенные распределения
Перестановки
Использование Google Sheets для балансировки оружия
Положительная и отрицательная обратная связь
Итоги
12. Руководство игроком
Прямое руководство
Четыре метода прямого руководства
Косвенное руководство
Семь методов косвенного руководства
Обучение новым навыкам и понятиям
Итоги
13. Проектирование головоломок
Скотт Ким о проектировании головоломок
Примеры головоломок в активных играх
Итоги
14. Agile-мышление
Манифест гибкой разработки программного обеспечения
Методология Скрам
Пример диаграммы сгорания задач
Создание собственной диаграммы сгорания задач
Итоги
15. Индустрия цифровых игр
Об индустрии игр
Обучение созданию игр
Вхождение в индустрию
Не ждите, чтобы начать делать игры!
Итоги
Часть II. Цифровое прототипирование
16. Цифровое мышление
Системный подход к настольным играм
Упражнение в простых инструкциях
Анализ игры: Apple Picker
Итоги
17. Введение в среду разработки Unity
Загрузка Unity
Введение в нашу среду разработки
Первый запуск Unity
Пример проекта
Настройка размещения окон Unity
Устройство Unity
Итоги
18. Знакомство с нашим языком: C#
Знакомство с особенностями C#
Чтение и понимание синтаксиса C#
Итоги
19. Hello World: ваша первая программа
Создание нового проекта
Создание нового сценария на C#
Пример поинтереснее
Итоги
20. Переменные и компоненты
Введение в переменные
Строго типизированные переменные в C#
Важные типы переменных в C#
Область видимости переменных
Соглашения об именах
Важные типы переменных в Unity
Игровые объекты и компоненты в Unity
Итоги
21. Логические операции и условия
Булева математика
Операторы сравнения
Условные инструкции
Итоги
22. Циклы
Виды циклов
Подготовка проекта
Цикл while
Цикл do...while
Цикл for
Цикл foreach
Инструкции перехода в циклах
Итоги
23. Коллекции в C#
Коллекции в C#
Обобщенные коллекции
List
Dictionary
Массивы
Многомерные массивы
Ступенчатые массивы
Когда использовать массивы или списки
Итоги
24. Функции и параметры
Настройка проекта Function Examples
Определение функции
Параметры и аргументы функций
Возвращаемые значения
Выбор правильных имен для функций
Зачем нужны функции?
Перегрузка функций
Необязательные параметры
Ключевое слово params
Рекурсивные функции
Итоги
25. Отладка
Знакомство с отладкой
Пошаговое выполнение кода в отладчике
Итоги
26. Классы
Основы классов
Наследование классов
Итоги
27. Объектно-ориентированное мышление
Объектно-ориентированная метафора
Объектно-ориентированная реализация стаи
Итоги
Часть III. Прототипы игр и примеры
28. Прототип 1: Apple Picker
Цель создания цифрового прототипа
Подготовка
Программирование прототипа Apple Picker
ГИП и управление игрой
Итоги
29. Прототип 2: Mission Demolition
Начало: прототип 2
Идея прототипа игры
Художественные ресурсы
Программный код прототипа
Итоги
30. Прототип 3: SPACE SHMUP
Начало: прототип 3
Настройка сцены
Создание космического корабля игрока
Добавление вражеских кораблей
Случайное создание вражеских кораблей
Настройка тегов, слоев и физики
Повреждение корабля игрока вражескими кораблями
Перезапуск игры
Стрельба (наконец)
Итоги
31. Прототип 3.5: SPACE SHMUP PLUS
Начало: прототип 3.5
Добавление других вражеских кораблей
Снова стрельба
Отображение попаданий
Добавление бонусов для увеличения мощности оружия
Сбрасывание бонусов с вражеских кораблей
Enemy_4 — самый стойкий враг
Скроллинг фона с изображением звездного поля
Итоги
32. Прототип 4: PROSPECTOR SOLITAIRE
Начало: прототип 4
Настройка сборки
Импортирование изображений в виде спрайтов
Конструирование карт из спрайтов
Игра Prospector
Программная реализация Prospector
Реализация логики игры
Подсчет очков в Prospector
Улучшение оформления игры
Итоги
33. Прототип 5: BARTOK
Начало: прототип 5
Настройка сборки
Программный код игры Bartok
Сборка для WebGL
Итоги
34. Прототип 6: Word Game
Начало: прототип 6
Об игре Word Game
Парсинг списка слов
Настройка игры
Компоновка экрана
Добавление интерактивности
Отображение очков
Добавление анимации в плитки
Добавление цвета
Итоги
35. Прототип 7: DUNGEON DELVER
Dungeon Delver — обзор игры
Начало: прототип 7
Настройка камер
Данные для игры Dungeon Delver
Добавление героя
Соглашение об именовании спрайтов с изображением Дрея
Добавление анимации атаки
Меч Дрея
Враги: скелеты
Сценарий InRoom
Столкновения с плитками
Добавления коллайдера в объект Dray
Выравнивание по сетке
Переход из комнаты в комнату
Перемещение камеры вслед за Дреем
Отпирание дверей
Пользовательский интерфейс для отображения количества ключей и уровня здоровья
Реализация нанесения ущерба Дрею врагами
Реализация нанесения урона врагам
Сбор предметов
Бросание предметов врагами на месте гибели
Реализация крюка
Реализация нового подземелья — Hat
Редактор уровней для игры Dungeon Delver
Итоги
Часть IV. Приложения
A. Стандартная процедура настройки проекта
Настройка нового проекта
Подготовка сцены к разработке
Б. Полезные идеи
Охватываемые темы
C# и идеи программирования в Unity
Математика
Ролевые игры
Идеи по организации пользовательского интерфейса
В. Ссылки на интернет-ресурсы
Учебные руководства для Unity
Архив конференции Unite
Помощь в программировании
Советы по поиску
Поиск ресурсов
Другие инструменты и образовательные скидки

Отзывы на книгу «Unity и C#. Геймдев от идеи до реализации»

Книга «Unity и C#. Геймдев от идеи до реализации» по-настоящему помогла мне включиться в разработку игр и открыла множество полезных приемов и методов. Эта книга не только содержит полное введение в язык C#, но и включает информацию о тестировании игр, игровых фреймворках и игровой индустрии в целом. Джереми удалось объяснить сложные понятия простыми и доступными словами. Я также увидел, насколько эффективно прием прототипирования помогает развивать полезные методы разработки. Я настоятельно рекомендую эту книгу всем, кто хочет научиться разработке игр с нуля или просто расширить свои навыки. Я с нетерпением жду возможности использовать ее в качестве руководства и справочника в будущих проектах.

— Логан Сандберг (Logan Sandberg), Pinwheel Games & Animation

Широта знаний Джереми Гибсона Бонда и его проницательный аналитический взгляд на проектирование игр видны на каждой странице этого чрезвычайно интересного руководства по разработке игр. Сочетание его практического и академического опыта дает читателям возможность приступить к созданию игр, предлагая невероятно ценный и редкий сплав теории и практики. Начинающие разработчики игр найдут в этой книге обширный аналитический инструментарий и глубокое понимание ценности итераций, а также опыт создания нескольких игр. Эта книга идеально подойдет и для новичков, и для уже опытных разработчиков.

— Эйлин Холлингер (Eileen Hollinger), продюсер, инструктор, независимый разработчик и энтузиаст. Бывший ведущий продюсер в студии Funomena

Одна из самых больших проблем в изучении (и обучении) разработки игр состоит в том, что лишь несколько идей и приемов действительно применимы ко всем играм — у космического шутера мало общего с карточной игрой, которая, в свою очередь, не похожа на игры-лабиринты. Нет ничего удивительного, когда начинающий разработчик, изучив десяток руководств, все еще не понимает, с чего начать создание своей игры.

Подход, предлагаемый Джереми в этой книге, отражает многолетний опыт разработки игр и обучения этому ремеслу. Он последовательно знакомит с ключевым набором идей и навыков и затем дает буквально целую серию руководств по разработке космических шутеров, карточных игр, игр-лабиринтов и многих других, демонстрируя приемы и инструменты, необходимые каждому.

Никакая другая книга по Unity не охватывает такого разнообразия игр. Я редко встречала столь хорошо подготовленные учебные пособия. Каждый шаг подробно объясняется; каждая игра является отдельным, самостоятельным проектом и тщательно спроектирована для демонстрации конкретных понятий, от самых простых, таких как игровые объекты GameObject, до мощных объектно-ориентированных приемов, таких как создание роев (boids).

Я использовала эту книгу как основу в своем вступительном цикле лекций о Unity и рекомендовала многим студентам для самостоятельного изучения. Они по достоинству оценили четкое и полное описание языка C# и движка Unity и неизменно удивлялись, как многому удается научиться, создавая прототипы. Я использую эту книгу как основной справочник по архитектуре кода в Unity.

Второе издание обещает быть еще более ценным благодаря обновлению всех глав и использованию совершенно нового руководства, основанного на «The Legend of Zelda» и включающего передовые приемы, например движение по плиткам координат или даже простой редактор уровней. Так же как предыдущее издание, это станет важной частью моего настольного набора преподавателя и моей личной библиотеки Unity.

— Маргарет Мозер (Margaret Moser), ассистент кафедры «Игры и интерактивная среда», Южно-Калифорнийский университет

Если вы хотите подняться на следующий уровень в разработке игр, прочитайте эту книгу! Она не только познакомит вас с множеством примеров реализации игр от идеи до выпуска, но также — что самое важное — научит вас думать как геймдизайнера. Что делает игру веселой и увлекательной? Что заставляет игрока снова и снова возвращаться к игре? Все ответы вы найдете здесь. Эта книга даст вам много больше, чем онлайн-руководства. Она даст вам целостное понимание!

— Дэвид Линдског (David Lindskog), основатель студии Monster Grog Games

Прототипирование и тестирование игр часто остаются недооцененными и недостаточно широко используемыми этапами в процессе проектирования и разработки. Итеративные циклы тестирования и доработки на ранних этапах являются важным условием создания хороших игр. Начинающие разработчики часто полагают, что достаточно освоить все тонкости языка программирования для успеха в создании игр. Второе издание потрясающей книги Джереми делает еще больший упор на аспекты проектирования и еще лучше готовит читателей к погружению в процесс проектирования и прототипирования. Изменения и дополнения в части, касающейся прототипирования, помогут увеличить шансы на успех и вновь прибывшим читателям, и поклонникам первого издания.

— Стивен Джейкобс (Stephen Jacobs), профессор школы интерактивных игр и цифровой среды, глава FOSS@MAGIC,  Рочестерский технологический институт, консультант национального музея игры имени Стронга

Я использовал книгу профессора Бонда, чтобы научиться программированию на C# и поближе познакомиться с Unity. С тех пор я использую эту книгу как основу для своего курса «Проектирование цифровых игр». Книга дает отличные уроки, прототипы прекрасно демонстрируют самые разные аспекты программирования и способы их использование для реализации механики игр, к тому же легко адаптируются студентами под личные предпочтения. Не могу дождаться момента, когда получу второе издание и смогу использовать его на занятиях.

— Уэсли Джеффрис (Wesley Jeffries), преподаватель курса «Проектирование игр», объединенный школьный округ Риверсайд

Второе издание книги «Unity и C#. Геймдев от идеи до реализации» Бонда основано на прочном фундаменте первого. Улучшенное издание с новыми примерами и темами во всех главах. Эта книга представляет тщательное исследование процесса создания игр.

— Дрю Дэвидсон (Drew Davidson), директор центра развлекательных технологий в университете Карнеги-Меллон

«Unity и C#. Геймдев от идеи до реализации» сочетает надежный фундамент развивающейся теории проектирования игр с богатством подробных примеров цифровых прототипов. Вместе они образуют отличное введение в проектирование и разработку, кульминацией которого является создание действующих игр с помощью Unity. Эта книга одинаково полезна и как вводный курс для начинающих, и как справочное руководство для опытных дизайнеров. Я использую ее как основу для моего курса по проектированию игр, и она одна из немногих, к которым я часто обращаюсь.

— Майкл Селлерс (Michael Sellers), практикующий профессор и руководитель программы проектирования игр в университете штата Индиана. В прошлом художественный руководитель и генеральный директор компании Kabam

Обучающие проектированию и разработке игр часто слышат страшный вопрос: «Где можно узнать все это?» Книга «Unity и C#. Геймдев от идеи до реализации» стала спасением. Благодаря ей у меня появились решение и ответ. Эта книга совершенно уникальна и в своей глубине охвата разработки игр, и в иллюстрации идеи сбалансированного объединения дизайна проектирования, прототипирования в итеративный процесс. Книга показывает, что создание игр — одновременно сложная и решаемая задача и является, как мне кажется, — отличным инструментом. Новое издание с более подробными примерами выглядит еще лучше.

— Пьетро Полсинелли (Pietro Polsinelli), прикладной разработчик игр в Open Lab

Подход Джереми к проектированию игр демонстрирует важность прототипирования игровых правил и учит читателей проверять их собственные идеи. Возможность создавать собственные прототипы позволяет совершать быстрые и короткие итерации и экспериментировать, а также способствует воспитанию опытных разработчиков игр.

—Хуан Гриль (Juan Gril), исполнительный продюсер, Flowplay. Бывший президент Joju Games

«Unity и C#. Геймдев от идеи до реализации» сочетает в себе важные философские и практические понятия, необходимые всем, кто хочет стать настоящим разработчиком игр. Эта книга познакомит вас с высокоуровневыми теориями проектирования, понятиями из мира разработки игр и основами программирования. Я рекомендую эту книгу всем начинающим разработчикам, желающим приобрести новые или расширить имеющиеся навыки в создании игр. Джереми использовал весь свой многолетний опыт работы в должности профессора, чтобы научить вас мыслить категориями, важными для разработки игр, и создавать игры, используя все доступные инструменты. Неважно, как долго вы работаете в игровой индустрии, в этой книге вы обязательно найдете вдохновляющие идеи, которые помогут вам усовершенствовать процесс разработки. Лично я буду рад погрузиться в это новое издание и получить новые знания по некоторым приемам создания потрясающих игр!

— Мишель Пун (Michelle Pun), игровой продюсер в Osmo. Бывший ведущий дизайнер игр в Disney и Zynga

Одним из наиболее популярных примеров для обучения новых разработчиков является приключенческая игра «Zelda» эпохи 1980-х, события в которой разворачиваются в подземных лабиринтах. В последней главе этого обновленного издания «Unity и C#. Геймдев от идеи до реализации» Джереми подробно объясняет, что должен знать программист, чтобы использовать возможности Unity для воссоздания игры такого типа. Предлагаемый им подход включает разумное использование встроенных структур и механизмов Unity и расширяет их хорошо организованными собственными функциями. Он абсолютно естественно охватывает технические и дизайнерские понятия и показывает их практическое применение к этому конкретному примеру. Такой прагматичный подход поможет новым разработчикам усвоить полученные знания и применить их в своих будущих проектах.

— Крис Де Леон (Chris DeLeon), основатель Gamkedo Game Development Training, сопредседатель IndieCade Workshops, входит в тридцатку самых успешных бизнесменов в индустрии развлечений моложе тридцати по версии журнала Forbes

Для всех, кто просто интересуется созданием игр или собирается профессионально заниматься их разработкой, эта книга послужит доступным введением в проектирование игр. Опыт Джереми как разработчика игр и профессора проявляется в итеративной организации, которую он использует для объяснения основ разработки игр. Каждая глава и каждый урок сочетают базовый технический подход с теоретическими основами и пробуждают в вас творческие наклонности, помогая вам расти как разработчику. Как бывший его студент, могу сказать, что эта книга — лучшее, что может быть, сразу после личного обучения в его классе.

— Хуан Вака (Juan Vaca), ассоциированный дизайнер, Telltale Games

«Unity и C#. Геймдев от идеи до реализации» Джереми Гибсона Бонда — важная книга, которая знакомит учащихся с решающими аспектами теории игр и итеративным процессом быстрого прототипирования в Unity. Примеры игр, разработанных Джереми, показывают, как на одном и том же движке можно реализовать разные игровые жанры, и знакомят студентов с практическими приемами использования возможностей базовых объектов Unity и других библиотек C#, помогая читателю-новичку стать довольно опытным программистом.

— Билл Кросби (Bill Crosbie), ассистент кафедры информационных технологий, колледж Raritan Valley Community

Эта книга посвящается:

Моей супруге Мелани, любви всей моей жизни, за ее любовь, ум и поддержку.

Моим родителям и сестрам.

Моим профессорам, коллегам и студентам, вдохновившим меня на создание этой книги.

И всем читателям первого издания, приславшим мне свои отзывы и пожелания; все вы помогли мне сделать второе издание еще лучше.

Предисловие

У меня есть своя теория о геймдизайнерах и преподавателях. Думаю, что, несмотря на внешние различия, все мы втайне схожи; многие навыки хорошего геймдизайнера совпадают с таковыми у хорошего учителя. Доводилось ли вам встретить учителя, очаровывающего свою аудиторию головоломками и историями? Дающего ясные приемы, которые вы легко могли понять и повторить, но с трудом освоили бы самостоятельно? Того, кто постепенно, мудро помогал вам собрать в своем уме в единую картину все кусочки информации, и вы даже не осознавали этого, пока однажды он не отходил в сторону, наблюдая, как вы делаете что-то удивительное, что прежде посчитали бы для себя невозможным?

Мы, разработчики видеоигр, тратим уйму времени на поиск способов обучить людей тому, как играть в наши игры без ущерба для развлечения. Но порой людям совсем не нужно знать, что их учат, — лучший эффект, как показали видеоигры, достижим, когда предчувствуешь начало нового захватывающего приключения. Мне посчастливилось восемь лет работать в отмеченной наградами студии Naughty Dog, где в роли ведущего или соведущего дизайнера я участвовал в создании всех трех игр из серии Uncharted для PlayStation 3. Все в студии были очень довольны последовательностью, открывавшей нашу игру Uncharted 2: Among Thieves. Она эффективно обучала игроков всем основным движениям, которые могут пригодиться в игре, поддерживая при этом у них неподдельный интерес затруднительным положением главного героя, Натана Дрейка, вывалившегося из зависшего над пропастью поезда.

Дизайнеры видеоигр делают это снова и снова, создавая для нас цифровые приключения. Работая над последовательностями передачи игрового опыта, подобными тем, что есть в играх Uncharted, я должен акцентировать внимание на том, чему игрок обучился совсем недавно. Я должен предложить своим игрокам интересные ситуации для использования вновь обретенных навыков, достаточно простые, чтобы не расстроить их, и достаточно сложные, чтобы удержать интерес. Сделать это с совершенно незнакомыми людьми, используя только каналы взаимодействия, доступные игре, — графическое окружение с персонажами и объектами в нем, звуковое сопровождение и интерактивное управление игрой — очень сложно. В то же время это один из самых приятных аспектов, которые я знаю.

Теперь, когда я стал профессором и занялся обучением проектированию игр в университете, я обнаружил, что многие навыки, которые я приобрел, занимаясь проектированием игр, пригодились мне как учителю. Я также обнаружил, что обучение — не менее благодарный труд, чем создание игр. Поэтому для меня не стало неожиданностью, когда я узнал, что Джереми Гибсон Бонд, автор этой книги, одинаково талантлив и как дизайнер игр, и как преподаватель, в чем вы очень скоро убедитесь.

Первый раз я встретил Джереми около 15 лет назад на ежегодной конференции разработчиков игр в Северной Калифорнии, и мы сразу же подружились. У него за плечами уже была успешно складывающаяся карьера разработчика игр, и его энтузиазм в отношении проектирования игр вызвал отклик в моей душе. Как вы увидите сами, когда будете читать эту книгу, он любит говорить о разработке игр как о ремесле, практике дизайна и нарождающейся форме искусства. Мы с Джереми продолжали общаться, когда он вернулся в аспирантуру в замечательном центре развлекательных технологий в университете Карнеги-Меллон, чтобы продолжить учебу у таких визионеров, как доктор Рэнди Пауш (Randy Pausch) и Джесси Шелл (Jesse Schell). Наконец, я узнал Джереми как профессора и коллегу на кафедре «Игры и интерактивная среда» школы кинематографического искусства в Южно-Калифорнийском университете — в рамках программы USC Games, которую сейчас преподаю.

Во время пребывания Джереми в школе я еще ближе познакомился с ним... став его учеником! Чтобы обрести опыт, необходимый для разработки экспериментальных игр в рамках исследований, проводившихся в лаборатории USC Game Innovation Lab, я решил прослушать один из курсов Джереми. В результате я превратился из полного нуба в Unity, обладающего некоторыми базовыми навыками программирования, в опытного программиста на C#, в полной мере владеющего Unity — одним из самых мощных, удобных и быстро развивающихся игровых движков. Все курсы, которые вел Джереми, не только наполнены информацией о Unity и C#, но и щедро приправлены вдохновляющими объяснениями особенностей проектирования игр и практическими советами по разработке — от приемов «лерпинга1» до советов по тайм-менеджменту и использованию разработчиками электронных таблиц для улучшения их игр. Я окончил курс Джереми с огромным желанием повторить его, понимая, сколь многому могу у него поучиться.

Поэтому я обрадовался, узнав, что Джереми написал книгу, и испытал еще большую радость, читая том, который вы сейчас держите в руках. Спешу сообщить, что Джереми наполнил эту книгу всем тем, что я еще хотел бы узнать. Работая в игровой индустрии, я узнал много практических приемов проектирования, разработки и производства игр и рад поведать вам, что в этой книге Джереми замечательно обобщил некоторые подходы к созданию игр, которые я сам считаю лучшими. На страницах этого издания вы найдете пошаговые руководства и примеры кода, которые помогут вам стать хорошим дизайнером и разработчиком игр. Упражнения, которые приводятся в книге, могут показаться сложными, но имейте в виду, что Джереми не просит сделать что-то сложное, прежде не объяснив это четко и доходчиво.

В этой книге вы также познакомитесь с историей и теорией. Джереми давно размышляет над вопросами проектирования игр и глубоко знает эту тему. В первой части этого тома вы найдете необычайно широкий и глубокий обзор новейшей теории проектирования игр, а также уникальный синтез лучших идей Джереми. Он поддерживает интерес к дискуссии, разбавляя ее короткими забавными историями и увлекательными фактами из долгой традиции игр в человеческой культуре. Он постоянно заставляет вас сомневаться в ваших предположениях об играх и учит мыслить шире рамок консоли, контроллера, экрана и динамиков, способствуя таким образом воспитанию целого поколения новаторов игр.

Проектирование игр — итеративный процесс, в ходе которого мы тестируем созданное нами, получаем обратную связь, пересматриваем наш проект и создаем новую, улучшенную версию. Если автору посчастливилось опубликовать новое издание своей книги, он также совершает итеративный процесс, и это именно то, что делает Джереми. Он больше года работал над этим, вторым, изданием, которое вы сейчас держите в руках, и в течение этого времени пересмотрел и переделал каждую отдельную главу. Он дополнил теорию проектирования новыми положениями, для лучшей читаемости в примеры кода добавлено выделение синтаксиса цветом, и он значительно улучшил все углубленные примеры в третьей части книги. Каждый пример теперь включает пошаговые инструкции, и все они обновлены для поддержки последней версии Unity. Глава «Космический фиксированный шутер» — одна из самых полезных и одновременно самых длинных в первом издании — была разбита на две отдельных, простых в изучении главы, а два устаревших примера игр заменены новым — игрой Dungeon Delver («Исследователь подземелий»), реализованной в стиле Legend of Zelda («Легенда о Зельде»), наглядно демонстрирующей мощь компонентной архитектуры и прототипирования. Как человек, влюбившийся в первое издание и широко рекомендовавший его студентам, преподавателям и разработчикам, я очень рад этим новым изменениям и весьма счастлив видеть жизнь и развитие этой книги.

В 2013 году Джереми Гибсон Бонд (Jeremy Gibson Bond) ушел из школы кинематографического искусства (USC) и теперь преподает в фантастической программе gamedev.msu.edu в Университете штата Мичиган. Я очень рад за новые поколения студентов этого университета, которых он поведет в ближайшие годы к пониманию профессии проектирования игр. В первую весну после своего ухода из USC Джереми вошел в ресторан, где проходил ежегодный ужин выпускников конференции разработчиков игр, организованный программой USC Games, и зал, заполненный нынешними и прошлыми студентами, огласился приветствиями, переросшими в бурные аплодисменты. Это ярче всего свидетельствует о качествах Джереми как учителя. Вам повезло, что теперь, благодаря этой книге, он станет и вашим учителем.

Мир дизайна и разработки игр меняется очень быстро. Вы можете стать частью этого прекрасного мира — мира, не похожего ни на какой другой и который я люблю всем сердцем. Навыки, полученные в процессе чтения этой книги, вы сможете использовать для создания прототипов новых видов игр и других типов интерактивных сред и даже для создания целых новых жанров с выразительным новым оформлением, которые привлекут новые рынки. Вы сможете помочь людям расслабиться и развлечь их, вы сможете войти в жизни людей, как это делает великое искусство, и даже оказать какую-то помощь в решении сложных проблем, просвещая и объясняя вселенную так, как вы ее видите. Некоторые из завтрашних звезд игрового дизайна сейчас учатся проектировать и программировать у себя дома, в школе, в офисах по всему миру, и многие из них читают эту книгу. Если вы последуете моему совету и будете выполнять все упражнения, предложенные здесь, это повысит ваши шансы создать свой современный игровой дизайн.

Удачи и приятного времяпрепровождения!

Ричард Лемарчанд (Richard Lemarchand), доцент, USC Games, руководитель кафедры «Игры и интерактивная среда»

1 Термин «лерпинг» происходит от англ. «lerping» (сокращение от Linear Interpolation — линейная интерполяция) и обозначает применение механизма линейной интерполяции для сглаживания движений игровых объектов. — Примеч. пер.

Вступление

Добро пожаловать во второе издание книги «Unity и C#. Геймдев от идеи до реализации»! В основе этой книги мой многолетний опыт и в качестве профессионального геймдизайнера, и как профессора, читающего лекции по дизайну игр в нескольких университетах, включая кафедру «Медиа и информация» в Университете штата Мичиган и кафедру «Игры и интерактивная среда» в Южно-Калифорнийском университете.

Это вступление познакомит вас с целью, темой и подходами в этой книге.

Цель этой книги

Задумывая эту книгу, я ставил перед собой простую цель: познакомить вас со всеми инструментами и передать начальные знания, необходимые для достижения успеха в разработке игр и прототипов. Я постарался втиснуть в эту книгу максимальный объем знаний. В отличие от многих других книг, эта сочетает обе дисциплины — проектирование игр и цифровую разработку (то есть компьютерное программирование) — и обертывает их практикой итеративного прототипирования. Появление продвинутых и относительно простых в использовании игровых движков, таких как Unity, еще больше упростило создание прототипов, выражающих концепции игрового дизайна, и увеличило ваши шансы стать квалифицированным (и востребованным) дизайнером игр.

Книга делится на четыре части.

Часть I. Проектирование игры и прототипирование на бумаге

Первая часть книги начинается с исследования разных теорий проектирования игр и аналитических основ игрового дизайна, предлагавшихся в некоторых более ранних книгах. В этой части описывается многуровневая тетрада (Layered Tetrad) — способ объединения и расширения лучших черт этих более ранних теорий. Исследованию многоуровневой тетрады уделено много внимания, потому что это касается многих решений, которые вам придется принимать как проектировщику интерактивных взаимодействий. В этой части также содержится информация об интересных проблемах разных дисциплин проектирования игр; описывается процесс прототипирования на бумаге, тестирование и выполнение итераций; дается конкретная информация, способная помочь вам стать одним из лучших проектировщиков; представляются эффективные стратегии управления проектами и временем, помогающие обеспечить соблюдение графика разработки проекта.

Часть II. Цифровое прототипирование

Вторая часть книги учит программированию. Эта часть опирается на мой многолетний опыт обучения студентов нетехнических специальностей приемам выражения идей проектирования игр в цифровом коде. Если у вас нет опыта разработки или программирования, эта часть для вас. Но даже имеющие некоторый опыт могут просмотреть эту часть, чтобы познакомиться с новыми приемами или освежить в памяти некоторые подходы. Вторая часть охватывает C# — наш язык программирования — от самых основ до наследования классов и приемов объектно-ориентированного программирования.

Часть III. Прототипы игр и примеры

Третья часть книги включает несколько примеров, каждый из которых демонстрирует процесс разработки прототипа игры определенного жанра. Эта часть преследует две цели: раскрывает некоторые передовые приемы быстрого прототипирования игр на примере моего собственного подхода к прототипированию и помогает сформировать фундамент, опираясь на который вы сможете создавать свои игры. Многие книги, рассказывающие о Unity (наше окружение для разработки игр) используют похожий подход, но ведут читателя через единственный монолитный пример на протяжении нескольких сотен страниц. Эта книга, напротив, демонстрирует несколько намного более коротких примеров. Конечные результаты этих примеров неизбежно менее надежны, чем те, что можно найти в других книгах, но я убежден, что разнообразие поможет вам лучше подготовиться к созданию собственных проектов в будущем.

Часть IV. Приложения2

В этой книге есть несколько важных приложений, заслуживающих упоминания здесь. Чтобы не повторять одну и ту же информацию и не заставлять вас искать ее по разным главам, вся информация, которая многократно упоминается в книге или к которой, как мне кажется, вы захотите обратиться позже (когда закончите чтение книги в первый раз), помещена в приложения. Приложение A содержит краткое пошаговое введение в процедуру создания проекта игры в Unity. Самое длинное приложение — приложение Б «Полезные идеи». Несмотря на непритязательное название, вы, я уверен, чаще всего будете обращаться именно к этому приложению, после того как прочитаете книгу в первый раз. «Полезные идеи» — это сборник передовых приемов и стратегий, которыми я сам постоянно пользуюсь, выполняя прототипирование игр, и думаю, что здесь вы найдете много интересного для себя. Третье, и заключительное, приложение — список ссылок на ресурсы в интернете, где вы найдете ответы на вопросы, не охваченные этой книгой. Часто бывает трудно определить правильное место для поиска помощи; в этом приложении собраны ссылки, которыми я сам пользуюсь чаще всего.

Другие книги

Как дизайнер и создатель, я уверен, что совершенно недопустимо забывать о тех, чей опыт и знания способствовали вашему становлению. Об играх и их проектировании было написано много книг, и я хочу перечислить некоторые из них, оказавшие существенное влияние на меня и на мои представления о проектировании игр. Ссылки на эти книги неоднократно будут встречаться в этом тексте, и я рекомендую прочитать их, как только представится возможность.

«Game Design Workshop» Трейси Фуллертон

Первоначально написанная Трейси Фуллертон (Tracy Fullerton), Крисом Свейном (Chris Swain) и Стивеном С. Хоффманом (Steven S. Hoffman), книга «Game Design Workshop» претерпела уже три издания. Я обращаюсь к ней за советами по проектированию игр чаще всего. Эта книга первоначально была основана на учебном курсе «Game Design Workshop», который Трейси и Крис преподавали в Южно-Калифорнийском университете, легшем в основу всей программы игровых технологий в USC (и моего собственного курса, который я преподавал в 2009–2013 годах). Программа «Игры и интерактивная среда» для аспирантов USC почти каждый год признавалась лучшей школой обучения проектированию игр в Северной Америке компанией Princeton Review, пока она занималась оценкой подобных программ, и основы этого успеха были заложены книгой и учебным курсом «Game Design Workshop».

В отличие от многих других книг, рассказывающих о теории игр, книга Трейси с точностью лазерного луча сосредоточивает внимание на информации, которая помогает начинающим дизайнерам повышать свое мастерство. Я долго использовал эту книгу в своей преподавательской работе (даже задолго до того, как устроился в USC) и считаю, что если вы честно выполните все упражнения из этой книги, то в итоге несомненно получите замечательный игровой проект на бумаге.

Fullerton, Tracy, Christopher Swain, and Steven Hoffman, Game Design Workshop: A Playcentric Approach to Creating Innovative Games, 2nd ed. (Boca Raton, FL: Elsevier Morgan Kaufmann, 2008)

«Art of Game Design» Джесси Шелла

Джесси Шелл (Jesse Schell) — один из моих профессоров в Университете Карнеги-Меллон и фантастический геймдизайнер с огромным опытом проектирования, приобретенным за годы работы в компании Walt Disney Imagineering. Книга Джесси любима многими действующими дизайнерами, потому что рассматривает проектирование игр как дисциплину через 100 разных линз, которые раскрываются в ней. Книга Джесси — чрезвычайно занимательна и рассматривает несколько тем, не затрагиваемых в этой книге.

Jesse Schell, The Art of Game Design: A Book of Lenses (Boca Raton, FL: CRC Press, 2008)

«The Grasshopper» Бернарда Сьютса

На самом деле эта книга вообще не о проектировании игр, «The Grasshopper» («Кузнечик») — превосходное исследование определения слова «игра». Написанная в стиле, напоминающем метод Сократа, книга почти в самом начале представляет свое определение игры, когда Кузнечик (из басни Эзопа «Муравей и Цикада») дает определение на смертном одре, а его ученики на протяжении оставшейся части книги пытаются осмыслить и понять его. Эта книга также исследует вопрос о месте и роли игры в обществе.

Bernard Suits, The Grasshopper: Games, Life and Utopia (Peterborough, Ontario: Broadview Press, 2005)

«Level Up!» Скотта Роджерса

Роджерс много лет накапливал свои знания, занимаясь разработкой игр, пока наконец не оформил их в виде книги, очень интересной, доступной и практичной. Когда мы вместе преподавали курс многоуровневого проектирования, мы использовали эту книгу. Роджерс также обладает талантом художника комиксов, и его книга наполнена забавными и полезными иллюстрациями, которые втолковывают понятия проектирования.

Scott Rogers, Level Up!: The Guide to Great Video Game Design (Chichester, UK: Wiley, 2010)

«Imaginary Games» Криса Бейтмана

В этой своей книге Крис Бейтман (Chris Bateman) утверждает, что игры являются оправданным средством для научных исследований. Он опирается на разные научные, практические и философские источники, а его обсуждения книг, таких как «Homo Ludens» Йохана Хейзинга3, «Man, Play, and Games» Роже Кайуа4 и статьи «The Game Game»5 Мэри Миджли, отличаются глубиной и доступностью.

Chris Bateman, Imaginary Games (Washington, USA: Zero Books, 2011)

«Game Programming Patterns» Роберта Найстрома

Эта книга — отличный ресурс для программистов среднего уровня. В ней Роберт Найстром (Robert Nystrom) исследует шаблоны разработки программного обеспечения (первоначально классифицированные в книге «Design Patterns: Elements of Reusable Object-Oriented Software»6), которые, по его мнению, наиболее востребованы в разработке игр. Это действительно очень хорошая книга, и ее определенно стоит прочитать всем, кто имеет некоторый опыт программирования игр. Все примеры в книге написаны на псевдокоде, напоминающем язык C++, но в них легко смогут разобраться программисты на C#. Кроме того, книга совершенно бесплатно доступна в электронном виде по адресу http://gameprogrammingpatterns.com7.

«Game Design Theory» Кита Бургуна

В этой книге Кит Бургун (Keith Burgun) исследует недостатки текущего состояния теории проектирования и разработки игр и предлагает более узкое определение игры, чем дает Бернард Сьютс (Bernard Suits). Работая над этой книгой, Бургун ставил перед собой цель спровоцировать обсуждение и продвинуть вперед теорию проектирования игр. Несмотря на общий негативный тон, книга Бургуна, поднимая ряд интересных вопросов, помогла мне полнее понять суть проектирования игр.

Keith Burgun, Game Design Theory: A New Philosophy for Understanding Games (Boca Raton, FL: A K Peters/CRC Press, 2013)

Наше окружение для цифрового прототипирования: Unity и C#

Все примеры цифровых игр в этой книге основаны на игровом движке Unity и языке программирования C#. Я уже более десяти лет занимаюсь обучением студентов приемам разработки игр и интерактивных проектов, и на мой взгляд, Unity — лучшая среда для обучения созданию игр. Я также считаю, что C# — лучший язык для обучения прототипированию игр. Конечно, существуют другие инструменты, которые проще в изучении и не требуют программирования (например, Game Maker и Construct 2), но Unity обладает большей гибкостью и производительностью уже в бесплатном пакете (бесплатная версия Unity обладает почти всеми возможностями платной версии и используется в этой книге). Еще один движок, используемый многими студиями, — Unreal. Но в нем очень тонкий промежуточный слой между упрощенной системой графического программирования Blueprint и очень сложным кодом на C++, на котором основан движок. Если вы действительно хотите научиться программировать игры и добиться успеха, Unity — это то, что вам нужно.

Аналогично, некоторые языки программирования изначально немного проще, чем C#. В прошлом я преподавал своим студентам языки ActionScript и JavaScript. Однако C# остается для меня единственным языком, который не перестает удивлять своей гибкостью и богатством возможностей. Обучение языку C# предполагает обучение не только программированию, но также хорошему стилю программирования. Такие языки, как JavaScript, допускают небрежное отношение, что в конечном итоге замедляет разработку. C# воспитывает сдержанность (благодаря строго типизированным переменным), и эта сдержанность поможет вам не только стать прекрасными программистами, но также ускорит разработку (например, строгая типизация повышает надежность кода и позволяет пользоваться всплывающими подсказками и функцией автодополнения, что помогает быстро писать аккуратный код).

Кому адресована эта книга

Существует много книг о проектировании игр и много книг о программировании. Моя книга призвана заполнить пробел между ними. С развитием и распространением технологий разработки игр, таких как Unity, все большую важность для дизайнеров игр приобретает возможность не только набросать свои идеи на бумаге, но и воплотить их в действующие цифровые прототипы. Цель этой книги — помочь вам научиться делать именно это:

• Если у вас есть  желание заняться созданием игр, но прежде вы никогда не занимались программированием, эта книга идеально подойдет для вас. Часть I знакомит с некоторыми практическими теориями дизайна игр и приемами, которые помогут вам развить и усовершенствовать свои идеи. Часть II обучит вас программированию, с самых азов до понимания объектно-ориентированных иерархий классов. В колледже, где я занимаю должность профессора, большинство студентов не изучали программирование прежде, поэтому я обучаю их в основном через программирование игр. Я вложил весь свой опыт во вторую часть этой книги. Часть III проведет вас через процесс разработки прототипов игр нескольких разных жанров. Каждый пример демонстрирует быстрые методы перехода от идеи к действующему цифровому прототипу. Наконец, в приложениях подробно описываются конкретные идеи разработки игр и программирования, а также перечисляются ресурсы, к которым можно обратиться после чтения этой книги. Все это сосредоточено в основном в приложении Б «Полезные идеи» чтобы вы могли долгие годы использовать этот раздел книги как справочник.

• Если вы программист, интересующийся созданием игр, части I и III этой книги будут для вас наиболее ценными. Часть I знакомит с некоторыми практическими теориями дизайна игр и приемами, которые помогут вам развить и усовершенствовать свои идеи. Вы можете бегло пролистать часть II, где рассказывается о языке программирования C# и особенностях его использования в Unity. Для тех, кто знаком с другими языками программирования, замечу, что C# напоминает C++, но обладает некоторыми замечательными особенностями Java. Часть III проведет вас через процесс разработки прототипов игр нескольких разных жанров. Разработка игр в Unity сильно отличается от разработки с использованием других игровых движков. Управление многими аспектами разработки осуществляется за пределами программного кода. Каждый прототип демонстрирует стиль разработки, лучше всего подходящий для Unity, и методы быстрого перехода от идеи к действующему цифровому прототипу. Вам также стоит внимательно прочитать приложение Б «Полезные идеи», наполненное подробной информацией о различных подходах к программированию в Unity и структурированное так, что его можно использовать как справочник.

Типографские соглашения

В этой книге используется несколько соглашений по оформлению текста, цель которых — помочь вам лучше понять написанное.

В любом месте книги надписи на кнопках, пункты меню и любой другой текст, который отображается на экране, будут оформляться так: Main Camera. Новые ключевые понятия будут оформляться курсивом. Команды меню, такие как Edit > Project Settings > Physics, показывают, что сначала нужно выбрать меню Edit в полосе главного меню, затем в открывшемся меню выбрать подменю Project Settings и затем пункт Physics.

Элементы книги

В тексте книги встречаются несколько видов врезок, сообщающих важную или полезную информацию, которая выходит за рамки основного текста.

В таких врезках приводится полезная, но не особенно важная информация. Информация в примечаниях часто будет иметь отношение к основному тексту, добавляя чуть больше сведений о рассматриваемой теме.

В советах приводятся дополнительные сведения, имеющие отношение к основному тексту, которые могут вам помочь в изучении описываемых понятий.

БУДЬТЕ ВНИМАТЕЛЬНЫ. В предупреждениях приводится важная информация, которую вы должны знать, чтобы избежать ошибок и ловушек.

врезка

Во врезках приводятся более длинные обсуждения тем, важных для основного текста, но которые должны рассматриваться отдельно.

Код

Несколько соглашений по оформлению применяется к программному коду. Элементы программного кода в основном тексте книги будут оформляться моноширинным шрифтом. Примером может служить имя переменной variableOnExistingLine из следующего листинга.

Листинги кода также будут оформляться моноширинным шрифтом, как показано ниже:

1 public class SampleClass {

2     public GameObject     variableOnExistingLine;           // a

3     public GameObject     variableOnNewLine;                // b

      ...                                                     // c

7     void Update() { ... }                                   // d

8 }

a. Листинги кода часто будут сопровождаться комментариями; в данном случае дополнительная информация о строке с меткой // a приводится в этом первом комментарии.

b. Многие листинги расширяют или дополняют код, который мы написали перед этим или уже имеющийся в файлах сценариев на C# по каким-то другим причинам. В таком случае старые строки будут оформлены обычным моноширинным шрифтом, а новые — жирным. Во всех таких случаях я старался включить достаточное количество строк существующего кода, чтобы вы без труда могли понять, куда вставлять новые строки.

c. Всякий раз, когда код в листингах будет опускаться (для экономии места в книге), я заменю его многоточием ( ... ). В данном примере листинга я опустил строки с 4-й по 6-ю.

d. В местах, где я полностью опускаю тело существующей функции или метода, вы увидите многоточие, заключенное в фигурные скобки ( { ... } ).

Большинство листингов в первых двух частях включают номера строк (как ­показано в примере выше). Эти номера не нужно вводить в код (среда разработки MonoDevelop автоматически пронумерует строки). В заключительной части книги номера строк не указываются из-за больших размеров листингов и их сложности.

Наконец, везде, где строки кода не умещаются по ширине книжной страницы, вы увидите символ продолжения () в начале следующей строки. Он подсказывает, что на компьютере такие строки должны вводиться в одну строку. Сам символ продолжения вводить не нужно.

Веб-сайт книги

На веб-сайте книги вы найдете все файлы, упоминаемые в главах, примечания автора, начальные пакеты, действующие примеры некоторых игр, обновления и многое другое! Он доступен по адресу

http://book.prototools.net

2 Часть IV вы можете скачать с нашего сайта по адресу: https://goo.gl/VDxhzE

3 Йохан Хейзинга, «Homo ludens. Человек играющий». — Примеч. пер.

4Кайуа P. Игры и люди: Статьи и эссе по социологии культуры / Сост., пер. с фр. и вступ. ст. С.Н. Зенкина. М.: ОГИ, 2007. — Примеч. пер.

5 Перевод на русский язык можно найти по адресу https://iphras.ru/uplfile/root/biblio/phan/2017_2/30-56.pdf. — Примеч. пер.

6Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб.: Питер, 2018. (Серия «Библиотека программиста»). — Примеч. пер.

7 Перевод на русский язык доступен по адресу https://www.gitbook.com/book/likerrr/gameprogrammingpatterns/details. — Примеч. пер.

Благодарности

Огромное число людей заслуживает благодарности. Прежде всего, я хочу поблагодарить мою супругу Мелани, чье мнение и помощь, оказываемая на протяжении всего процесса, помогли значительно улучшить эту книгу. Я также хочу сказать спасибо моей семье за многолетнюю поддержку, и особое спасибо моему отцу, который с детства учил меня программированию.

В этот второй раз мне помогали несколько сотрудников издательства Pearson, они вновь провели меня через весь процесс. Главными среди них были Крис Зан (Chris Zahn), Лаура Левин (Laura Lewin), Паула Ловелл (Paula Lowell), Лори Лайонс (Lori Lyons), Оливия Баседжио (Olivia Basegio) и Даянидхи Карунанидхи (Dhayanidhi Karunanidhi). Все они продемонстрировали необычайное терпение, работая со мной. Также фантастическую поддержку оказали мне технические рецензенты: Марк Дестефано (Marc Destefano), Чарльз Дуба (Charles Duba) и Маргарет Мозер (Margaret Moser) — при подготовке первого издания и Грейс Кендалл (Grace Kendall), Стивен Биман (Stephen Beeman) и Рид Коук (Reed Coke) — при подготовке второго. Их зоркие глаза и острые умы нашли много мест в рукописи, которые можно было уточнить и улучшить.

Я также хочу поблагодарить всех преподавателей, учивших меня и работавших со мной как коллеги. Сердечное спасибо доктору Рэнди Паушу (Randy Pausch) и Джесси Шеллу (Jesse Schell). Хотя я уже был профессором и дизайнером игр до встречи с ними, оба они сильно повлияли на мое понимание разработки и обу­чения. Я также очень благодарен Трейси Фуллертон (Tracy Fullerton), Марку Боласу (Mark Bolas) и Скотту Фишеру (Scott Fisher) — моим друзьям и наставникам в годы, когда я преподавал на кафедре «Игры и интерактивная среда» Южно-Калифорнийского университета. Мои коллеги по новой работе в Университете штата Мичиган также оказали мне большую помощь, в том числе: Эндрю Деннис (Andrew Dennis), взявший на себя художественное оформление для главы 35, Брайан Винн (Brian Winn), Элизабет Ла Пенсе (Elizabeth LaPensée), Рикардо Гуимараес (Ricardo Guimaraes) и другие. Многие блестящие преподаватели и друзья из USC и Мичиганского университета также помогли мне воплотить мои идеи в этой книге, среди них: Адам Лижкевич (Adam Liszkiewicz), Уильям Хубер (William Huber), Ричард Лемарчанд (Richard Lemarchand), Скотт Роджерс (Scott Rogers), Винцент Диамант (Vincent Diamante), Сэм Робертс (Sam Roberts), Логан Вер Хоф (Logan Ver Hoef) и Маркус Дарден (Marcus Darden).

Многие мои друзья из отрасли компьютерных игр тоже помогали мне, выдвигая свои предложения для книги и высказывая свое мнение об идеях, представленных в ней. Среди них: Майкл Селлерс (Michael Sellers), Николас Фортуньо (Nicholas Fortugno), Дженова Чен (Jenova Chen), Зак Павлов (Zac Pavlov), Джозеф Стивенс (Joseph Stevens) и многие другие.

Спасибо также моим замечательным студентам, которым я читал лекции последние два десятка лет. Именно вы вдохновили меня написать эту книгу и убедили меня, что в моем стиле преподавания разработки игр есть что-то важное и особенное. Каждый день, когда я прихожу в аудиторию, меня вдохновляют ваши творчество, интеллект и страсть.

Наконец, я хочу поблагодарить вас, читатель. Спасибо за покупку этой книги и за интерес к разработке игр. Я надеюсь, что эта книга поможет вам заняться разработкой, и мне было бы приятно видеть, что вы делаете это благодаря знаниям, почерпнутым здесь.

Об авторе

Джереми Гибсон Бонд (Jeremy Gibson Bond) — профессор практики, преподает проектирование и разработку игр на кафедре «Медиа и информация» в Университете штата Мичиган (http://gamedev.msu.edu), которая последние несколько лет входит в десятку лучших программ обучения проектированию игр. Начиная с 2013 года участвует в международном фестивале и конференции независимых видеоигр IndieCade в качестве председателя по образованию и развитию, где каждый год возглавляет саммит IndieXchange. В 2013 году Джереми основал компанию ExNinja Interactive, благодаря которой разрабатывает свои независимые проекты видеоигр. Кроме того, Джереми несколько раз выступал на конференции Game Developers Conference.

До прихода на факультет Университета штата Мичиган Джереми три года работал на кафедре «Проектирование электрических систем и информатика» Мичиганского университета в Анн-Арборе, где преподавал проектирование игр и разработку программного обеспечения. С 2009 по 2013 год Джереми занимал должность ассистента профессора практики на кафедре «Игры и интерактивная среда» школы кинематографического искусства в Южно-Калифорнийском университете, которая удерживала звание школы номер один в Северной Америке по обучению проектированию игр в течение всего времени его работы там.

Джереми получил степень магистра развлекательных технологий в Центре развлекательных технологий при Университете Карнеги-Меллона в 2007 году и степень бакалавра в области радио, телевидения и кинематографа в Техасском университете в Остине в 1999-м. Свою карьеру он начинал как программист и разработчик прототипов в таких компаниях, как Human Code и Frog Design; преподавал в кампусе «Великий северный путь» (Ванкувер, провинция Британская Колумбия, Канада), в Университете штата Техас, в Институте искусств в городе Питтсбург, в муниципальном колледже Остина и в Техасском университете в Остине; а также работал для многих компаний, включая Walt Disney Imagineering, Maxis и Electronic Arts/Pogo.com. Когда он обучался в магистратуре, его команда создала онлайн-игру Skyrates, выигравшую премию Silver Gleemax среди стратегий на фестивале независимых игр в 2008 году. Кроме того, Джереми, вероятно, первый человек, преподававший проектирование игр в Коста-Рике.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

Часть I. Проектирование игры и прототипирование на бумаге

1. Думать как дизайнер

Здесь начинается наше путешествие. В этой главе представлены основные теории дизайна, на которых построена вся книга. Здесь вы также встретите свое первое упражнение по проектированию игры и узнаете больше об основополагающей философии книги.

Вы — геймдизайнер

С этого момента вы — геймдизайнер, и я хочу, чтобы вы сказали вслух8:

«Я — геймдизайнер».

Это нормально. Вы можете сказать и погромче, даже если вас услышат. В сущности, как рассказывает психолог Роберт Чалдини в своей книге «Психология влияния»9, если ваше заявление о чем-то слышат другие, вы с большей вероятностью будете этому следовать. Поэтому отправляйтесь и заявите в Facebook, своим друзьям, своей семье:

«Я — геймдизайнер».

Но что значит быть геймдизайнером? Эта книга поможет вам ответить на вопрос и даст вам инструменты для создания своих игр. Начнем с упражнения.

Bartok: пример игры

Впервые я увидел это упражнение на встрече с дизайнером игр Малкольмом Райаном (Malcolm Ryan), автором книги «Game Design Workshop», на конференции «Foundations of Digital Gaming». Цель этого упражнения — показать, как даже самое малое изменение правил игры может оказать огромное влияние на характер игрового процесса.

Bartok — простая игра с одной колодой карт, которая очень напоминает коммерческую игру Uno. В эту игру лучше играть с тремя друзьями, которые также хотят заняться проектированием игр; однако я написал цифровую версию игры, чтобы вы могли сыграть в нее сами. Нам прекрасно подойдет любая версия игры, с настоящей колодой карт или цифровая.10

цифровая версия игры bartok

Цифровая версия игры Bartok доступна в разделе Chapter 1 на веб-сайте книги:

http://book.prototools.net

Цель

Первым избавиться от всех своих карт.

Игра

Вот основные правила игры Bartok:

1. Для игры используется обычная колода игральных карт, из которой нужно убрать джокеров, чтобы осталось ровно 52 листа (13 карт каждой масти, от двойки до туза).

2. Перетасуйте колоду и раздайте игрокам по 7 карт.

3. Положите оставшуюся часть колоды на стол рубашкой вверх. Это будет ничейная колода.

4. Снимите верхнюю карту с ничейной колоды и положите ее рядом лицом вверх. Это будет колода сброса.

5. Далее, по часовой стрелке, начиная с игрока слева от раздающего, каждый должен побить карту, лежащую сверху на колоде сброса. Если у игрока в руках нет такой карты, он должен взять одну карту из ничейной колоды (рис. 1.1).

6. Побить карту в колоде сброса можно картой:

• Той же масти. (Например, если верхняя карта в колоде сброса — двойка треф, ее можно побить любой картой трефовой масти.)

• Той же ценности. (Например, если верхняя карта в колоде сброса — двойка треф, ее можно побить любой другой «двойкой».)

7. Победителем считается тот, кто первым благополучно избавится от карт на руках.

Рис. 1.1. Начальный расклад в игре Bartok. В данной ситуации игрок может пустить в игру любую из карт (семерка треф, валет треф, двойка черв, двойка пик)

Пробная игра

Попробуйте пару раз сыграть в эту игру, чтобы почувствовать, что это такое. Не ленитесь тщательно перетасовать колоду перед каждым раундом. Игра часто будет завершаться с колодой сброса, отсортированной так или иначе, и без тщательного перемешивания карт следующий раунд будет иметь результаты, зависящие от неслучайного распределения карт.

Устранение блочности. Этим термином называются стратегии разбиения групп (блоков) похожих карт. В случае успеха каждый раунд в игре Bartok завершается с колодой сброса, в которой все карты объединены в группы (блоки) по масти или по значению. Если не устранить эту блочность (не разбить группы), последующий раунд игры закончится намного быстрее, потому что на руки игрокам будут розданы карты, соответствующие друг другу.

Как утверждает математик и иллюзионист Перси Диаконис, семи хороших перетасовок достаточно для большинства игр11; но если вы испытываете проблемы, воспользуйтесь следующими стратегиями устранения блочности.

Вот несколько советов по устранению блочности в колоде карт, если обычная перетасовка не помогает:

• сдайте карты в несколько разных кучек, затем перемешайте эти кучки вместе;

• разбросайте карты на столе рубашкой вверх как получится, затем перемешайте их двумя руками, как воду или как костяшки домино, — это поможет разбить образовавшиеся блоки, затем соберите карты в одну колоду;

• сыграйте в игру 52 карты: разбросайте карты по полу и соберите их.

Анализ: постановка правильных вопросов

После каждой пробной игры важно уметь задавать правильные вопросы. Конечно, для каждой игры вопросы немного отличаются, но вы можете основываться на следующих общих принципах:

• Сложность игры соответствует целевой аудитории? Игра слишком сложная, слишком простая или сложная ровно настолько, насколько нужно?

• Результат игры зависит от избранной стратегии или от везения? Не слишком ли сильно исход игры зависит от случайностей или, может быть, игра детерминирована настолько, что после захвата лидерства одним игроком другие лишаются шанса нагнать его?

• Допускает ли игра осмысленные, интересные решения? Когда вы получаете право сделать ход, есть ли у вас выбор между несколькими альтернативами и насколько интересным может быть выбор между ними?

• Вызывает ли игра интерес, когда право хода получают другие игроки? В состоянии ли вы оказать влияние на ходы, выбираемые другими игроками, или, может быть, другие игроки способны повлиять на ваш выбор?

Мы могли бы задать еще массу вопросов, но перечисленные выше — наиболее типичные.

Остановитесь ненадолго и подумайте, какие ответы можно дать в отношении игры Bartok, в которую вы только что сыграли, и запишите их. Если вы попробовали сыграть в эту игру с живыми соперниками, используя физическую колоду карт, попросите их также записать свои ответы на вопросы и затем коллективно обсудите их. Это устранит взаимное влияние на ответы других игроков.

Изменение правил

Как вы увидите далее в этой книге, проектирование игры — это прежде всего процесс.

1. Постепенное изменение правил небольшими шагами после каждой пробной игры.

2. Пробная игра с новыми правилами.

3. Анализ восприятия игры по новым правилам.

4. Проектирование новых правил, которые, по вашему мнению, могут сместить восприятие игры в нужном вам направлении.

5. Повторение процесса до появления ощущения удовлетворенности.

Повторяющийся процесс обдумывания изменений в правилах игры, реализация пробной игры по новым правилам, анализ влияния изменений на восприятие игры и переход в начало процесса для внесения следующих небольших изменений, называется итеративным проектированием. Более подробно об итеративном проектировании рассказывается в главе 7 «Действовать как дизайнер».

Например, применительно к игре Bartok, можно для начала выбрать одно из следующих трех изменений в правилах и опробовать его:

• Правило 1: если игрок играет двойкой, следующий игрок пропускает ход и берет из ничейной колоды две карты.

• Правило 2: если у игрока на руках есть карта, соответствующая по значению и цвету масти (черная или красная) верхней карте в колоде сброса, он может объявить: «Парная карта!» — и сыграть вне очереди. После этого игра продолжается с игрока, находящегося по левую руку от игрока, сделавшего внеочередной ход. Таким способом игроки могут заставлять друг друга пропускать ход.

Например: первый игрок сыграл тройкой треф. У третьего игрока на руках имеется тройка пик, поэтому он объявил: «Парная карта!» — и побил тройку треф своей тройкой пик, сделав ход вне очереди, а второй игрок пропустил ход. После этого игра продолжилась с четвертого игрока.

• Правило 3: игрок должен объявить: «Последняя карта!», — если у него на руках осталась только одна карта. Если кто-то другой сказал эти слова первым, опоздавший игрок должен взять из ничейной колоды две карты (чтобы общее число карт у него на руках достигло трех).

Выберите одно из предложенных изменений и сыграйте в игру пару раз по новым правилам. Затем пусть каждый игрок запишет свои ответы на четыре вопроса, предложенных выше. Попробуйте также сыграть, добавив другое изменение (хотя я рекомендовал бы вносить изменения по одному и пробовать их по отдельности).

Если вы играете в цифровую версию игры, используйте флажки в экране меню для выбора разных вариантов.

Наблюдайте за неожиданностями в игре. Из-за недостаточно тщательного перемешивания карт или по каким-то другим причинам раунды игры могут отличаться друг от друга. Это называется случайной неожиданностью. Вы не должны принимать решений о дизайне игры, исходя из таких неожиданностей. Если что-то повлияло на игру неожиданным образом, обязательно несколько раз сыграйте пробную игру с этим изменением в правилах, чтобы убедиться, что неожиданность не случайна.

Анализ: сравнение раундов

Сыграв в игру с несколькими вариантами правил, проанализируйте результаты разных раундов. Загляните в свои записи и посмотрите, как каждый набор правил отразился на восприятии игры. Как вы уже понимаете, даже простое изменение правил может значительно изменить восприятие игры. Вот некоторые общие реакции на правила, описанные выше:

• Начальные правила.

Многие игроки считают, что исходная версия игры довольно скучна. Отсутствуют интересные варианты действий, и по мере уменьшения количества карт на руках количество возможных вариантов развития игры сокращается, из-за чего игрок часто может сделать только один верный ход, не имея вариантов на выбор. Игра в значительной степени основана на случайности, и игроки не имеют веских причин следить за ходами других игроков, потому что не имеют никакой возможности повлиять друг на друга.

• Правило 1:если игрок ходит двойкой, следующий игрок пропускает ход и берет из ничейной колоды две карты.

Это правило дает игрокам возможность влиять друг на друга, что увеличивает интерес к игре. Однако наличие двоек у игрока полностью зависит от удачи, а кроме того, каждый игрок может повлиять только на игрока слева, что часто кажется несправедливым. Тем не менее ходы других игроков вызывают больше интереса, потому что они (по крайней мере игрок справа) могут повлиять на вас.

• Правило 2: если у игрока на руках есть карта, соответствующая по значению и цвету масти (черная или красная) верхней карте в колоде сброса, он может объявить: «Парная карта!» — и сыграть вне очереди. После этого игра продолжается с игрока, находящегося по левую руку от игрока, сделавшего внеочередной ход.

Это правило часто больше всего влияет на внимание игроков. Любой игрок может отобрать ход у другого игрока, поэтому все игроки уделяют больше внимания ходам других. Игра с этим правилом часто вызывает больше эмоций, чем игра с другими правилами.

• Правило 3:игрок должен объявить: «Последняя карта!», если у него на руках осталась только одна карта. Если кто-то другой сказал эти слова первым, опоздавший игрок должен взять из ничейной колоды две карты.

Это правило начинает сказываться уже ближе к концу, поэтому не оказывает влияния на большую часть процесса, однако оно влияет на поведение игроков в конце игры. Это может придать игре интересную напряженность, так как игрок может вскочить и объявить: «Последняя карта!» — до того, как это сделает другой игрок, у которого тоже осталась одна карта. Это обычное правило в домино и в карточных играх, где цель игрока — сбросить все, что у него есть на руках, и помогает другим игрокам нагнать лидера, забывшего о правиле.

Проектирование желаемого восприятия игры

Теперь, увидев влияние разных правил на игру Bartok, можно приступить к выполнению обязанностей дизайнера и улучшить игру. Прежде всего следует решить, какой вы хотите сделать игру: захватывающей и драматичной, медленной и неторопливой — или придать ей более стратегический характер, уменьшив влияние случайностей?

Определив, как должна восприниматься ваша игра, поразмыслите об опробованных правилах и попытайтесь придумать дополнительные, которые подтолкнут восприятие игры в нужном вам направлении. Вот некоторые советы, которые желательно помнить, разрабатывая новые правила для игры.

• После каждой пробной игры изменяйте только что-то одно. Если вы измените (или даже немного скорректируете) сразу несколько правил, вам будет сложно определить, как повлияло каждое правило. Вносите изменения постепенно, и вам проще будет понять влияние каждого из них.

• Чем более крупные изменения вы вносите, тем больше пробных игр нужно сыграть, чтобы оценить их влияние на характер игры. Если вносятся только очень тонкие изменения, одного-двух раундов может оказаться достаточно, чтобы понять, как они повлияли на восприятие игры. Но при существенных изменениях в правилах понадобится больше раундов, чтобы исключить появление суждений, основанных на случайностях.

• Измените число — и вы измените восприятие. Даже, казалось бы, небольшое изменение может оказать большое влияние на процесс игры. Например, представьте, насколько динамичнее развивалась бы игра при наличии двух колод сброса, из которых игроки могли бы выбирать любую и у каждого на руках первоначально имелось бы только пять карт.

Конечно, изменять правила в карточных играх намного проще при игре вживую, с друзьями, чем при игре с цифровым прототипом. Это одна из причин, почему бумажные прототипы играют важную роль даже при разработке цифровых игр. В первой части этой книги обсуждается и бумажный, и цифровой дизайн, но большинство примеров и упражнений выполняется с бумажными играми, потому что развивать и тестировать их намного проще, чем цифровые аналоги.

Определение игры

Прежде чем углубиться в проектирование и итерации, следует уточнить, что подразу­мевается под такими терминами, как игра и проектирование игры. Многие очень умные люди пытались дать точное определение слову игра. Вот некоторые из них в хронологическом порядке.

• В 1978 году, в своей книге «The Grasshopper», Бернард Сьютс (бывший в ту пору профессором философии в университете Ватерлоо) заявил, что «игра — это добровольная попытка преодоления ненужных препятствий»12.

• Легенда игровой индустрии Сид Мейер сказал, что «игра — это серия интересных решений».

• В книге «Game Design Workshop» Трейси Фуллертон определила игру как «закрытую формальную систему, которая вовлекает игроков в организованный конфликт и разрешает его неопределенность в неравноценности результатов»13.

• В книге «The Art of Game Design» Джесси Шелл исследует несколько определений и, наконец, решает, что «игра — это работа по решению проблем с игривым настроем»14.

• В книге «Game Design Theory» Кит Бургун представил намного более узкое определение игры: «Система правил, руководствуясь которыми агенты конкурируют друг с другом, делая неоднозначные, эндогенно значимые ре­шения»15, 16.

Каждое из этих определений убедительно и по-своему правильно. Но гораздо важнее понимать, какой смысл вкладывал автор в свое определение.

Определение Бернарда Сьютса

Кроме краткого определения: игра — это добровольная попытка преодоления ненужных препятствий», Сьютс предложил более многословную и точную версию:

Игра — это попытка добиться определенного положения, используя только средства, разрешенные правилами, где правила запрещают использовать более эффективные средства в пользу менее эффективных и принимаются только потому, что они делают возможной такую деятельность.

На протяжении всей своей книги Сьютс предпринимает и отражает нападки на это определение. Прочитав его книгу, я хочу отметить, что он нашел определение слову «игра», наиболее точно соответствующее использованию этого слова в обыденной жизни.

Однако важно также помнить, что это определение было дано в 1978 году. И хотя в то время уже существовали цифровые и ролевые игры, Сьютс либо не знал о них, либо намеренно их игнорировал. Фактически в главе 9 (в книге «The Grasshopper») Сьютс заявляет об отсутствии драматических игр, играя в которые игроки могли бы растрачивать свою драматическую энергию (как дети растрачивают физическую энергию, играя в подвижные и спортивные игры), даже при том, что именно к этой категории относятся ролевые игры, такие как Dungeons & Dragons17.

Однако здесь не хватает сущей мелочи: несмотря на точность определения слова «игра», Сьютс ничего не предлагает дизайнерам, стремящимся создавать хорошие игры для других.

Чтобы лучше понять, что я имею в виду, улучите момент и сыграйте в фантастическую игру Passage Джейсона Рорера (Jason Rohrer): http://hcsoftware.sourceforge.net/passage/ (рис. 1.2)18. Чтобы пройти ее, потребуется всего пять минут, но она демонстрирует, насколько увлекательными могут быть даже короткие игры. Попробуйте сыграть в нее пару раз.

Рис. 1.2. Игра Passage Джейсона Рорера (выпущена 13 декабря 2007 года)

Определение Сьютса скажет вам, что да, это игра. В частности, это «открытая игра», которая, согласно его определению, имеет единственную цель — продолжать играть19. В игре Passage цель — продолжать играть максимально долго... Впрочем, не совсем так. Теоретически в Passage есть несколько целей, и только игрок может решить, к какой из них он будет стремиться, в их числе:

• забраться как можно дальше вправо, прежде чем персонаж погибнет (исследование);

• заработать как можно больше очков, отыскивая сундуки с сокровищами (достижение);

• поиск жены (социализация).

Фактически каждая из этих целей в игре Passage может быть целью в жизни, и, так же как в жизни, эти цели являются взаимоисключающими до определенной степени. Если вы нашли жену в начале игры, вам сложнее будет собирать сундуки с сокровищами, потому что вдвоем невозможно входить в некоторые области, куда можно входить поодиночке (зато каждый шаг вправо будет давать теперь два очка вместо одного). Если вы решите собирать сокровища, вы больше времени будете тратить на перемещения по вертикали и не сможете исследовать пейзаж далеко справа.

Решив зайти как можно дальше вправо, вы не сможете собрать много сокровищ. В этой невероятно простой игре Рорер дает возможность принять несколько фундаментальных решений, которые каждый из нас должен приять в реальной жизни, и демонстрирует, как даже самые ранние решения могут влиять на всю оставшуюся жизнь. Здесь важно отметить, что он дает игрокам свободу выбора и показывает, что их выбор имеет значение.

Это пример одной из множества целей дизайнера, о которых я рассказываю в этой книге: обретение понимания на практике. В отличие от художественных произведений, которые могут стимулировать появление сочувствия к герою, показывая читателю отрезок его жизненного пути и принимаемые им решения, игры позволяют игрокам не только понять, к чему ведут принимаемые решения, но и получить чувство причастности к результатам, давая игроку возможность и ответственность принимать решения и затем показывая результат этих решений. В главе 8 «Цели проектирования» мы подробнее исследуем обретение понимания на практике и другие цели дизайнера.

Определение Сида Мейера

Утверждая, что «игра — это серия интересных решений», Мейер очень мало говорит об определении слова игра (многое, очень многое можно охарактеризовать как серию интересных решений, что фактически не относится к играм) и еще меньше о том, что, по его мнению, делает игру хорошей игрой. Как дизайнер игр Pirates, Civilization, Alpha Centauri и многих других, Сид Мейер считается одним из лучших дизайнеров, и он постоянно создает игры, в которых игроки могут принимать интересные решения. Возникает естественный вопрос: что делает решения интересными? Обычно решение представляет интерес, когда: