The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Базовая книга об игровом движке Unity для разработки 2D- и 3D-игр на языке C# с применением специальных сценариев и библиотек. Рассмотрены базовые вопросы программирования игр: прототипирование, создание визуальных эффектов, разработка физики, оформление интерфейса, повышение производительности и отзывчивости программы. Уделено внимание специфике игрового движка Unity, подготовке игр к релизу, работе со скриптами на C#, юзабилити, развитию и усовершенствованию игр-прототипов.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2024-03-30 12:55:51

Современная разработка игр на Unity

Базовая книга об игровом движке Unity для разработки 2D- и 3D-игр на языке C# с применением специальных сценариев и библиотек. Рассмотрены базовые вопросы программирования игр: прототипирование, создание визуальных эффектов, разработка физики, оформление интерфейса, повышение производительности и отзывчивости программы. Уделено внимание специфике игрового движка Unity, подготовке игр к релизу, работе со скриптами на C#, юзабилити, развитию и усовершенствованию игр-прототипов.

Keywords: Unity

Скотт Тикоски Санкт-Петербург «БХВ-Петербург» 2024


УДК 004.43 ББК 32.973.26-018.1 Т40 Тикоски С. Т40 Современная разработка игр на Unity: Пер. с англ. — СПб.: БХВ-Петербург, 2024. — 496 с.: ил. ISBN 978-5-9775-1956-4 Базовая книга об игровом движке Unity для разработки 2D- и 3D-игр на языке C# с применением специальных сценариев и библиотек. Рассмотрены базовые вопросы программирования игр: прототипирование, создание визуальных эффектов, разработка физики, оформление интерфейса, повышение производительности и отзывчивости программы. Уделено внимание специфике игрового движка Unity, подготовке игр к релизу, работе со скриптами на C#, юзабилити, развитию и усовершенствованию игр-прототипов. Для разработчиков игр, компьютерной графики и мобильных приложений УДК 004.43 ББК 32.973.26-018.1 Группа подготовки издания: Руководитель проекта Олег Сивченко Зав. редакцией Людмила Гауль Перевод с английского Михаила Райтмана Редактор Кристина Черникова Компьютерная верстка Ольги Сергиенко Дизайн обложки Зои Канторович Copyright 2022 BPB Publications, India. All rights reserved. First published in the English language under the title Mastering Game Design with Unity 2021: Immersive Workflows, Visual Scripting, Physics Engine, GameObjects, Player Progression, Publishing, and a Lot More, ISBN 978-9355512161 by BPB Publications India ([email protected]). Russian translation rights arranged with BPB Publications, India. © 2022 BPB Publications, Индия. Все права защищены. Впервые опубликовано на английском языке под названием Mastering Game Design with Unity 2021: Immersive Workflows, Visual Scripting, Physics Engine, GameObjects, Player Progression, Publishing, and a Lot More, ISBN 978-9355512161 издательством BPB Publications India ([email protected]). Права на перевод на русский язык предоставлены издательством BPB Publications, Индия. "БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20 ISBN 978-93-55512-161 (англ.) ISBN 978-5-9775-1956-4 (рус.) © BPB Publications, India, 2022 © Перевод на русский язык, оформление. ООО "БХВ-Петербург", ООО "БХВ", 2024


Оглавление Об авторе ......................................................................................................................... 14 Благодарности ................................................................................................................ 15 Предисловие ................................................................................................................... 16 Примеры кода и цветные изображения .................................................................... 19 Глава 1. Движок Unity .................................................................................................. 20 Содержание главы ......................................................................................................................... 22 Цель главы ...................................................................................................................................... 22 Unity в общих чертах ..................................................................................................................... 22 Установка Unity ............................................................................................................................. 23 Дополнительные возможности и учебные материалы ............................................................... 25 Наш первый проект ....................................................................................................................... 27 Интерфейс редактора Unity .......................................................................................................... 29 Панели Scene и Game ............................................................................................................. 30 Сцена ....................................................................................................................................... 31 Панель Hierarchy ................................................................................................................... 31 Панель Inspector ..................................................................................................................... 33 Объекты GameObject ............................................................................................................. 34 Размещение объектов на сцене ............................................................................................. 34 Перемещение объектов ......................................................................................................... 37 Кнопка Play ............................................................................................................................ 39 Добавление второго объекта ................................................................................................. 40 Использование Visual Studio ........................................................................................................ 42 Проверяем все на практике ........................................................................................................... 44 Дополнительно: наглядная работа со сценариями ..................................................................... 45 Заключение..................................................................................................................................... 46 Вопросы .......................................................................................................................................... 46 Основные понятия ......................................................................................................................... 47 Глава 2. Компоненты и префабы ............................................................................... 49 Содержание главы ......................................................................................................................... 49 Цель главы ...................................................................................................................................... 49


6 Оглавление Подробно о компонентах .............................................................................................................. 50 Примеры компонентов .................................................................................................................. 50 Добавление компонентов к объекту ............................................................................................ 53 Класс MonoBehaviour .................................................................................................................... 53 Сценарий для компонента PlayerController ................................................................................ 54 Расширение компонентов в редакторе Unity .............................................................................. 57 Добавляем возможность прыжка ................................................................................................. 59 Создание и генерация префабов в игре ....................................................................................... 60 Создаем реалистичную монетку .................................................................................................. 61 Обнаружение столкновений ......................................................................................................... 62 Триггеры ......................................................................................................................................... 63 Превращение объекта в префаб .................................................................................................... 65 Генерация множества монет ......................................................................................................... 66 Дополнительные преимущества префабов .................................................................................. 69 Сообщения об отладке .................................................................................................................. 69 Основы разработки игр: итерирование и прототип геометрии ................................................. 70 Заключение..................................................................................................................................... 71 Вопросы .......................................................................................................................................... 71 Основные понятия ......................................................................................................................... 72 Глава 3. Основы боевой системы ............................................................................... 74 Содержание главы ......................................................................................................................... 74 Цель главы ...................................................................................................................................... 74 Основы разработки игр: риск и вознаграждение ........................................................................ 75 Подсистемы .................................................................................................................................... 75 Создание системы управления здоровьем ................................................................................... 76 Раскадровка получения урона ...................................................................................................... 81 Шипы: первая опасность............................................................................................................... 83 Компонент HealthModifier ............................................................................................................ 88 Создаем простой снаряд ............................................................................................................... 91 Визуализация урона ...................................................................................................................... 95 Менеджер игровых сессий ............................................................................................................ 98 Заключение................................................................................................................................... 101 Вопросы ........................................................................................................................................ 101 Основные понятия ....................................................................................................................... 102 Глава 4. Знакомство с пользовательским интерфейсом ...................................... 103 Содержание главы ....................................................................................................................... 103 Цель главы .................................................................................................................................... 104 Игровые поток и процесс ............................................................................................................ 104 Распределение игрового потока ................................................................................................. 104 Система пользовательского интерфейса Unity ......................................................................... 106 Объект Image ........................................................................................................................ 107 Объект Text (TextMeshPro) .................................................................................................. 107 Объект Button (TextMeshPro) .............................................................................................. 107 Объект Canvas ...................................................................................................................... 108 Ассеты шрифтов .................................................................................................................. 108 Привязка элементов ............................................................................................................. 108 Растягивание объектов ........................................................................................................ 109


Оглавление 7 Холст главного меню .................................................................................................................. 109 Компонент Rect Transform .................................................................................................. 109 Компонент Canvas ............................................................................................................... 111 Компонент Canvas Scaler .................................................................................................... 112 Главное меню: добавление элементов пользовательского интерфейса ................................. 113 Предустановки привязок ..................................................................................................... 115 Главное меню: добавление сценария ................................................................................. 120 Главное меню: действия для кнопок .................................................................................. 121 Добавление сцен в настройки сборки ................................................................................ 122 Базовый HUD-интерфейс ............................................................................................................ 124 Сценарий MainGameHUD ................................................................................................... 129 Окончание игры ........................................................................................................................... 131 Заключение................................................................................................................................... 134 Вопросы ........................................................................................................................................ 134 Основные понятия ....................................................................................................................... 134 Глава 5. Основы разработки ..................................................................................... 136 Содержание главы ....................................................................................................................... 136 Цель главы .................................................................................................................................... 137 Важность вех ................................................................................................................................ 137 Критикуйте! ................................................................................................................................. 137 Управляем камерой ..................................................................................................................... 139 Улучшение уровня....................................................................................................................... 142 Профессиональные инструменты .............................................................................................. 144 Разработка уровня ....................................................................................................................... 146 Лучшие враги ............................................................................................................................... 149 Взрывное исчезновение .............................................................................................................. 151 Азы разработки игр: постоянство .............................................................................................. 154 Поиск багов .................................................................................................................................. 154 Бездонная пропасть ............................................................................................................. 154 Снаряды с багами ................................................................................................................ 155 Бесконечный боезапас ......................................................................................................... 156 Экспорт сборки ............................................................................................................................ 157 Заключение................................................................................................................................... 159 Вопросы ........................................................................................................................................ 160 Основные понятия ....................................................................................................................... 160 Глава 6. Управление физическими явлениями ..................................................... 162 Обзор главы .................................................................................................................................. 162 Цель главы .................................................................................................................................... 162 Система физики Unity ................................................................................................................. 163 Компоненты физики .................................................................................................................... 163 Базовые формы коллайдеров ...................................................................................................... 163 Коллайдер на основе мешей ............................................................................................... 165 Компонент RigidBody .................................................................................................................. 165 Сочленения ................................................................................................................................... 166 Программирование физики......................................................................................................... 169 Игровой процесс: передвигаемые блоки ................................................................................... 173 Игровой процесс: движущиеся платформы .............................................................................. 176 Игровой процесс: трамплины ..................................................................................................... 179


8 Оглавление Игровой процесс: область ветра наносит удар ......................................................................... 180 Передача теней ............................................................................................................................ 184 Палитра игрового процесса ........................................................................................................ 186 Заключение................................................................................................................................... 187 Основные понятия ....................................................................................................................... 187 Контрольные вопросы ................................................................................................................. 188 Глава 7. Увлекательные анимации ......................................................................... 190 Содержание главы ....................................................................................................................... 190 Цель главы .................................................................................................................................... 191 Принципы анимации ................................................................................................................... 191 Создание основного героя .......................................................................................................... 194 Поза покоя .................................................................................................................................... 200 Панель Animation ......................................................................................................................... 200 Ключевые кадры и интерполяция .............................................................................................. 202 Циклы бега ................................................................................................................................... 207 Анимация в действии .................................................................................................................. 212 Организация файлов .................................................................................................................... 215 Заключение................................................................................................................................... 216 Вопросы ........................................................................................................................................ 216 Основные понятия ....................................................................................................................... 217 Глава 8. Искусственный интеллект противников ................................................ 218 Содержание главы ....................................................................................................................... 218 Искусственный интеллект .......................................................................................................... 218 Простые противники ................................................................................................................... 219 Компонент AIBrain .............................................................................................................. 221 Тип UnityEvent и события искусственного интеллекта .................................................... 223 Выслеживание игрока ......................................................................................................... 224 Настройка искусственного интеллекта .............................................................................. 226 Навигационный меш ........................................................................................................... 230 Агенты NavMesh .................................................................................................................. 231 Тестирование противника .......................................................................................... 233 Заключение................................................................................................................................... 234 Вопросы ........................................................................................................................................ 235 Основные понятия ....................................................................................................................... 235 Глава 9. Создание системы вооружения ................................................................. 237 Содержание главы ....................................................................................................................... 237 Цель главы .................................................................................................................................... 238 Палки и камни .............................................................................................................................. 238 Сцена-песочница для тестирования оружия ............................................................................. 238 Снаряжение персонажа оружием ............................................................................................... 245 Компонент Weapon ...................................................................................................................... 247 Настройка оружия ближнего боя ............................................................................................... 248 Настройка оружия дальнего боя................................................................................................. 250 Эффект отбрасывания ................................................................................................................. 251 Анимация атаки ................................................................................................................... 251 Шлейфы ........................................................................................................................................ 255 Продвинутые боевые приемы ..................................................................................................... 256


Оглавление 9 Заключение................................................................................................................................... 257 Вопросы ........................................................................................................................................ 258 Основные понятия ....................................................................................................................... 258 Глава 10. Звуковое сопровождение .......................................................................... 260 Содержание главы ....................................................................................................................... 260 Цель главы .................................................................................................................................... 261 Аудиокомпоненты ....................................................................................................................... 261 Аудиослушатель .................................................................................................................. 261 Источник звука .................................................................................................................... 261 Источники музыки и звуковых эффектов ................................................................................. 263 Наём музыканта ................................................................................................................... 263 Библиотеки Royalty Free ..................................................................................................... 263 Бесплатные аудиофайлы ..................................................................................................... 263 Магазин Unity Asset Store ................................................................................................... 263 Импорт аудиофайлов................................................................................................................... 267 Создание менеджера звука.................................................................................................. 269 Основы объемного звучания ...................................................................................................... 271 Объемное звуковое сопровождение предметов ................................................................ 273 Объемное звуковое сопровождение оружия ..................................................................... 276 Мастеринг звука с помощью аудиомикшеров .................................................................. 277 Поддержка разных платформ ..................................................................................................... 279 Заключение................................................................................................................................... 279 Вопросы ........................................................................................................................................ 280 Основные понятия ....................................................................................................................... 280 Глава 11. Улучшение графики ................................................................................. 281 Содержание главы ....................................................................................................................... 281 Цель главы .................................................................................................................................... 282 Художественные инструменты Unity ........................................................................................ 282 Загрузка дополнительных материалов ...................................................................................... 283 Инструмент ProBuilder ............................................................................................................... 285 Создание фигур .................................................................................................................... 286 Создание полифигур ............................................................................................................ 287 Сглаживание......................................................................................................................... 287 Редактор материалов ........................................................................................................... 287 UV-редактор ......................................................................................................................... 288 Центральная поворотная точка ........................................................................................... 289 Выдавливание меша клавишей <Shift> ............................................................................. 289 Кирпичные блоки ........................................................................................................................ 291 Привязка к сетке и размещение ассетов .................................................................................... 294 Префабы для постройки уровней ............................................................................................... 296 Китбашинг .................................................................................................................................... 301 Скайбокс ....................................................................................................................................... 304 Генерация тумана ........................................................................................................................ 306 Очистка рабочего пространства ................................................................................................. 307 Постобработка ............................................................................................................................. 308 Заключение................................................................................................................................... 312 Вопросы ........................................................................................................................................ 312 Основные понятия ....................................................................................................................... 312


10 Оглавление Глава 12. Системы частиц ......................................................................................... 315 Содержание главы ....................................................................................................................... 315 Цель главы .................................................................................................................................... 315 Обзор эффектов частиц ............................................................................................................... 316 Заполнение трехмерного пространства ..................................................................................... 317 Эффекты оружия ......................................................................................................................... 323 Эффекты взрывов ........................................................................................................................ 330 Пакет Unity Particle Pack ............................................................................................................ 339 Заключение................................................................................................................................... 342 Вопросы ........................................................................................................................................ 342 Основные понятия ....................................................................................................................... 343 Глава 13. Прогресс игрока ......................................................................................... 345 Содержание главы ....................................................................................................................... 345 Цель главы .................................................................................................................................... 346 Кривая сложности........................................................................................................................ 346 Управление сложностью ............................................................................................................. 348 Адаптация и обучение игрока .................................................................................................... 348 Режим обучения ........................................................................................................................... 349 Освещение пути ........................................................................................................................... 350 Обучение игрока .................................................................................................................. 354 Проверка навыков игрока ................................................................................................... 358 Испытания и мастерство ..................................................................................................... 360 Ритмизация .................................................................................................................. 361 Деревья прогрессии .................................................................................................... 362 Достижения ................................................................................................................. 362 Новая расширенная игра ............................................................................................ 362 Карта мира ................................................................................................................... 363 Заключение................................................................................................................................... 368 Вопросы ........................................................................................................................................ 369 Основные понятия ....................................................................................................................... 369 Глава 14. Пользовательский опыт ........................................................................... 371 Содержание главы ....................................................................................................................... 371 Цель главы .................................................................................................................................... 372 Что такое опыт взаимодействия? ............................................................................................... 372 Влияние интерфейса на опыт взаимодействия ......................................................................... 373 Иконографика .............................................................................................................................. 373 Типографика ................................................................................................................................ 377 Подсказки в игровом мире .......................................................................................................... 379 О важности первых 10 минут ..................................................................................................... 385 Ознакомительный уровень ......................................................................................................... 385 Достижение победы..................................................................................................................... 389 Плавный переход между сценами .............................................................................................. 394 Заключение................................................................................................................................... 398 Вопросы ........................................................................................................................................ 399 Основные понятия ....................................................................................................................... 399 Глава 15. 2D в сравнении с 3D .................................................................................. 401 Содержание главы ....................................................................................................................... 402 Цель главы .................................................................................................................................... 402


Оглавление 11 2D- и 3D-игры .............................................................................................................................. 402 Создание 2D-проекта .................................................................................................................. 403 Спрайты ........................................................................................................................................ 405 Листы спрайтов ............................................................................................................................ 408 Карты плиток ............................................................................................................................... 410 Исследование затерянной гробницы ......................................................................................... 416 Физика и перемещение в 2D-играх ............................................................................................ 418 Анимация в 2D-играх .................................................................................................................. 419 Кинематографическая камера .................................................................................................... 422 Сила параллакса ........................................................................................................................... 425 Заключение................................................................................................................................... 426 Вопросы ........................................................................................................................................ 427 Основные понятия ....................................................................................................................... 427 Глава 16. Игровые жанры ......................................................................................... 429 Содержание главы ....................................................................................................................... 429 Цель главы .................................................................................................................................... 430 Масштабы проектов .................................................................................................................... 430 Сайд-скроллеры и платформеры ................................................................................................ 431 Игры с видом сверху ................................................................................................................... 435 Шутеры от первого лица ............................................................................................................. 438 Игры от третьего лица ................................................................................................................. 441 Ролевые игры ............................................................................................................................... 443 Стратегии ..................................................................................................................................... 444 Головоломки ................................................................................................................................ 445 Креативные сочетания концепций ............................................................................................. 446 Ожидания игроков ....................................................................................................................... 448 Заключение................................................................................................................................... 449 Вопросы ........................................................................................................................................ 450 Основные понятия ....................................................................................................................... 450 Глава 17. Платформы и издание .............................................................................. 451 Содержание главы ....................................................................................................................... 451 Цель главы .................................................................................................................................... 452 Выбор платформы ....................................................................................................................... 452 Windows/macOS/Linux ................................................................................................................ 453 Мобильные устройства ............................................................................................................... 454 Консоли ........................................................................................................................................ 458 WebGL .......................................................................................................................................... 459 Устройства виртуальной/дополненной реальности ................................................................. 460 Публикация игры ......................................................................................................................... 462 Сотрудничество с издателями игр ............................................................................................. 463 Заключение................................................................................................................................... 464 Вопросы ........................................................................................................................................ 465 Основные понятия ....................................................................................................................... 465 Глава 18. От идеи к финалу ....................................................................................... 467 Содержание главы ....................................................................................................................... 467 Цель главы .................................................................................................................................... 468 Препроизводство ......................................................................................................................... 468


12 Оглавление Проектная документация ............................................................................................................ 469 Бумажные прототипы .................................................................................................................. 471 Концепт-арт .................................................................................................................................. 472 Макеты.......................................................................................................................................... 474 Будьте креативны ........................................................................................................................ 475 Управление проектом .................................................................................................................. 477 Вертикальный срез ...................................................................................................................... 479 Тестирование игры ...................................................................................................................... 479 Аналитика..................................................................................................................................... 480 Приоритеты отзывов ................................................................................................................... 481 Вехи, динамика и моральный дух .............................................................................................. 482 Ранний доступ .............................................................................................................................. 484 Маркетинг .................................................................................................................................... 485 Выпуск в производство… и не только! ..................................................................................... 487 Заключение................................................................................................................................... 488 Вопросы ........................................................................................................................................ 488 Основные понятия ....................................................................................................................... 489 Предметный указатель ............................................................................................... 492


Посвящается Моей замечательной дочери Лили, наполняющей меня творческим потенциалом и энергией. Моему необыкновенному сыну Итану, помогающему мне в собранности и организованности. Моей любимой жене Дженни, без которой я вообще бы ничего не смог сделать. Спасибо за помощь в повороте всех этих JPEG-файлов.


Об авторе Скотт Тикоски трудится в индустрии видеоигр вот уже 23 года. За это время он принял участие в разработке и выпуске 25 игр и приложений на различных платформах (ПК, мобильных устройствах, Xbox, Meta Quest 2, HoloLens). Он возглавлял несколько команд и на протяжении своей карьеры занимал практически все возможные должности: разработчика, художника, дизайнера, писателя, аниматора, продюсера, маркетолога. Скотт регулярно выступает с докладами на тему разработки игр в учебных заведениях и на локальных конференциях разработчиков игр. В настоящее время он применяет свои знания в области Unity и дизайна в сфере консалтинга. В компании OST новые технологии используются для разработки интерфейсов и приложений с элементами виртуальной/дополненной реальности в интересах лидеров отрасли.


Благодарности Я хочу поблагодарить множество людей за их поддержку, как во время работы над этой книгой, так и в предшествующие годы. Во-первых, огромное спасибо моей супруге Дженни и детям, Итану и Лили. Ваша любовь и поддержка вдохновляли меня во время работы над рукописью. Я с нетерпением ждал завершения работы, чтобы вечерком вместе с семьей прокатиться в Mario Kart! Спасибо моим маме, папе, брату Майку и сестре Джоди. Говорят, что «играющая семья всегда будет вместе». Наверное, все наши совместные вечера за консолью поставили меня на этот путь. Несмотря на то что мы разъехались в разные уголки страны, с удовольствием осознаю, что наши растущие семьи будут всю жизнь радоваться совместным играм. Я хотел бы поблагодарить своих бывших коллег — разработчиков игр, у которых я многому научился. Брэда, Дерека, Кэри, Пола, Джесси, Чарльза, Сару, Джеффа, Крис и всех остальных, с кем мне довелось работать вместе. Хочу поблагодарить замечательную команду BPB Publications, сопровождавшую меня весь этот сложный путь по выпуску книги. Я многому научился и надеюсь, что вы разделяете мою гордость за выпущенную нами книгу. Спасибо всем остальным людям в моей жизни, кто поддерживал меня на этом пути: Сандре, Элисон, Джерри, Ричарду, Джошу, Эбби, Лиззи, Диане, Финнли, Этли, Райли, Джиму, Мо, и всем моим друзьям и родственникам, не забывавшим обо мне все эти годы.


Предисловие Если и говорить об удивительных случаях строительства карьеры, то работа в индустрии видеоигр — один из лучших примеров. На протяжении 22 лет я с огромным удовольствием сотрудничал с программистами, художниками и дизайнерами экстра-класса. Мы всегда обсуждали что-то новенькое и практически никогда не скучали. Бесспорно, есть что-то приятное в том, чтобы придумать, создать и выпустить игру. Однако восторг творчества и радость товарищества иногда омрачались суровой правдой. Разработка игры может стать довольно сложным делом. Хотя в этой сфере скрыт огромный потенциал творчества, а также погружения в потрясающие игры (в рамках, так скажем, исследования игрового мира), львиная доля времени разработчика уходит на решение сложных задач. Программирование, работа над графикой, проектирование уровней, проектирование систем, а еще и взаимодействие с тестировщиками игр и анализ их отзывов. После получения обратной связи (и помните, что она частенько полна критики и весьма прямолинейна) вы начинаете рабочий цикл заново, шаг за шагом. Зачастую это трудно, сложно, разочаровывает, но в итоге награда превышает все ваши ожидания. Здесь на помощь приходит Unity — удивительный игровой движок и комплект инструментов. Эта среда разработки сводит на нет стресс и разочарование от неудач разработки, позволяя сосредоточиться на забавных, творческих аспектах разработки игр. На уникальности вашей игры. В этой книге вы изучите теорию разработки игр, а затем примените освоенные концепции на практике — непосредственно в программе Unity. Книга содержит 18 глав, каждая из которых посвящена отдельной концепции игрового процесса, с пошаговыми инструкциями по реализации этих концепций с помощью Unity. К концу книги вы разберетесь, что такое разработка игр, почему следует придерживаться определенных правил разработки и как довести свою игру от концептуальной стадии до готового продукта. В главе 1 приведен обзор движка Unity Engine. В этой главе мы рассмотрим процесс установки программы и интерфейс редактора Unity, в котором создается


Предисловие 17 основная часть игры. Вы создадите несколько объектов и научитесь перемещать их с помощью сценариев. Глава 2 позволяет углубиться в систему компонентов и префабов Unity. Компоненты — это сценарии на языке C#, которые мы пишем и прикрепляем к игровым объектам. Вы также узнаете, как создавать предметы для сбора (в данном случае монеты) с помощью шаблонных объектов, называемых префабами. Глава 3 рассказывает об одной из фундаментальных концепций игрового процесса: здоровье игрока. Большинство игр заканчивается после получения игроком определенного уровня урона. Поэтому мы реализуем эту крайне важную концепцию с помощью объектов и компонентов Unity. Глава 4 посвящена системе пользовательского интерфейса Unity. Вы узнаете, как использовать холст, графические элементы, кнопки и привязки для создания изображения, независимого от разрешения экрана. Вы также научитесь управлять сценами и переходить от экранов внешних интерфейсов к основной игре. Глава 5 напоминает основы Unity, в частности, как с помощью инструментов управлять объектами при создании уровня. Эта глава также познакомит вас с игровым тестированием, поиском ошибок, важностью определения этапов при помощи вех и созданием сборок. В итоге вы создадите демонстрационную версию игры, в которую смогут играть друзья и близкие. Глава 6 посвящена физическому движку Unity, основной системе, используемой для управления движением объектов и столкновениями между ними. Вы узнаете о различных компонентах системы, а затем используете ее для имитации физических явлений в демонстрационной версии вашей игры. В главе 7 раскрываются теоретические аспекты анимации объектов и приводятся исчерпывающие сведения о соответствующих инструментах в программе Unity. Мы рассмотрим такие понятия, как сжатие и растяжение, функция плавности, управление временем, ключевые кадры, позы покоя и циклы бега. Вы добавите дополнительные анимации, чтобы придать индивидуальности нашему отважному герою. Глава 8 переключает наше внимание с героя на врагов и рассказывает об искусственном интеллекте (ИИ). Мы рассмотрим некоторые основные концепции искусственного интеллекта, а затем создадим врага, способного выследить игрока с помощью встроенной в Unity системы поиска пути. Глава 9 позволит вам проявить мастерство в создании надежной системы оружия для игрока. После изучения теории ведения боя мы создадим примеры оружия ближнего и дальнего боя. Применив полученные знания о префабах и стрельбе, мы правильно анимируем поведение героя во время атаки в ближнем бою. Глава 10 посвящена звуку. Мы обсудим музыкальное сопровождение, звуковые эффекты и широкий спектр аудиокомпонентов, доступных в Unity. Мы также воспользуемся магазином Unity Asset Store, где можно приобрести музыку и звуки для нашей демонстрационной версии игры. Глава 11 расскажет, как с помощью Unity с легкостью создавать игровые шедевры. Мы начнем с ProBuilder: встроенного инструмента моделирования мешей в Unity.


18 Предисловие Затем посетим магазин Unity Asset Store и обсудим способы использования работ талантливых художников из сообщества Unity. К концу главы у вас в руках окажется целый арсенал материалов, скайбоксов, мешей и эффектов постобработки, идеально подходящих для совершенствования любого проекта. Глава 12 учит еще одному жизненно важному графическому инструменту из вашего арсенала: системе частиц. Мы поговорим о различных игровых системах, которые выигрывают от хорошо проработанных систем частиц. После обсуждения теоретических аспектов разработки игр мы проверим наши идеи на практике, генерируя эффекты окружающей среды, оружия и взрывов. Глава завершается обзором проекта «песочницы частиц» в Unity — отличного места для изучения визуальных эффектов, созданных экспертами. В главе 13 мы распрощаемся с графическими системами и сосредоточимся на игровом прогрессе: концепции, гарантирующие, что игра увлечет игрока, не разочаровав его. Мы рассмотрим кривую сложности игры, системы вознаграждения игроков и ритма, а затем реализуем эти концепции, сконструировав обучающий уровень. Глава 14 направлена на создание великолепного опыта взаимодействия (UX). Эта чуточку туманная концепция предполагает, что вы упрощаете сложные моменты вашей игры с помощью хорошо продуманного пользовательского интерфейса и особенностей конструирования уровней. Мы также обсудим важные «первые 10 минут», за которые нужно увлечь искушенных геймеров своим игровым миром. В главе 15, покинув 3D-мир, мы познакомимся с внушительным набором 2D-инструментов Unity. Спрайты, карты плиток, 2D-физика и 2D-анимация — все это мы рассмотрим как в ретроиграх, так и в современных 2D-шедеврах. В главе 16 вас ждет глубокое погружение в различные популярные игровые жанры. Мы обсудим масштабы проектирования, ожидания игроков и риски при выборе жанра, требующего на воплощение больше усилий, чем ожидается. В каждом случае вы узнаете об истории жанра, поджанрах и соответствующих шаблонах в магазине Unity Asset Store (чтобы было, с чего начать). В завершение мы поговорим о неоправданных ожиданиях и о том, как придать уникальности игре в том или ином жанре. Глава 17 рассказывает о различных аппаратных платформах, для которых разрабатываются игры в Unity. Поскольку кросс-платформенная разработка — краеугольный камень разработчика, важно понимать преимущества/минусы каждого варианта сборки: под настольные компьютеры, мобильные устройства, консоли и девайсы виртуальной/дополненной реальности. В зависимости от ваших целей вы научитесь подбирать идеальную платформу для разработки. В главе 18 мы сосредоточимся на двух наиболее важных аспектах финализации игры: дизайне и управлении проектом. Здесь вы начнете укреплять творческое ви´дение своей собственной игры. Мы поговорим о задачах стадии препроизводства, где игра документируется и представляется наглядно до написания кода. Мы поговорим об основных этапах и планировании задач, чтобы вы всегда добивались результата. В конце мы дадим советы по выпуску игры и разработке постпроизводственных обновлений, направленных на поддержку интереса игроков.


Примеры кода и цветные изображения Перейдите по ссылке https://rebrand.ly/49fe95, чтобы скачать примеры кода и цветные изображения к книге. Примеры кода для книги также размещены на сайте GitHub по адресу https:// github.com/bpbpublications/Mastering-Game-Design-with-Unity-2021. Если код будет обновлен, изменения отобразятся в данном репозитории GitHub.


ГЛАВА 1 Движок Unity Мы живем в золотой век разработки игр. Удивительно, что всего четверть века назад разработка игр выглядела совершенно иначе. «16-битная» эпоха заканчивалась, уступая место эре 3D-графики, и лишь крупные студии находили ресурсы на выпуск популярных игр для массовой аудитории. На заре 3D-эпохи студии исследовали и разрабатывали системы игрового процесса на ходу. Каждая новая 3D-концепция сопровождалась выходом новой крупной игры. Свободно управляемая камера и отточенные движения Марио стали отличительной чертой игры Super Mario 64. В Halo: Combat Evolved было введено рельефное текстурирование, придающее объектам непревзойденную детализацию и реалистичность. В игре Fable появился эффект Bloom (Пересвечивание), придающий освещенным объектам фантастический вид. А шедевр Minecraft познакомил мир с концепцией вокселей — объемных пикселей — способом генерации построек, персонажей и даже миров из трехмерных кубиков. Рис. 1.1. В Unity созданы такие игры-блокбастеры, как Ori: Will of the Wisps, Subnautica, Cuphead, Hearthstone и Pokemon Go!


Движок Unity 21 Графика и код видеоигр были неразрывно связаны друг с другом. Концепция игрового движка — фрагментов кода и инструментов для создания игр, доступных для всех, — казалась несбыточной мечтой. Конечно, если вы не испытывали финансовых затруднений, можно было приобрести лицензию некоего подобия 3D-движка, стоимость которого зашкаливала и была не по карману большинству разработчиков. Энтузиасты программировали игру полностью сами — с нуля. Рис. 1.2. Minecraft ввел в лексикон игроков (и разработчиков игр) понятие трехмерных вокселей К счастью, наконец наступил золотой век разработки игр, окунувший в многообразие игровых движков. Разработчики 2D-игр могут использовать программу GameMaker Studio или Pico-8. Unreal, мощный 3D-движок, лицензия на который первоначально стоила миллионы, теперь доступен всем желающим совершенно бесплатно. Доступно множество вариантов, у каждого из которых есть свои сильные и слабые стороны. Тем не менее если вы ищете непревзойденную гибкость, то самым универсальным вариантом, безусловно, станет движок Unity Engine. Он поддерживает 2D- и 3Dигры, проекты с элементами виртуальной/дополненной реальности, разработку под Windows, macOS и Linux и даже мобильные и веб-игры и обладает функционалом для создания любой игры, которую вы только можете себе представить. Unity — не только гибкая, но и объектно-компонентная система, упрощающая и увлекающая в процесс разработки и отладки. Разработчики Unity постоянно улучшают и полируют свой движок, выпуская свежие обновления, предоставляя доступ к новейшим технологиям. А сообщество разработчиков Unity увеличивается с каждым днем, помогая начинающим разработчикам и постоянно создавая впечатляющие ресурсы — ассеты, которые можно загрузить из магазина Unity Asset Store. С движком Unity Engine создавать собственные игры еще никогда не было так просто. Приступим!


22 Глава 1 Содержание главы В этой главе мы рассмотрим следующие темы: Unity в общих чертах Программа Unity Hub Выпуски с долгосрочной поддержкой и бета-версии Дополнительные возможности и учебные материалы Редактор Unity Размещение объектов на сцене Перемещение объектов Панель Inspector (Инспектор) Панель Hierarchy (Иерархия) Управление движением объектов Установка программы Visual Studio Наглядная работа со сценариями Цель главы Глава 1 посвящена основам Unity. Вам предстоит загрузить программное обеспечение Unity и создать свой первый проект. Вы познакомитесь с интерфейсом редактора Unity, в котором создадите свои первые объекты и добавите простую физику. К концу главы вы напишете свой первый сценарий и путем ввода с клавиатуры будете управлять вращением объекта. В главе 1 вы освоите работу с Unity и разберетесь, что вам предстоит изучать дальше, а также начнете разрабатывать нашу демоигру. Unity в общих чертах Unity — один из ведущих игровых движков, используемый как независимыми разработчиками, так и крупными игровыми компаниями по всему миру. Он может использоваться для создания игр для Windows, macOS, мобильных устройств, консолей и распространен в студиях по разработке приложений с элементами виртуальной/дополненной реальности. Благодаря Unity однократно созданную игру можно собрать практически для любой актуальной аппаратной платформы. Что касается набора инструментов, в редакторе Unity Editor вы будете работать больше всего. В нем можно быстро создавать сцены, одновременно тестировать игровой процесс и даже приостанавливать его, чтобы отладить текущую сессию. Надежность инструментария, одним словом, феноменальная. Сценарии пишутся на языке C#, похожем на упрощенную версию C++ (не используются заголовочные файлы, встроенная обработка сообщений и т. д.). C# — ком-


Движок Unity 23 пилируемый язык, поэтому работает быстрее, чем большинство других сценарных языков. В нем используется собственный менеджер памяти, так что вам не придется беспокоиться о выделении и освобождении памяти. Для написания кода мы воспользуемся инструментом Visual Studio, устанавливаемым в качестве модуля к программе Unity. Unity Hub — это еще один важный компонент экосистемы Unity. В этой программе вы можете управлять различными версиями Unity, просматривать и загружать свои проекты, а также сотрудничать с другими участниками сообщества. С Unity Hub начинается наше путешествие. Установка Unity Платформа Unity содержит единый инструмент для установки Unity и управления проектами — Unity Hub. Рис. 1.3. Unity Hub — интерфейс для управления проектами, установки обновлений Unity, просмотра учебных материалов и общения с обширным сообществом пользователей Unity 1. Установить Unity Hub очень просто. Вам нужно перейти на сайт https:// unity.com/download и нажать кнопку Download for (Скачать для) с названием вашей операционной системы. О бета-версиях программы На сайте предлагается скачать новейшие «бета-версии» программы Unity Hub. Такие версии программы содержат экспериментальные функции и могут работать нестабильно. Для этой книги не рекомендуется скачивать версии программы со словом «бета» в названии. У вас может возникнуть соблазн получить самую свежую и луч-


24 Глава 1 шую версию программы Unity, но пока вы не освоите ее основной функционал, мы рекомендуем вам использовать финальные, стабильно работающие версии программы. 2. Загрузив файл UnityHubSetup.exe, найдите его в папке загруженных файлов и запустите. Начнется процесс установки программы Unity Hub на ваш компьютер. 3. Завершив установку программы Unity Hub, пришло время установить основное программное обеспечение Unity. Перейдите на вкладку Installs (Установки) в левой части окна Unity Hub, затем нажмите кнопку Install Editor (Установить редактор) в левом верхнем углу (рис. 1.4). Рис. 1.4. Перейдите на вкладку Installs, затем нажмите кнопку Install Editor, чтобы раскрыть список версий Unity, доступных для установки 4. Появится список доступных к загрузке версий Unity. Мы загрузим сборку 2021 LTS (рис. 1.5). Рис. 1.5. Доступно несколько версий Unity, которые можно загрузить. Выберите версию 2021 LTS Версии LTS и бета В списке версий указаны два типа дистрибутивов Unity — LTS и Beta. Аббревиатура LTS расшифровывается как «Long Term Support» (Долгосрочная поддержка). Обеспечивается поддержка пользователей Unity в течение двух лет, поэтому 2021 LTS — это стабильная, функционально полная версия 2021 года выпуска. Бета-версии, с другой стороны, содержат новейшие и самые крутые версии программы Unity, но


Движок Unity 25 могут содержать экспериментальные (и, возможно, нестабильные) функции. Так как мы стремимся к стабильности, рекомендуем загружать сборки LTS. Как только вы освоитесь с Unity, то можете загружать бета-версии и помогать разрабатывать новые функции платформы. 5. После выбора релиза Unity LTS нажмите кнопку Next (Далее) в правом нижнем углу. 6. Откроется список дополнительных модулей, доступных для установки. Если это не так, нажмите кнопку в виде шестеренки в строке с установленной версией Unity в окне Unity Hub и выберите пункт Add modules (Добавить модули) (рис. 1.46). На данный момент сбросим все флажки, кроме Documentation (Документация) и Microsoft Visual Studio Community, и нажмем кнопку Install (Установить), чтобы запустить процесс загрузки и установки выбранных модулей. Рис. 1.6. Модули можно установить в любой момент, поэтому не беспокойтесь о том, что вы что-то пропустите при первоначальной установке Установив сборку Unity, давайте в последний раз взглянем на Unity Hub, прежде чем создать новый проект. Дополнительные возможности и учебные материалы Хотя интерфейс Unity Hub предназначен в основном для управления проектами и версиями движка Unity, здесь есть несколько вкладок, которые стоит изучить.


26 Глава 1 Вкладка Learn (Обучение) предоставляет доступ к подробным обучающим материалам, написанным непосредственно командой разработчиков Unity (рис. 1.7). Учебники по разработке игр, демоверсии и шаблоны — все это доступно одним нажатием кнопки. Справочные материалы идеально проработаны, и вы наверняка узнаете что-нибудь новенькое. Рис. 1.7. В окне программы Unity Hub доступно множество обучающих материалов Допустим, вы хотите разработать собственный шутер от первого лица (First Person Shooter, FPS). Существует конструктор FPS Creator, предназначенный начинающим разработчикам и позволяющий написать игру менее чем за 2 часа. Или, к примеру, вы пытаетесь увлечь подростков программированием. Компания Unity совместно с Lego разработала серию обучающих микроигр. С помощью них начинающие разработчики экспериментируют с блочным строительством, обучаясь программировать игры. Уже только одна эта вкладка представляет собой глубокий колодец полезных знаний для любого начинающего разработчика игр. Также есть вкладка Community (Сообщество), на которой команда Unity публикует информацию о новейших функциях и предстоящих релизах (рис. 1.8). Там же можно получить помощь непосредственно от команды Unity и зарегистрироваться на форумах, где невероятно увлеченное и активное сообщество разработчиков Unity с удовольствием поможет вам справиться с любыми проблемами. Оставим огромное количество материалов, доступное на описанных вкладках, и начнем с чистого листа наш собственный проект. Перейдите на вкладку Projects (Проекты) и нажмите кнопку New Project (Новый проект) в правом верхнем углу (рис. 1.9).


ГЛАВА 2 Компоненты и префабы Движок Unity предоставляет множество мощных инструментов для создания любых игр: надежный редактор, богатый ассортимент ассетов и множество систем (физика, звук, рендеринг и т. д.). Однако одним из самых недооцененных преимуществ Unity является легкость, с которой вы можете создавать уникальные игровые объекты, используя системы компонентов и префабов. Создав и добавив несколько компонентов с помощью системы префабов, вы можете создать практически все — игроков, врагов, предметы, оружие, снаряды. Эти две системы помогут вам создать все необходимое для превращения вашей игры в шедевр! Содержание главы В этой главе мы рассмотрим следующие темы: Подробно о компонентах Примеры компонентов Добавление компонентов к объектам Класс MonoBehaviour Создание бегающего и прыгающего героя Обработка столкновений Создание префабов Создание префабов с помощью сценария Базовая отладка с помощью функции Debug.Log() Прототип геометрии: что это такое и почему это важно? Цель главы В этой главе вы получите полное представление о системах компонентов и префабов Unity, которые позволяют создавать игровые объекты и добавлять их в игру.


50 Глава 2 Вначале мы рассмотрим несколько примеров с компонентами, чтобы понять, как эта система используется в случае самых разных типов объектов. Затем вам предстоит создать объект игрока, поддерживающий функцию обработки ввода, а также вращающуюся золотую монету, которую игрок может подобрать. К концу главы вы создадите несколько универсальных компонентов, добавите в игру несколько новых префабов объектов и освоите несколько мощных инструментов на пути к освоению разработки игр! Подробно о компонентах Вы уже узнали о базовом элементе игр Unity: объекте GameObject (Игровой объект). И хотя игровые объекты дают нам прочную основу для построения игры, их реальная мощь исходит от компонентов: модульных фрагментов кода, которые можно комбинировать для определения предназначения объекта в игровом процессе. В главе 1 вы познакомились с несколькими компонентами при создании объектов сферы и поверхности. Панели RigidBody (Твердое тело), Sphere Collider (Коллайдер в виде сферы) и Mesh Renderer (Рендерер меша), которые вы видели, — по сути, это готовые компоненты. Вы даже создали свой собственный компонент: GroundObjectController, сценарий, который вращает объект поверхности земли при нажатии клавиш со стрелками. Независимо от того, используете ли вы готовые компоненты или пишете собственные, эти сценарии могут обрабатывать что угодно: ввод пользователя, логику искусственного интеллекта, системы частиц или даже управлять объектами в многопользовательских играх. Вкратце, все в вашей игре будет построено из компонентов. Давайте рассмотрим еще несколько примеров компонентов на практике. Примеры компонентов Модульная природа компонентов поначалу может напугать. Рассмотрим несколько примеров реальных компонентов и игровых объектов, чтобы прояснить этот аспект разработки. Почти во всех играх есть понятие объекта игрока. Это может быть персонаж, камера или интерфейсный курсор, который перемещается пользователем. К игрокам относится Марио, Мастер Чиф или даже падающая фигурка в «Тетрисе». Объект игрока реагирует на ввод данных от пользователя через контроллер, мышь или клавиатуру. Когда пользователь передает команды «влево», «вправо», «поднять», «прыгнуть» или «стрелять», объект игрока должен реагировать соответствующим образом. Например, в платформере от третьего лица объектом игрока служит видимый герой, за которым следует камера. Он создается из компонентов, связанных с пере-


Компоненты и префабы 51 мещением персонажа в трехмерном пространстве, управлением здоровьем, хранением инвентаря, воспроизведением компонентов анимации и обработкой физики. Панель Inspector (Инспектор) такого объекта игрока в платформере от третьего лица может выглядеть следующим образом (рис. 2.1). Рис. 2.1. Сценарии PlayerController, Health Manager и Inventory Manager — компоненты, которые мы создадим в последующих главах С другой стороны, объект-противник не нуждается в компонентах, связанных с пользовательским вводом. Вместо этого у врагов будет искусственный интеллект, управляющий логикой движения. Кроме этой разницы, их компоненты будут похожи на те, что мы видим у объекта игрока (здоровье, физика и т. д.). Панель Inspector (Инспектор) для объектов-противников может выглядеть следующим образом: рис. 2.2. И если нам нужно огнестрельное оружие в платформере от третьего лица, нам понадобится базовый объект пули. Он будет значительно отличаться от объектов игрока и врага, скорее всего, имея свой собственный уникальный компонент, без системы управления здоровьем, инвентарем и обработкой ввода. Свойства объекта пули на панели Inspector (Инспектор) выглядят следующим образом (рис. 2.3). На данный момент — это все примеры. Но они показывают, как любой игровой объект можно разложить на основные компоненты. К примеру, объект Terrain (Местность) состоит из компонентов Mesh Rendering (Рендеринг меша), некоторых свойств управления физикой Physics и уникального сценария Terrain. Неигро-


ГЛАВА 8 Искусственный интеллект противников «Герой хорош ровно настолько, насколько хорош злодей». Это известный принцип, которым руководствуются сценаристы и который обеспечивает сопоставление силы героя с равным по силе противником. Этот принцип справедлив и для разработки игр. Если в игре, как и в романе, не будет врагов, испытывающих терпение игрока, вас закидают тапками. Поэтому в этой главе мы погрузимся в тему «искусственного интеллекта противника»: создадим компоненты и логику, позволяющие управлять интеллектуальным перемещением врагов. Давайте узнаем, как в Unity используются инструменты для создания персонажей, отлично справляющихся с ролью плохих парней. Содержание главы В этой главе мы рассмотрим следующие темы: Искусственный интеллект (ИИ) Простые противники Компоненты искусственного интеллекта События и действия Unity Выслеживание игрока Управление искусственным интеллектом Навигационный меш Агенты NavMesh Искусственный интеллект Враги в видеоиграх бывают разных форм и размеров. Это может быть «пушечное мясо», убиваемое с одного выстрела, проворные ниндзя, затаившиеся снайперы и эпические непобедимые боссы. Желая удовлетворить потребности игроков


Искусственный интеллект противников 219 в большом разнообразии уникальных врагов, начинающему разработчику бывает трудно понять, с чего начать. Во-первых, важно понимать, что с точки зрения программирования объекты-враги не сильно отличаются от объектов-игроков. И с теми и с другими связан показатель здоровья. У обоих настраивается скорость бега, высота прыжка, а также инвентарь — оружие и предметы, которые те могут использовать. Ключевая особенность — в способах принятия решений. Для объекта-игрока все решения принимаются пользователем — игроком, нажимающим клавиши клавиатуры или кнопки контроллера. Вражеские объекты, напротив, управляются искусственным интеллектом (ИИ) — кодом, определяющим поведение персонажей. Мы создадим компонент AIBrain, наблюдающий за игровым миром (местоположение игрока, препятствия в окружающей среде и т. д.) и принимающий решения на основе полученных данных. Простые противники Прежде чем приступить к программированию компонента AIBrain, давайте для него создадим небольшого врага. Простой, типичный, одноглазый злодей отлично справится с этой задачей! Хотя мы все еще используем прототипы, в нашей игре уже достаточно уникальных объектов. Нашего легко узнаваемого противника можно сделать из 3 кубов и 2 сфер. Создайте пустой GameObject (Игровой объект) с именем EnemyObj_BasicFoe, затем добавьте к нему следующие дочерние объекты: С помощью команды меню 3D Object (3D-объект) | Cube (Куб) создайте объект CubeHead. С помощью команды меню 3D Object (3D-объект) | Sphere (Сфера) создайте объект YellowEye. С помощью команды меню 3D Object (3D-объект) | Sphere (Сфера) создайте объект EyePupil. С помощью команды меню 3D Object (3D-объект) | Cube (Куб) создайте объект Eyebrow_L. С помощью команды меню 3D Object (3D-объект) | Cube (Куб) создайте объект Eyebrow_R. Создав дочерние объекты, воспользуйтесь табл. 8.1, чтобы расположить и настроить объекты и создать нашего базового противника. Как и в случае с шипами, узнаваемая окраска нашего врага — это отличный способ идентифицировать его как нечто опасное. Примените материал matColorRed к объекту CubeHead и материал matBlack к объектам EyePupil, Eyebrow_L и Eyebrow_R. Затем создайте материал matYellow и примените его к объекту YellowEye. Теперь враг должен напоминать одноглазое существо, изображенное на рис. 8.1.


220 Глава 8 Таблица 8.1. Значения свойств Transform для подобъектов нашего базового противника EnemyObj_BasicFoe Position (Положение) X 0 Y 0 Z 0 Rotation (Поворот) X 0 Y -180 Z 0 Scale (Масштаб) X 1 Y 1 Z 1 CubeHead Position (Положение) X 0 Y 0.7 Z 0 Rotation (Поворот) X 0 Y -180 Z 0 Scale (Масштаб) X 0.9 Y 0.9 Z 0.9 EyePupil Position (Положение) X 0 Y 0.7 Z 0.55 Rotation (Поворот) X 0 Y -180 Z 0 Scale (Масштаб) X 0.07 Y 0.24 Z 0.06 YellowEye Position (Положение) X 0 Y 0.7 Z 0.42 Rotation (Поворот) X 0 Y -180 Z 0 Scale (Масштаб) X 0.7 Y 0.7 Z 0.28 Eyebrow_L Position (Положение) X 0.25 Y 1.06 Z 0.55 Rotation (Поворот) X 26.9 Y -180 Z -25 Scale (Масштаб) X 0.63 Y 0.21 Z 0.1 Eyebrow_R Position (Положение) X -0.25 Y 1.06 Z 0.55 Rotation (Поворот) X 26.9 Y -180 Z 25 Scale (Масштаб) X 0.63 Y 0.21 Z 0.1 Рис. 8.1. Прекрасный краснощекий типичный враг. V-образная бровь формирует образ


Искусственный интеллект противников 221 Компонент AIBrain Создав базового противника, пришло время наделить его небольшим искусственным интеллектом. Для этого мы создадим компонент AIBrain. Этот сценарий направлен на управление поведением противника, также известным как состояние искусственного интеллекта (AI State). Каждое возможное состояние предполагает ряд действий персонажа, что позволяет в полной мере использовать редактор Unity для управления поведением врага и его реакцией на игрока. Выделите объект BasicFoe, нажмите кнопку Add Component (Добавить компонент) и выберите пункт New Script (Новый сценарий), чтобы добавить компонент AIBrain. Откройте соответствующий сценарий в Visual Studio и добавьте следующие члены класса: #region ** члены класса ** // текущий набор действий искусственного интеллекта UnityEvent _curAIDirective; [SerializeField, Tooltip("События по умолчанию для данного ИИ.")] UnityEvent _defaultActions; [SerializeField, Tooltip("События при получении предупреждения.")] UnityEvent _alertedActions; [SerializeField, Tooltip("События при охоте на игрока.")] UnityEvent _huntActions; [SerializeField, Tooltip("Misc-паттерны движения искусственного интеллекта.")] public UnityEvent _miscPattern1Actions; public UnityEvent _miscPattern2Actions; public UnityEvent _miscPattern3Actions; // таймер для приостановки работы логики искусственного интеллекта float _pauseTimer = 0; // необходим быстрый доступ к объекту игрока PlayerController _playerObject = null; #endregion Прежде всего, стоит отметить новую пару тегов: #region и #endregion. Они оборачивают область кода, который может быть свернут в Visual Studio. Обратите внимание на небольшую рамку со знаком «минус» рядом с тегом #region (рис. 8.2). При нажатии на эту кнопку все члены класса сворачиваются в одну строку. Теги #region и #endregion — важный инструмент для организации длинных сценариев. Также обратите внимание на несколько членов класса UnityEvent. В них будут храниться действия, связанные с различными состояниями искусственного интеллекта, о которых мы поговорим в следующем разделе.


222 Глава 8 Рис. 8.2. Для сворачивания блока кода используйте значок [-] рядом с тегом #region. Так ваши длинные сценарии станут удобнее для чтения Последние несколько членов класса относятся к приостановке работы искусственного интеллекта и сохранению объекта игрока. Член _pauseTimer используется для приостановки движения любого противника, позволяя игроку среагировать на ситуацию. Член _playerObject кеширует информацию об игроке для быстрого извлечения. Это связано с тем, что практически каждое решение искусственного интеллекта основано на расположении и статусе игрока. В каком направлении двигаться, патрулировать или преследовать, стрелять из оружия — все это зависит от расположения игрока по отношению к противнику. Получение данных об игроке в каждом кадре в сценариях искусственного интеллекта противника — это дополнительная вычислительная нагрузка, которую лучше потратить на принятие разумных решений. Добавив члены класса, давайте подключим необходимые функции. private void Start() { // нахождение объекта игрока в сцене _playerObject = GameObject.FindObjectOfType<PlayerController> (); // установка действий по умолчанию _curAIDirective = _defaultActions; } void Update() { if (UpdatePausedAI()) return; _curAIDirective.Invoke(); } bool UpdatePausedAI() { if (_pauseTimer > 0) { _pauseTimer -= Time.deltaTime; _pauseTimer = Mathf.Max(_pauseTimer, 0f); } return (bool)(_pauseTimer > 0f); }


ГЛАВА 9 Создание системы вооружения При создании видеоигр разработчики выражают действия игрока глаголами. Бежать, прыгать, говорить, планировать, искать, строить — каждый из них выражает свою систему игрового процесса, формирующую опыт игрока. От глаголов, касающихся боевых действий, кровь игрока начинает бурлить. Стрелять, уклоняться, перезаряжать, колоть, резать, блокировать. Игра с глубоко продуманной и увлекательной боевой системой сразу же повышает уровень адреналина в организме игрока и погружает его в игру. Нет серьезнее ставки, чем «убей или будешь убит». И если в платформерах вполне себе срабатывают «прыжки по головам врагов», здесь мы рассмотрим другой способ уничтожения врагов: оружие. Благодаря гибкой системе вооружения мы можем создавать самые разнообразные виды оружия, которые можно использовать в борьбе за победу. Содержание главы В этой главе мы рассмотрим следующие темы: Категории оружия Сцена-песочница для тестирования оружия Ближний бой Экипировка героя Оружие дальнего боя Эффект отбрасывания Анимация атаки Шлейфы Продвинутые боевые приемы


238 Глава 9 Цель главы В этой главе вы создадите несколько объектов и сценариев, связанных с боем, и обучитесь различным аспектам видеоигрового боя. У вас появится оружие ближнего боя, поражающее врагов в непосредственной близости от игрока, и дальнего боя — убивающее врагов на расстоянии. Также разработаем для атак новую систему запуска анимаций — они будут выбираться в зависимости от типа оружия в ваших руках. К концу главы вы освоите как практические навыки работы с боевыми системами, так и несколько передовых концепций проектирования, которые вам пригодятся при планировании боевых действий в своих собственных проектах. Палки и камни С тех пор как наши предки научились размахивать палками и бросать камни, оружие можно разделить на две основные категории: оружие ближнего и дальнего боя. То же самое справедливо и для видеоигр — большинство видов оружия относится к этим двум категориям, каждая из которых имеет свои определенные преимущества и недостатки. Таблица 9.1. Преимущества и недостатки сражения оружием ближнего и дальнего боя Преимущества Недостатки Ближнего боя • Проще нанести удар. • Физическая сила и ловкость определяют наносимый урон • Ближе к опасности Дальнего боя • Безопаснее атаковать с расстояния. • Физическая сила обычно не играет ключевой роли (оружие может использоваться без прокачки этой характеристики) • Важна точность прицеливания (проще промахнуться). • Ограниченный боекомплект В большинстве игр используются оба типа оружия. В шутерах от первого лица, как правило, обилие снарядов, но в случае, если у игрока закончатся снаряды, он сможет воспользоваться одним из оружий ближнего боя. В фэнтезийных играх представлен не только широкий ассортимент оружия ближнего боя (мечи, копья, булавы, молоты и т. д.), но и луки со стрелами и магические свитки, чтобы предоставить игрокам множество вариантов ведения боя. Сцена-песочница для тестирования оружия Для организации проекта давайте создадим еще одну сцену-песочницу — на этот раз для тестирования оружия. Создайте сцену с именем WeaponSandbox.


Создание системы вооружения 239 В качестве поверхности используйте плиту, выполнив команду меню 3D Object (3D-объект) | Plane (Плита). Назначьте созданному объекту материал matBlack, чтобы он был хорошо виден. Настройте его положение и масштаб согласно значениям свойств, перечисленным в табл. 9.2. Таблица 9.2. Значения свойств Position и Scale объекта Plane поверхности Plane Position (Положение) X 0 Y 0 Z 0 Scale (Масштаб) X 3 Y 3 Z 3 Также необходимо поместить в сцену префаб сферы героя. Отобразив героя, мы с легкостью можем вписать создаваемое оружие в масштаб игры. В противном случае создаваемые объекты могут получиться слишком большими или, наоборот, маленькими для вооружаемых персонажей. Разместите игрока согласно значениям свойств, перечисленным в табл. 9.3. Таблица 9.3. Значения свойства Position объекта героя PlayerObj_Sphere Position (Положение) X -3 Y 0.5 Z 0 Как и все песочницы, WeaponSandbox представляет собой пустую сцену, в которой мы будем создавать оружие. После того как сцена приобретет вид, показанный на рис. 9.1, вы готовы к вооружению! Создадим прототипы моделей оружия. Начнем с использования объектов 3D Cube (3D-куб) для создания оружия ближнего боя — меча. Рис. 9.1. Сцена WeaponSandbox должна выглядеть следующим образом


ГЛАВА 10 Звуковое сопровождение Когда речь идет о создании хорошей видеоигры, один из самых недооцененных аспектов — звуковое сопровождение. В то время как графика отвечает за захватывающий визуальный ряд, а игровой процесс — повышает адреналин, именно музыка и звуковые эффекты определяют эмоциональное воздействие игры. Музыка для видеоигр охватывает все направления: от AAA-игр до инди-хитов. Вспомните отмеченную наградами инди-игру Undertale. Простая графика, продуманный игровой процесс, отражающий моральные выборы игрового персонажа, но именно такие композиции, как Heartache, Hopes and Dreams и Megalovania, находят глубокий отклик у игроков. Композиция Theme of Love из игры Final Fantasy 4 компании Squaresoft включена в учебную программу 6-го класса в Японии. С удовольствием слушая оркестровые версии музыки из видеоигр, игроки ностальгируют, погружаясь в детские воспоминания. Давайте рассмотрим инструменты Unity, необходимые для создания запоминающегося звукового сопровождения игр. Содержание главы В этой главе мы рассмотрим следующие темы: Аудиокомпоненты Импорт музыки и звуковых эффектов Создание музыкальной системы Основы объемного звучания Объемные звуки для предметов Объемные звуки для оружия Обработка звука Поддержка разных платформ


Звуковое сопровождение 261 Цель главы В этой главе мы подробно рассмотрим компоненты Unity Audio. Мы реализуем систему воспроизведения музыки и необъемных звуковых эффектов. А также рассмотрим объемные звуки для создания необходимой атмосферы в игре. Аудиокомпоненты Аудиосистема Unity очень проста. Существуют объекты Listener (Слушатель), слушающие звуки, и объекты Source (Источники), издающие звуки. Аудиослушатель Главный компонент, связанный со звуком, — это Audio Listener (Аудиослушатель). У него нет настраиваемых свойств — поместив его на игровой объект, вы определяете его как «слушатель», как показано на рис. 10.1. Когда объект приближается к источнику, звук становится громче. Рис. 10.1. Объект Main Camera по умолчанию содержит компонент Audio Listener В Unity также учитывается относительное расположение слушателя и источника для балансировки выходного сигнала канала. Например, если монстр рычит справа от слушателя, то звучать будет преимущественно правый динамик. Источник звука Хотя объект-слушатель и ключевая часть аудиосистемы, именно компонент Audio Source (Источник звука), воспроизводит звуковые и музыкальные файлы в игре. Игровой объект, к которому добавлен компонент источника звука, как показано на рис. 10.2, будет издавать звук в своей позиции. Если у компонента Listener (Слушатель) нет настраиваемых свойств, то у компонента Audio Source (Источник звука) их, наоборот, много, как показано в табл. 10.1. Их важно освоить, поскольку с помощью этих свойств вы будете управлять музыкой и звуком, воспроизводимыми в игре.


262 Глава 10 Рис. 10.2. Компонент Audio Source Таблица 10.1. Компонент Audio Source поддерживает множество свойств для совершенствования звукового сопровождения игры AudioClip (Аудиофрагмент) Имя воспроизводимого звукового файла Output (Выход) Группа аудиомикшера (Audio Mixer Group), через которую воспроизводится данная запись. Микшерные группы позволяют настраивать и изменять звук с помощью различных регуляторов и эффектов Mute (Заглушение звука) Переключатель, используемый для отключения звука на выходе данного источника звука. Обратите внимание, что отключение звука не влияет на производительность (т. е. заглушенный звук продолжает воспроизводиться без звука) Bypass Effects (Обход эффектов) Используется для включения/выключения всех эффектов микшера, применяемых к данному источнику Bypass Listener Effects (Обход эффектов слушателя) Используется для включения/выключения всех эффектов слушателя Bypass Reverb Effects (Обход эффектов реверберации) Используется для включения/выключения всех эффектов реверберации Play on Awake (Воспроизвести при пробуждении) Установите этот флажок для всех звуков, которые должны воспроизводиться в момент пробуждения объекта. Если флажок сброшен, то для воспроизведения звука необходимо настроить сценарий Loop (Зацикливание) Должен ли файл начать воспроизводиться снова, доиграв до конца? Priority (Приоритет) Приоритет воспроизведения звука, от 0 (наибольший) до 256 (наименьший). Если воспроизводится слишком много звуков, Unity их начинает отсекать, начиная с наименее приоритетных


Звуковое сопровождение 263 Таблица 10.1 (окончание) Volume (Громкость) Громкость аудиофайла. Для объемных звуков и музыки определяет громкость, когда объект-слушатель находится на расстоянии 1 единицы (1 м) от источника Pitch (Тон) С помощью этого ползункового регулятора можно изменять высоту тона аудиозаписи, повышая/понижая ее Stereo Pan (Стереопанорама) Определяет динамик, из которого исходит звук (только для необъемных звуков) Spatial Blend (Смешивание в пространстве) Должен ли аудиофайл воспроизводиться в моно/стереорежиме, объемном пространстве или нечто среднее. В целом звук пользовательского интерфейса и музыка будут необъемными, а все остальные звуки — объемными Reverb Zone Mix (Микширование зон реверберации) Насколько сильно данный источник звука подвержен влиянию зоны реверберации Источники музыки и звуковых эффектов Доступно несколько способов получения музыки и звуков для игры. Наём музыканта Если вам нужна отличная, уникальная музыка для вашей игры, то лучшего варианта, чем аутсорсинг, не найти. Нанимая музыканта для совместной работы, вы, возможно, потратите больше денег, но зато будете уверены, что музыка в вашей игре соответствует вашему ви´дению и, что самое главное, будет уникальна. Библиотеки Royalty Free Существует множество платных библиотек с готовыми музыкальными циклами и звуковыми эффектами, доступными без авторских отчислений. Использование таких аудиофайлов позволит сэкономить средства и добавить в игру высококачественное звуковое сопровождение. Бесплатные аудиофайлы Если вам не хватает денег, то на различных сайтах, посвященных разработке игр, можно найти большой ассортимент бесплатной музыки и звуковых эффектов с лицензией Creative Commons. Хотя вы и сэкономите по максимуму, недостаток заключается в том, что бесплатная высококачественная музыка, скорее всего, используется в других бесчисленных проектах. Магазин Unity Asset Store Отличным источником ассетов для игр служит магазин Unity Asset Store (рис. 10.3). Помимо музыки и звуковых эффектов, на этой площадке продается широкий


264 Глава 10 спектр ассетов разных авторов, которые вы можете использовать в своих играх — и даже шаблоны игр! Для наших целей мы начнем с этого места в поисках музыки для привязки к игре. Рис. 10.3. Unity Asset Store (assetstore.unity.com) — площадка, где авторы могут продавать музыку, модели и игровые системы Unity Asset Store — это веб-ресурс, доступ к которому можно получить с помощью браузера. Для поиска музыки для игры нужно выполнить следующие простые шаги: 1. Откройте веб-браузер и перейдите по адресу https://assetstore.unity.com/. Оставьте программу Unity работающей в фоновом режиме, чтобы при выборе ассетов они автоматически загружались в проект. 2. В верхней строке поиска ассетов (Search for Assets) введите Music and Sounds (Музыка и звуки) и нажмите клавишу <Enter>. В правой части открывшейся страницы в разделе Pricing (Цены) установите флажок Free Assets (Бесплатные ассеты) (хотя поддержка авторов платной музыки также приветствуется). 3. Теперь вы увидите несколько страниц с бесплатными аудиофайлами (рис. 10.4). Хотя разнообразие и радует, прослушивать все файлы утомительно. Отфильтруйте результаты по рейтингу (Ratings), чтобы отображался только контент с наивысшим рейтингом, как показано на рис. 10.5. 4. На этом этапе вам предстоит выбрать музыку, которую захочется добавить в проект. Прослушайте несколько ассетов и выберите понравившиеся (рис. 10.6). 5. Кнопка Add to My Assets (Добавить к моим ассетам) (рис. 10.6) открывает панель с предложением открыть пакет в Unity. Нажмите кнопку Open in Unity (Открыть в Unity), чтобы начать процесс импорта (рис. 10.7). 6. После перехода в Unity откроется менеджер с выбранным пакетом ассетов. Нажмите кнопку загрузки (Download) в нижнем правом углу, чтобы загрузить пакет в свой проект (рис. 10.8).


ГЛАВА 12 Системы частиц Несомненно, в популярных видеоиграх в равной степени сочетаются игровой процесс и графика. Веселый, увлекательный интерактив в сочетании с продуманным, уникальным визуальным оформлением привлечет и заинтересует игроков. Эффекты частиц (Particle Effects) — прекрасный пример такого синтеза: сочетание графики и анимации позволяет продемонстрировать игрокам силу атаки, таинственность места или привлечь внимание игрока к чему-то важному. Существует множество способов использования частиц в игре, и мы рассмотрим некоторые из них. Содержание главы В этой главе мы рассмотрим следующие темы: Обзор эффектов частиц Системы частиц Эффекты окружающей среды Эффекты оружия Эффекты взрывов Другие примеры Цель главы В этой главе вы узнаете о системе частиц Unity — способе создания различных эффектов для разных ситуаций. Для начала мы создадим несколько простых эффектов частиц окружающей среды, чтобы изучить их основы. Затем перейдем к эффектам оружия и взрывов по мере освоения более сложных приемов. В конце главы мы загрузим несколько дополнительных примеров и ресурсов для изучения, чтобы получить полное представление о том, почему и как системы частиц могут быть использованы в разработке игр.


316 Глава 12 Обзор эффектов частиц Системы частиц используют множество мелких изображений или меш-объектов, создаваемых с различными размерами, формами, скоростью и цветом, для создания целостного и динамичного визуального эффекта. Основополагающие навыки, полученные в главе 7, будут иметь здесь решающее значение, поскольку создание визуальных эффектов — это упражнение по гибкому использованию фигур, скорости, времени жизни и цвета для создания желаемого эффекта. Возьмем, к примеру, эффект костра. Вам понадобятся частицы, представляющие собой мерцающее пламя, шлейф дыма и несколько угольков, которые иногда взлетают от лепестков пламени (рис. 12.1). Рис. 12.1. Пожары и взрывы — отличное применение системы частиц Каждый из этих слоев имеет свой внешний вид. Пламя состоит из частиц «горячих» цветов (белых, желтых, красных), в основном остающихся на месте и время существования которых составляет менее секунды. В дыме используются прозрачные серые и черные частицы для создания туманного шлейфа, поднимающегося от пламени. Наконец, вам понадобятся угольки: маленькие, ярко мерцающие искры, которые разлетаются в стороны от костра. Любой эффект, который вы хотите создать, можно разбить на части, а система частиц Unity предоставляет все необходимое для воплощения этих эффектов в жизнь.


Системы частиц 317 Заполнение трехмерного пространства При создании интересного, атмосферного 3D-окружения частицы можно использовать различными способами, чтобы придать ему индивидуальность. Туманные облака на болоте, пепел и угли вокруг вулкана или пыльные бури в пустыне — всё это может быть создано с помощью систем частиц. Нашу сцену, поскольку она представляет собой дружелюбную лесную полянку с травой, мы заполним плавающими частицами, которые представляют собой пыльцу и пыль, наполняющие воздух, и часто мы этого даже не замечаем. Создайте объект с именем ParticleFX_DustMotes и поместите его рядом с героем, как показано на рис. 12.2. Рис. 12.2. Создание эффекта частиц начинается с пустого объекта После размещения объекта необходимо добавить к нему компонент Particle System (Система частиц). После успешного размещения компонента вы увидите несколько розовых квадратиков, излучаемых из центра объекта (рис. 12.3). Из списка свойств видно, что эффекты частиц могут быть очень сложными. Чтобы добиться нужного эффекта, необходимо тонко настраивать значения. Упрощает этот процесс маленькая панель эффектов частиц (Particles), расположенная в углу панели Scene (Сцена), позволяющая управлять воспроизведением непосредственно в редакторе. В этой панели есть несколько полезных свойств, перечисленных в табл. 12.1. Таблица 12.1. Панель Particles содержит все необходимые свойства для воспроизведения, приостановки и отладки выбранного в данный момент эффекта частиц Pause/Restart/Stop (Пауза/Перезапуск/Остановка) Кнопки для управления воспроизведением выбранного эффекта Playback Speed (Скорость воспроизведения) Скорость моделирования частиц. По умолчанию значение равно 1.0, но может быть подстроено на лету Playback Time (Длительность воспроизведения) Сколько времени существует частица. Этот свойство также позволяет настроить паузу в определенный момент


318 Глава 12 Таблица 12.1 (окончание) Particles (Частицы) Количество частиц, отображаемых в данный момент Simulate Layers (Симуляция слоев) Настройте это свойство для автоматического воспроизведения эффектов данного слоя Resimulate (Немедленная симуляция) При установке этого флажка Unity будет немедленно применять изменения системы частиц к уже созданным частицам Show Bounds (Показать границы) Отображает желтый прямоугольник вокруг границ эффектов частиц, воспроизводимых в данный момент Show Only Selected (Отображать только выбранные) Сокрытие невыделенных частиц пригодится для сложных составных эффектов Рис. 12.3. Добавление компонента Particle System с настройками по умолчанию. Розовые квадратики формируют базис эффекта Начнем с организации правильного движения пылинок. Обратите внимание, что в данный момент частицы испускаются из одной точки, а затем движутся наружу. Это связано с тем, что для эмиттера в раскрывающемся списке Shape (Форма) выбрано значение Cone (Конус). При использовании эффектов окружающей среды область заполняется частицами, испускаемыми эмиттером кубической или сферической формы. В раскрывающемся списке Shape (Форма) одноименной группы элементов управления измените вариант с Cone (Конус) на Box (Куб) (рис. 12.4). Для эффектов окружающей среды нужно увеличить форму частиц, поэтому присвойте свойству Scale (Масштаб) значение 20, 20, 20. Присвойте также свойству Randomize Direction (Случайность направления) значение 1, чтобы система частиц испускала каждую частицу в новом направлении. Самый момент для удобства отключить неиспользуемые сейчас эффекты. Давайте отключим эффекты постобработки, чтобы просмотреть, как изменение свойства Shape (Форма) влияет на расположение и движение частиц (рис. 12.5).


ГЛАВА 13 Прогресс игрока Видеоигры — это интерактивный способ проведения игрока по пути от неизвестного к известному и в конечном счете к мастерству. Игроки начинают игру с ограниченными знаниями об игре, правилах и мире, но к концу игры они овладевают ими и добиваются победы. Это развитие — от ученика до профессионала — называется прогрессом игрока. Разрабатывая уровни своего игрового мира, именно вы должны научить игрока всему, что необходимо для достижения победы. Как ориентироваться в пользовательском интерфейсе. Как взаимодействовать с миром. Как общаться с дружественными персонажами и отбиваться от врагов. Вам нужно помочь игроку получить необходимые знания и навыки, дать ему инструменты, необходимые для решения возникающих задач. В каждой игре управление прогрессом осуществляется по-своему, но все же есть несколько фундаментальных концепций, применимых в любом жанре. Независимо от того, создаете ли вы платформер, стратегию, ролевую игру (RPG) или головоломку, крайне важно понять и освоить эти концепции. Разработка игр — это не только создание увлекательных и интересных игр, но и обучение и тестирование: формирование убедительного опыта взаимодействия, чтобы игрок смог уверенно пройти путь от ученика до мастера. Содержание главы В этой главе мы рассмотрим следующие темы: Кривая сложности Адаптация игрока Обучение игрока Режим обучения Проверка навыков игрока Мастерство познания


346 Глава 13 Деревья прогрессии Достижения Новая расширенная игра Карта мира Цель главы В этой главе мы познакомимся с различными способами направления игрока по ходу игры. Мы рассмотрим концепцию кривой сложности и различные способы ее использования для опыта взаимодействия, при котором чередуется обучение и проверка навыков игрока. Рассмотрим некоторые особенности проектирования уровней, представим игроку новую игровую механику, а затем повысим уровень сложности. Мы также рассмотрим другие теории и применимые системы (ритмизацию, адаптацию, карты мира), которые обеспечат вас всеми необходимыми инструментами для разработки отличной игры с продуманным прогрессом игроков. Кривая сложности При рассмотрении вопроса о прогрессе игроков и последующем балансе между обучением и проверкой их навыков одним из наиболее важных понятий считается кривая сложности. Это ментальная модель, в которой мы сопоставляем время, затраченное на игру, со сложностью уровня, области или задачи. Ранние испытания должны быть значительно менее сложными, чем финальные (в конце игры), но перед игроком всегда должно быть увлекательное препятствие, которое нужно преодолеть. Это непростой, но жизненно важный навык в области разработки игр. Начнем с самой простой из кривых сложности — линейной прогрессии. В этом случае игрок будет постоянно иметь дело с набором задач, постепенно усложняющихся по мере игры, как это показано на рис. 13.1. Постепенное, неуклонное продвижение от «легких» задач к «сложным» можно считать отличной отправной точкой, но такое непрерывное нарастание сложности может оказаться изнурительным. Ситуацию можно исправить, чередуя небольшие Рис. 13.1. Линейная кривая сложности, где каждая точка — это «уровень». Обратите внимание, что ранние уровни легче, чем поздние


Прогресс игрока 347 периоды сложности с периодами отдыха. Это так называемые «пики и долины», как показано на рис. 13.2, — отличный способ превратить медленное продвижение в нечто ритмичное и интересное. Рис. 13.2. Кривая сложности с «пиками и долинами», с чередующимися моментами нарастания сложности и отдыха Важно помнить, что, хотя приведенная выше схема — хороший, универсальный шаблон, которому вполне можно следовать, каждая игра должна быть индивидуальной. Возможно, вы захотите, чтобы в вашей игре был большой скачок сложности, а может быть, запланированное, довольно долгое затишье перед напряженным участком. Если ваша игра построена на сюжете, то вам потребуется часто вводить пики сложности, которые будут сопровождать ту или иную главу истории. Например, приключение со структурой, включающей три акта или главы, может иметь кривую, похожую на изображенную на рис. 13.3. Рис. 13.3. Вы можете использовать скачки сложности, чтобы обозначить конец главы или акта Кривая сложности — отличный наглядный инструмент предполагаемого развития игрока в вашей игре, но, к сожалению, это концепция, которую нелегко реализовать в виде неких данных. Не существует плагина Unity, принимающего кривую сложности и выстраивающего на ее основе игру, сложную на пиках и легкую в долинах. Однако существуют правила разработки игр, напрямую связанные с концепцией «Пики и долины», к которым мы вскоре перейдем. О поддержании интереса игроков Способность вашей игры поддерживать интерес игроков напрямую зависит от баланса, достигнутого с помощью кривой сложности. Если в самом начале игры человек


348 Глава 13 сталкивается с безумно высокой сложностью, он быстро покинет ее, разочаровавшись. Верна и обратная сторона. Если игра слишком проста и игрок не ощущает удовлетворения от преодоления интересных трудностей, то он уйдет, чтобы найти более напряженную игру. Хорошо сбалансированная кривая сложности поддерживает интерес игроков. Управление сложностью Управление кривой сложности — концепция, имеющая смысл на бумаге, может быть легко нарушена на практике, особенно если вы работаете в одиночку. Со временем переигрывание одних и тех же начальных уровней становится и простым, и однообразным. Вы склоняетесь к тому, чтобы поднять сложность этих начальных уровней до чего-то более интересного — мы не можем допустить, чтобы первые 10 минут были скучными, поэтому уровни нужно усложнять, верно? Неверно! Изменение этих уровней было бы неправильным выбором. Никогда не следует соотносить сложность игр с мастерством человека, создающего игру. Всегда вносите изменения только после нескольких сеансов игрового тестирования сторонними тестировщиками. Большинство игроков не имеют опыта взаимодействия с вашей игрой на ранних этапах, поэтому настраивайте сложность только на основе отзывов этой категории пользователей. В главе 18 мы подробнее рассмотрим игровое тестирование, а также еще один полезный инструмент для определения прогресса игрока: аналитику. Адаптация и обучение игрока Разрабатывая игры, крайне важно убедиться, что ваши системы, механика и пользовательский интерфейс понятны игроку. Вплотную занимаясь проектом, легко принять некоторые моменты как интуитивно понятные: какие кнопки нажимать, в каком направлении двигаться, как выполнить то или иное сложное действие. Однако начинающим игрокам интуиции может не хватить, и игра принесет разочарование. И если есть один железобетонный способ заставить игроков отказаться от вашей игры, то это разочарование. Существуют два простых способа решения задачи «обучения» игрока: адаптация и обучение. Для объяснения игроку, как взаимодействовать с игровым миром, в рамках адаптации используются игровые подсказки и текст. В них все понятно написано, и часто они привязаны к персонажу-«советнику», который проводит игрока через первые шаги. И хотя эти подсказки полезны, они могут быстро надоесть. Убедитесь, что игрок может отключить режим адаптации, и вообще знакомство должно появляться только на начальных этапах вашей игры. Объяснив основы, оставьте игроку несколько загадок, чтобы он разгадал их самостоятельно. Протестируйте игру, чтобы определить, когда режим адаптации стоит отключать.


Click to View FlipBook Version