Читаем Хочу в геймдев! полностью

Сегодня хорошие примеры, как можно направить игрока, – это The Legend of Zelda: Breath of the Wild и God of War. В этих играх нас подталкивают к базовому контенту, но без насилия: точки интереса разложены по локации, есть и сложные задачки, и открытый мир, и боковые ответвления для любителей исследовать игровые миры.

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

ПРОЦЕДУРНАЯ ГЕНЕРАЦИЯ УРОВНЕЙ

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

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

2. Процедурная генерация есть, но на уровне разработчика. Левел-дизайнер может воспользоваться готовым решением по генерации уровня. Просто определить, что здесь должна быть пещера, а здесь – лес, локации создаются сами. Потом можно вручную подкорректировать что-то, расставив объекты; создать опушку, удалив деревья, или добавить труп какого-нибудь бедолаги, чтобы намекнуть на игровое событие. Чаще всего такой подход используется в матч-3 играх. Левел-дизайнеры рисуют поле, расставляют игровые элементы (механики, цели) и задают параметры для генерации фишек на поле, шансов их выпадения и т. д, а затем уже дорабатывают и проводят аналитику каждого уровня, чтобы проверить его играбельность и сложность прохождения.

3. Процедурная генерация может сочетаться с контентом, созданным вручную. Такие игры – еще не No Man’s Sky, в них есть базовый геймплей со стандартными локациями, но можно найти и процедурно созданные элементы. Например, локация может быть фиксированной, но 30 % монстров, деревьев, домов и т. д. генерируются по-разному для конкретной игровой сессии. Что-то остается неизменным, и можно учиться на своих прошлых ошибках, а что-то оказывается в необычном месте, и перепрохождение получается более интересным.

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

Такой подход часто применяется как в классических RPG, так и в любых играх с наличием зон спавна[58]. Это зоны на карте, которые состоят из некоторого количества точек спавна или являются их множеством. При старте игры, к примеру в некоторых популярных battle royale, алгоритм размещает разный лут[59] в разных местах. Еще один популярный кейс – это «Герои Меча и Магии», где существуют точки спавна артефактов, ресурсов и монстров. Однако что именно там появится, задается не обязательно жестко, а неким диапазонным вариантом. Это, безусловно, добавляет реиграбельности[60] этой классической игре. Сюда же с некоторой натяжкой можно отнести все MOBA или action-игры, где каждая игровая сессия проходит на случайной карте.

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

Яркий пример – подземелья в классической серии Diablo. Каждый новый заход на уровень может отличаться от предыдущего, потому что его карта будет генерироваться случайным образом, собираясь из заранее заготовленных шаблонов. Тот же способ отлично используют гиперказуальные игры, предлагающие игроку бесконечную прогрессию. Алгоритм имеет заранее заданные параметры сложности и набор ассетов, что позволяет ему выстраивать новые и новые уровни.

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

Перейти на страницу:

Все книги серии Российский компьютерный бестселлер. Геймдизайн

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

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

Герберт Шилдт

Программирование, программы, базы данных
C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных