Текст книги "Хочу в геймдев! Основы игровой разработки для начинающих"
Автор книги: Вячеслав Уточкин
Жанр: Программы, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 6 (всего у книги 15 страниц)
Выбор игрового движка
Если с планированием более или менее определились, пора переходить к важному техническому решению – выбору игрового движка.
Термины «игровой движок» и «игра» тесно переплетены, разработчики могут по-разному понимать границы между ними. Мы будем рассматривать игровой движок как базовое программное обеспечение, пригодное для повторного применения и расширения, служащее основой для создания различных игр.
Игровые движки в современном понимании зародились в середине 90-х. В то время инди-разработки как таковой практически не было, созданием игр занимались более или менее профессиональные компании – хотя, конечно, по современным меркам многие из них были инди. Каждый движок делался под специфический жанр или игру.
Если вы делаете игры с похожими механиками, каждый раз создавать движок с самого начала неэффективно. Поэтому было решено отделить саму базовую игровую логику и просто дополнять ее необходимыми для каждой конкретной игры элементами.
От текстовых адвенчур (Adventure Construction Set, 1984, или Graphic Adventure Creator, 1985, и др.) разработчики игр постепенно перешли к созданию шутеров. Именно после появления Doom (созданного на легендарной серии движков id Tech от id Software, развитие которой продолжалось более 25 лет – от id Tech 1 в Doom, 1993, до 7-й версии, использованной для Doom Eternal) термин «игровой движок» приобрел современное значение.
Теперь игровая логика и механики отошли на второй план; новые технологии ценились за честную картинку, которой раньше не было, физику и возможности рендера (визуализации). Удачное сочетание центральных компонентов игры (подсистем графики, звука, расчета столкновения объектов и других) позволило создавать новые проекты на базе готового игрового движка, что сильно сократило время разработки.
Позже появились движки Unreal Engine (1998, первая разработанная игра – шутер от первого лица Unreal) и CryEngine (2002, первоначально используемый для создания Far Cry), позволяющие воспроизводить топовую графику. Они были довольно сложными и стоили сотни тысяч долларов, так что пользоваться ими могли в основном только сотрудники крупных игровых компаний.
В то время самостоятельно издавать игры было очень тяжело: следовало договориться с магазинами о размещении дисков, а прилавок обычного магазина, в отличие, например, от Steam, физически не может вместить все выпускаемые игры. По этой же причине разрабатывать нишевые игры с небольшой аудиторией поклонников было сложно.
Только с появлением цифровой дистрибуции и развитием рынка мобильных игр разработчики получили возможность знакомить со своими играми широкую аудиторию. Теперь современные движки стали удобным инструментом создания самых разных игр. Сначала Unity, а позже CryEngine и Unreal Engine стали условно бесплатными, что сделало эти движки доступными практически для любых разработчиков.
Сегодня в базе игровой движок дает «строительные кубики», из которых собирается игра, а также большой выбор инструментов, облегчающих жизнь разработчика. Вам не придется изучать множество материалов по программированию, однако совсем без таких навыков гейм-дизайнеру будет непросто. Зная, как работать хотя бы с одним языком программирования, вы относительно легко сможете переключиться на другой. Если писать код вы не хотите, все равно вам придется составлять техническое задание своим программистам, а значит, вы должны хотя бы в общих чертах понимать, какие методы они могут использовать для решения различных задач. В общем, в этой области знания нужно будет подтянуть. Существует очень много вариантов для визуального программирования, облегчающих жизнь разработчика. Если сегодня вы можете работать только, например, с блупринтами[42]42
. Блупринты (от англ. blueprints) – это система визуального программирования в игровом движке Unreal Engine.
[Закрыть] Unreal Engine или в GameMaker[43]43
. GameMaker – простой игровой движок, не требующий навыков программирования.
[Закрыть], это лучше, чем ничего.
ЧТО ДАЕТ ИГРОВОЙ ДВИЖОК
• Главное достоинство любого движка – эффективный рендеринг графики, позволяющий сократить время разработки.
• Движок задает базовую физику, например гравитацию, так что не нужно самому вспоминать законы Ньютона; у предметов уже есть параметры того, как они должны лежать, падать и т. п. Системы моделирования взаимодействия игровых объектов помогают правильно определить, попала ли пуля во врага, если это шутер, или как колеса автомобиля сцепляются с дорогой в гонках.
• Также движок часто дает сетевой протокол. Если мы делаем онлайн-игру, где один игрок стреляет в другого, информация об этом уйдет на сервер, где результат будет посчитан, обработан и отправлен игрокам.
• Движок дает систему искусственного интеллекта. Например, можно определить, как монстры будут перемещаться, бегать группами, атаковать игрока и т. д.
• Сегодня движки ценятся за кросс-платформенность, то есть за возможность разрабатывать с их помощью игры разных жанров для разных платформ (PC, PlayStation, Xbox, Nintendo Switch, iOS, Android пр.). Чем больше устройств смогут поддерживать вашу игру, тем больше людей будут иметь возможность ее оценить.
• Как правило, в движке есть средства для создания игрового контента. Вы найдете множество инструментов для моделлеров, аниматоров, художников по окружению, тестировщиков и других членов команды.
• Некоторые движки дают средства для разработки игровой логики. Если вы хотите, чтобы, открывая какую-то дверь, игрок сталкивался с монстром, достаточно прицепить к двери триггер события «открытие», а к монстру – действие «появиться». Гейм-дизайнер без специальных знаний программирования с помощью понятного интерфейса сможет собрать игровую логику. Хотя есть движки, требующие написания кода для добавления таких триггеров.
• Часто движки дают средства оптимизации и отладки, возможность проверить проект на ошибки и увидеть, на какие части игровой логики или рендеринга тратится больше всего времени.
• Важное преимущество готовых движков – комьюнити. Вы всегда сможете узнать у техподдержки или у других пользователей, как сделать то, что вам необходимо. Чем больше комьюнити, тем проще найти готовое решение.
• Отдельно нужно отметить наличие у движков магазинов с платными и бесплатными готовыми решениями: системой оплаты, библиотеками для работы с физикой и др. Например, Unreal Engine часто дает пользователям бесплатные функции, будь то система красивых аутлайнов[44]44
. Аутлайн – контур вокруг игровой сущности (предмета или персонажа).
[Закрыть], физика пробивания пулей различных материалов или генерация правдоподобного леса. Разработчики Unity, имея примеры готовых игр в магазине, выкладывают новые наработки под свободными лицензиями.
КАК ВЫБРАТЬ ИГРОВОЙ ДВИЖОК
Выбор игрового движка – это принципиальное техническое решение, его смена в процессе разработки практически невозможна. Обычно решиться на такой радикальный шаг может подтолкнуть только какая-то глобальная катастрофа, например понимание, что изначально принято неверное решение о выборе движка и игру просто не получится доделать на текущем. Переделывать придется очень многое или почти все, поэтому стоит со всей ответственностью подойти к этому вопросу.
Конечно, обладая навыками программирования, вы можете сами написать код движка. Крупные компании, работающие над экспериментальными решениями и имеющие специалистов должного уровня, нередко выбирают такой путь. Но нужно помнить о том, что это очень дорого. Многие движки, особенно создаваемые для сложных комплексных игр, разрабатывались с бюджетами в 10–20 миллионов долларов, то есть стоили как полноценная ААА-игра[45]45
. ААА – неформальный термин для обозначения самых высококлассных, высокобюджетных игр, рассчитанных на массовую аудиторию. Аналогично «блокбастеру» в киноиндустрии.
[Закрыть]. Разработчики новых движков могут рассматривать их как вложение в будущее – для новых игр по франшизе или для продажи.
Для небольших компаний или инди-команд решение самостоятельно создавать движок не имеет экономических преимуществ, но может быть оправданно в случае необходимости каких-то необычных решений, которые невозможно получить, используя готовый вариант. Это могут быть вещи, связанные, например, с воксельной графикой, где важно передать разрушаемость предметов. Для игр типа Minecraft характерно использование собственных движков, так как графика там достаточно примитивная, но предметы должны уметь правильно разрушаться. Или же вы хотите сделать игру с необычным базовым типом геймплея: например, головоломку, где нужно на призмах раскладывать световые лучи в радугу. Если готовые движки не смогут предложить вам готовых решений для передачи оптики, придется создавать эту часть игры своими силами.
Еще один вариант – не делать движок с нуля, а взять наработки опенсорсных (от англ. open-source), то есть выложенных в открытый доступ, движков. Исходный код таких движков доступен всем, и его можно править под свои нужды. Естественно, вам понадобятся опытные программисты, чтобы справиться с такой задачей. Многие популярные современные движки имеют гибкие инструменты для расширения и кастомизации (разной степени сложности и удобства). «Прикрутить» уникальную механику к готовому движку намного легче, чем с нуля создавать свой полноценный движок с аналогичными возможностями.
Если же вы планируете создать игру с более или менее типовым геймплеем, готовые движки сильно упростят задачу. У них есть документация, где всегда можно прочитать, что он умеет или не умеет делать. Самый простой способ узнать, реализует ли выбранный движок ту или иную игровую механику, это изучить его описание или же просто задать вопрос в поисковиках.
Готовые игровые движки можно разделить по двум признакам. Во-первых, по игровой платформе: движки могут быть кросс-платформенными или же подходить только для создания игры под конкретную платформу (мобильные, ПК-игры и т. д.).
Во-вторых, важен жанр создаваемой игры. Существуют игровые движки, так скажем, широкого профиля, поддерживающие игры разных жанров, но есть и специализированные движки, дающие инструментарий для создания, например, визуальных новелл (Ren’Py). Движок, спроектированный для гонок, будет существенно отличаться от движка для MMORPG или стратегии в реальном времени. Но есть и общие вещи: например, трехмерные игры любого жанра требуют системы 3D-рендеринга, взаимодействия с геймпадом, клавиатурой и/или мышью, звукового сопровождения и так далее.
Еще один важный фактор при выборе движка – опыт участников проекта, в том числе языки программирования, которыми они владеют.
МНОГОПРОФИЛЬНЫЕ ДВИЖКИ UNITY И UNREAL ENGINE
Самые популярные игровые движки – это Unreal Engine и Unity.
UNITY развивается с 2005 года. На Unity разработаны тысячи приложений и игр разных жанров на более чем 25 платформах. Его любят как крупные студии, так и инди-разработчики.
Изначально Unity создавался для компьютеров Mac, в следующих версиях добавлялись новые платформы: Windows, IPhone, Android, Xbox, Playstation и другие.
Для написания скриптов движок использует язык программирования C#, считающийся несложным в изучении и работе. В редакторе Unity простой интерфейс, что позволяет легко производить отладку игры. Главными преимуществами Unity считают кросс-платформенность и наличие визуальной среды разработки.
Если выбирать между Unreal Engine и Unity, можно отметить, что последний иногда удобнее для начинающих программистов, он предлагает множество готовых решений и для создания простых игр обычно выбирают именно его. Сообщество Unity считается самым большим (ведь он стал первым бесплатным движком для инди-разработчиков), поэтому, если возникнут какие-то вопросы, вы всегда сможете рассчитывать на консультацию. Однако, если с программированием отношения сложные, Unreal Engine может кому-то показаться более дружелюбным.
Работая с любым движком, сложно добиться ААА-графики в динамике, особенно для консольной игры. Планка качества графики и спецэффектов непрерывно растет, организация совместной работы над огромным количеством внутриигровых объектов усложняется. За последние годы разработчики Unity проделали большую работу для повышения уровня графики, так что сегодня создавать красивые и качественные игры можно на обоих движках.
Большие открытые миры – еще одна сложная задача. Поэтому многие известные игры (Grand Theft Auto, Red Dead Redemption, Metal Gear Solid 5, Horizon: Zero Dawn и другие) сделаны на собственных движках, заточенных под эту техническую задачу. Многие подсистемы Unity не рассчитаны на создание чего-то подобного – к примеру, на организацию большого количества сцен и объектов. В ряде случаев они накладывают серьезные ограничения на размер внутриигрового мира, но их можно обойти с помощью уловок гейм-дизайна. Unity постоянно работает над новыми технологиями для решения таких задач.
Раньше у Unity были сложности с реализацией защиты от читов[46]46
. Чит-код (от англ. cheat code, cheat – «жульничество», «обман») – стороннее ПО для получения нечестного преимущества; иногда отладочный код – код, который может быть введен в программу, чтобы изменить ход ее работы.
[Закрыть]. Считалось, что его игровой клиент легче вскрывается, а значит, для игр, где читерство могло стать проблемой, разработчики задумывались о другом решении. Сегодня при прочих равных взлом игры, разработанной на Unity, не будет проще; компания постоянно работает над укреплением надежности клиент-серверной архитектуры и шифрованием внутриигровых данных. Студии, занимающиеся мультиплеерными проектами, нередко прибегают к сторонним решениям для защиты от читов, например PunkBuster.
Плюсом Unity является модульная система, что позволяет подключать нужные модули физики, рендеринга, аналитики, монетизации и т. д., не выходя из движка.
Unity – один из самых универсальных движков, с его помощью можно создавать игры любого жанра. Он удобен для разработки, например, CRPG с видом три четверти или изометрическим видом (Pathfinder: Kingmaker, Pillars of Eternity и т. п.). Также хорошо использовать Unity для survival-игр (игр про выживание), где обычно не очень большая карта, простая графика и умеренная динамика. Удачные примеры игр на Unity: Hearthstone, Ori and the Blind Forest, Escape from Tarkov; мобильные проекты – Pokemon Go, Super Mario Run и другие.
UNREAL ENGINE выпустила в 1998 году компания Epic Games. Это один из первых универсальных движков, совмещающих физику, рендеринг, искусственный интеллект и готовую среду разработки. Изначально он создавался для работы над шутерами от первого лица, однако последующие версии применяются для игр самых разных жанров. Unreal Engine всегда уделял много внимания впечатляющей картинке, им пользуются и в кинематографе; сегодня он предоставляет продвинутый инструментарий для создания фотореалистичной 3D-графики в реальном времени. Компания Epic Games и сама делает игры на своем движке, в том числе одну из самых зарабатывающих игр в мире, реализованную на всех игровых платформах, – Fortnite.
Преимуществом Unreal Engine является мощная система блупринтов, с помощью которой легко и удобно прорабатывать игровую логику. Блупринты – это скриптовая система, которая представляет собой визуальный интерфейс для создания элементов геймплея. Она позволяет гейм-дизайнерам, вообще не знающим кода, использовать почти полный потенциал программирования. Если вы хотите создавать контент (интерфейс, геймплей, игровые уровни и т. д.) самостоятельно, удобно работать с Unreal Engine, хотя для некоторых вещей классический код остается в приоритете.
А вот если вы планируете использовать много готовых ассетов, это может быть плюсом к выбору Unity, имеющему огромный магазин. Разработчики Unity создали также собственный инструмент визуального скриптинга – Bolt, позволяющий реализовывать игровую логику без ручного ввода программного кода.
Unreal Engine имеет много готовых решений по графике. Он хорошо поддерживает технологии RTX[47]47
. RTX – это технология, создающая реалистичное освещение, тени и отражения на объектах. Теоретически уровень реализма с трассировкой лучей должен быть на порядок выше, чем при традиционных способах рендеринга.
[Закрыть], регулярно выпускает обновления, дающие новые возможности создания впечатляющей картинки. Удобный редактор позволяет прописать игровую логику без специальных навыков программирования, а реалистичная графика, игра света и тени, звуки создают необходимую атмосферу.
Вы всегда можете ознакомиться с актуальными условиями использования движков в открытых источниках и решить, какой из них выгоднее использовать для вашей игры.
Если к открытому миру без загрузок добавляется ААА-графика и большое количество взаимодействия с миром, можно рассмотреть движок CRYENGINE: он как раз стоит на стыке между специализированными и универсальными движками. Kingdom Come: Deliverance, например, сделан именно на нем. У CryEngine тоже есть функционал для визуального скриптования Flow Graph. У этого движка больше требований, поэтому на слабом железе такую игру не запустить, что сразу несколько ограничивает вашу аудиторию. Но опытные команды с его помощью могут создавать по-настоящему масштабные игровые проекты.
СПЕЦИАЛИЗИРОВАННЫХ ДВИЖКОВ тоже довольно много. Они реализуют какой-то конкретный нестандартный запрос лучше, чем универсальные движки. Обычно такой движок умеет только что-то одно, зато очень хорошо, в то время как многопрофильные движки умеют почти все, но на среднем уровне. К примеру, Buildbox прекрасно справляется с задачей создания игр на простых механиках без навыков программирования.
Существуют также ДВИЖКИ ДЛЯ НАЧИНАЮЩИХ РАЗРАБОТЧИКОВ, такие как GameMaker: Studio, Stencyl и др. В отличие от Unity, все-таки требующего каких-то знаний о С#, они вообще не предполагают наличия навыков программирования. Это конструктор, где вы можете собрать игру из готовых частей. Создать новую механику на базе такого движка почти невозможно. Но если разработчики хотят сделать игру дешевле и проще, то это отличный вариант: например, To the Moon была сделана на базе движка RPG Maker. Если у вас стилизованная графика и нет сложного геймплея, то такие готовые движки – хорошее решение. Еще очень удобно использовать их для создания прототипов или игр, которые делаются в рамках гейм-джемов[48]48
. Гейм-джем (от англ. game jam) – сбор разработчиков игр с целью разработки одной или нескольких игр за ограниченный промежуток времени.
[Закрыть].
Также нужно упомянуть о ПРОПРИЕТАРНЫХ (ЗАКРЫТЫХ) ДВИЖКАХ, доступ к которым любому желающему не предусматривается, – например, Frostbite, на котором разрабатывается Battlefield и другие. Они могут быть любой категории: специализирующиеся на одной определенной задаче, общие и т. д. Как правило, такие движки принадлежат какой-то компании, и воспользоваться ими разработчик может только по особым каналам, заключив соответствующее соглашение на использование.
Итак, чтобы сделать выбор, прежде всего нужно отсечь движки, которые не подходят выбранной игровой платформе. Если вы делаете типовой проект, скорее всего, лучшим решением станет выбор универсального движка, Unity или Unreal. Если вам нужны оригинальные решения или игра специфического жанра, посмотрите более специализированные варианты: например, создавать визуальную новеллу лучше на базе специально разработанных для этого жанра движков. Если в вашей команде нет опытного программиста, стоит обратить внимание на движки для начинающих. Если для проекта нужно много программирования, а ваш программист уверенно владеет только C#, имеет смысл выбрать соответствующий движок.
Далее следует определиться с требованиями к качеству графики. Даже инди-команды, используя, например, Unreal, могут рассчитывать на качественную и красивую картинку при наличии хороших моделей. Помните, что пропасть между «отличной» и «просто хорошей» графикой за последние годы сильно сократилась.
Использовать опыт предшественников – тоже хорошая идея. Если у вашей игры есть референсы, логично посмотреть, на каком движке они были созданы, и проанализировать, почему было принято то или иное решение.
Игровые прототипы
Прототипы – это неконечные игровые продукты, создаваемые для того, чтобы проверить свои идеи и ответить на вопросы. Например:
• работают ли наши гипотезы и основные фичи;
• работают ли они так, как мы запланировали;
• играют ли люди в нашу игру так, как мы запланировали;
• может ли понравиться игра нашей аудитории;
• какие части нашей игры вызовут у нас наибольшие сложности.
Создание прототипов позволяет как можно скорее выявить слабые стороны проекта и устранить их. Прототип, созданный с целью ответить на конкретный вопрос или вызов, – самый полезный. «Интересно ли будет играть в мою игру?» – пример плохого вопроса. Лучше: «Как долго сохраняется интерес к основному геймплею?» или «Сколько анимированных объектов в одной сцене в максимальном качестве поддерживает наш движок?» Версия для среза первого впечатления от игры не сможет ответить на вопрос, не будет ли скучно играть пятнадцатую сессию, поэтому следует четко обозначить цель исследования.
ВИДЫ ИГРОВЫХ ПРОТОТИПОВ
ГЕЙМПЛЕЙНЫМИ ПРОТОТИПАМИ называют версию продукта, в которую так или иначе можно поиграть и проверить игровые механики. Например, как работает боевая система или сколько нужно времени, чтобы пробежать конкретный уровень платформера.
Проверяется либо комбинация более или менее стандартных идей, либо жизнеспособность и последствия инновационных решений. Цель здесь – выявить проблемы, над которыми мы по тем или иным причинам не задумывались.
Ответы нужно получить максимально быстро. Если прототип отвечает на поставленные вопросы, абсолютно неважно, в каком качестве он сделан.
Бывают чисто ФУНКЦИОНАЛЬНЫЕ ИЛИ МЕХАНИЧЕСКИЕ ПРОТОТИПЫ, созданные, чтобы проверить гипотезы без каких-либо программ. Это могут быть, например, бумажные прототипы: настольная игра или просто нарезанные листочки бумаги. Таким способом отлично тестируются всевозможные разновидности стратегий и карточных игр.
Если ваша игра про принятие решений и игровую механику, бумажные прототипы – это то, с чего следует начинать. Это экономит кучу времени и сил, ведь выкинуть бумажку и написать новую – намного проще, чем править код.

Рис. 14. Прототипы могут быть даже бумажными!
Этот способ будет вполне эффективным даже для создания прототипов шутеров от первого лица. Если на каждое действие вы выделите своим игрокам определенное количество секунд (с помощью секундомера, например), то сможете пошагово изучить механики даже для игры в реальном времени: сколько шагов или выстрелов в секунду может сделать игрок, какого размера карта нужна для каждого уровня, какой вид оружия эффективен против монстров с разными характеристиками, сколько патронов и здоровья необходимо и так далее.
Если играется хорошо, стоит попробовать собрать прототип в простой игровой системе. С помощью готового игрового движка, разработка на котором будет наименее затратной, проверяем, насколько интересны придуманные нами игровые механики, полностью пренебрегая графикой. На этом этапе стараемся использовать максимум готовых решений: программы и низкоуровневые движки, которые позволяют быстро скомпоновать из ассетов базовый геймплей. Если игра планируется на Unreal Engine 4, прототип для нее все равно вполне можно собирать с помощью Game Maker и аналогичных программ, главное – быстро, просто и дешево; лучше использовать знакомые инструменты, чтобы не тратить время на изучение новых.
Для создания прототипов можно использовать и чисто графические методы (Flash, Figma и пр.), тогда эта работа ложится на плечи художника-дизайнера. Этот метод подходит для игр, где важно проверить, например, как решения игрока влияют на геймплей (в какую сторону он отправился, какой вариант в ветке диалогов выбрал и прочее).
Ради упрощения создания прототипов допустимо срезать целые пласты геймплея. Для комплексных, сложных игр лучше вообще тестировать отдельный функционал и игровые механики.
Когда вы проверяете какие-то инновационные идеи, которые нельзя найти в Unity или Unreal Engine, задача усложняется. Есть несколько вариантов решения этой проблемы.
Если мы хотим протестировать какую-то комплексную систему, можно попробовать использовать наработки предшественников. Допустим, вы хотите добавить в игру механику осады замков. Чтобы оценить, впишется ли фича в игру, уже многое должно быть готово (боевая система, прокачка персонажей). Создавать целую игру, чтобы проверить одну фичу, долго и неэффективно. Стоит постараться найти движок наиболее похожей игры и «прикрутить» туда нужный функционал.
Другая ситуация: сложный технический запрос. Например, гейм-дизайнер задумал сделать жидкого персонажа, который должен правдоподобно перетекать, менять форму, иметь определенные способности и адекватно взаимодействовать с более привычными героями. Такого с помощью готовых решений не соберешь, подыскать подходящую программу может быть проблематично. Обычно над такими нетривиальными задачами трудится отдельный программист, задача которого – максимально быстро написать код нужной нам системы. Такой прототип не ответит на вопрос о стабильности решения или совместимости с полноценным движком, просто нужно в сжатые сроки сформировать и оценить задуманный геймплей.
МАТЕМАТИЧЕСКИЕ ПРОТОТИПЫ создают, чтобы убедиться, правильно ли работают математические расчеты. Причем методы могут быть вообще не связаны с реальной игрой, а работающий над ними специалист может обладать знаниями скорее в области математики, нежели гейм-дизайна.
Чтобы создать АРТ-ПРОТОТИП, необходимо проанализировать игры, которые мы считаем конкурентами, и оценить стандарты индустрии для выбранного жанра. Причем не только сегодня, но и на момент предполагаемого выхода игры. После этого арт-директор и технический художник (или кто-то, выполняющий их функции) принимают решение, графику какого качества мы хотим обеспечить в нашей игре.
Принципиальное отличие от геймплейных прототипов состоит в том, что даже на раннем этапе, когда еще может не быть проработана игровая логика, арт-прототип нужно делать на выбранном движке. Если вы сумели продемонстрировать запрашиваемый уровень графики на CryEngine, нет никаких гарантий, что такую же картинку покажет Unreal Engine 4. Проблемы на данном этапе вполне могут быть аргументом для того, чтобы отказаться от одного движка в пользу другого.
В результате принятых решений необходимо создать арт-прототип – демонстрационную сцену. В зависимости от поставленных задач мы таким образом проверяем, могут ли наши художники красиво нарисовать нужную картинку, или, при другом подходе, оцениваем технические возможности нашего движка, сделав высокополигональную[49]49
. Высокополигональный – состоящий из большого количества полигонов. Полигоны – плоскости, образованные из вершин, из которых состоят 3D-модели. Чем их больше, тем больше нагрузка на рендер.
[Закрыть], но при этом совершенно необязательно красивую, модель.
Такие ТЕХНИЧЕСКИЕ ПРОТОТИПЫ проверяют производительность или технические идеи. В первом варианте методы те же, что и с арт-прототипом, – собрать сложную, нагруженную сцену и посмотреть, как все работает на целевом железе. Это необходимо для понимания, насколько мы сможем оптимизировать игру к моменту запуска. Особенное внимание здесь уделяют сложным сущностям: большому количеству однотипных объектов в кадре, сложным анимационным системам, разрушаемым объектам.
Технические прототипы создаются также для отработки конкретной технической части игры, например сетевого протокола. Допустим, нам нужно проверить, как ведет себя игра при медленном интернете или на слабом компьютере. Для проверки многих технических составляющих существуют готовые решения, так что нет необходимости ехать к бабушке в деревню в поисках старого компьютера или плохого интернет-соединения.
По ходу любой разработки приходят новые идеи и их решения, так что запросы к технической части обычно растут. Здесь есть две крайности, из-за которых могут появиться проблемы. Делая все только по ТЗ и не учитывая возможное расширение функционала, можно столкнуться с ситуацией, когда любое отклонение повлечет за собой коллапс и необходимость переделывать все сначала. Лучше заранее предусмотреть возможность расширения, например, максимального количества участников сессии, или слотов персонажа, или других множимых сущностей.
С другой стороны, стараясь сразу создавать максимальные возможности для любых задумок гейм-дизайнеров или для миллиарда онлайн-игроков, вы, скорее всего, потратите время и силы на нечто, что никогда не будет реализовано. Поэтому, чтобы придерживаться золотой середины, следует провести исследование, выслушать все запросы других специалистов и, проанализировав данные, умножить требования, к примеру, вдвое.
Технические прототипы также часто нужны, чтобы понять, сможем ли мы реализовать ту или иную физическую модель. Физика в играх – вещь для игроков сама собою разумеющаяся: мало кто задумывается о том, как непросто воссоздать реалистичное взаимодействие разных предметов. Скажем, мы хотим, чтобы в нашей игре была возможность честно топить предметы в воде. Необходимо проверить, можем ли мы написать физическую модель, при которой предметы различной массы и плотности станут по-разному тонуть.
Арт и технические прототипы часто объединяют, чтобы убедиться, что, с учетом имеющихся у нас ресурсов, можно создать красивую картинку необходимого качества. Здесь нет никакого геймплея: важно проверить, что самые тяжелые и сложные модели, виды освещения, разные ракурсы и т. д. смотрятся органично, воспроизводятся, как задумано, и ничего не ломают.
Прежде чем запускать полноценный продакшен, имеет смысл протестировать и ПРОТОТИП ИНТЕРФЕЙСА. Его также можно собрать на базе Figma, Flash или другой программы, помогающей предварительно оценить удобство и доступность интерфейса. Его можно собрать даже с помощью бумажных прототипов, хотя это более опасный путь, чем в случае с геймплейными прототипами, так как в этом вопросе большую роль играют именно ощущения. Лучше проводить тесты с реальными размерами, разрешениями и артом, чтобы проверить, как это будет выглядеть в конечном продукте.
Прототипы интерфейсов имеют другие задачи. Прежде всего, тестируется возможность реализации всех задумок в рамках одного экрана, насколько удобно и красиво выглядят наши решения. Во-вторых, проверяем, правильно ли игрок понимает расставленные дизайнерами акценты, насколько просто и быстро он находит нужные ему функции. И, в-третьих, нужно убедиться, не вызывают ли наши решения ненужные паттерны поведения у игрока.
Например, главная часть интерфейса гиперказуальных[50]50
. Гиперказуальные игры – это простейшие игры с затягивающим геймплеем и минималистичным артом, в которые обычно играют только с помощью «тапов» по экрану. У них простые и понятные цели – набрать больше очков, зачистить уровни и так далее.
[Закрыть] игр – это управление. Эти простые по своей сути продукты, сделанные в первую очередь для нон-геймеров[51]51
. Нон-геймеры – пользователи игр, не относящие себя к игрокам или играющие впервые.
[Закрыть], должны предоставить игроку максимально простое и понятное управление. Понятность заключается в использовании исключительно знакомых жестов: это прокручивание, как у ленты мобильных версий социальных сетей, например Instagram, это листание в стороны, клики и удержание касания. Непривычные пользователям жесты, типа двойного клика или многоходового использования кнопок, сильно усложняют продукт для казуальной аудитории.
Что же касается термина «простота в управлении» для гиперказуальных игр, то здесь имеется в виду однокнопочность управления и возможность играть в любом месте. Для этого мы используем вертикальную ориентацию экрана, привычную по мессенджерам. А также не требуем совершать составных действий. К примеру, считается хорошим тоном использовать в игре только одно из двух действий: прицеливание или выстрел. То есть либо игра прицеливается автоматически, а игрок решает, когда стрелять, либо игра стреляет постоянно автоматически, а пользователь лишь выбирает цели.