Левел-дизайн: Универсальные рецепты приготовления игровых уровней. Статьи по левел дизайну


Универсальные рецепты приготовления игровых уровней — Оффтоп на vc.ru

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

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

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

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

Сложность

Самый главный инструмент для построения прогрессии, поскольку в первую очередь затрагивает геймплей. Редко кто им не пользуется, но не всегда используется весь доступный диапазон возможностей.

  1. Отсутствие челленжей. Тоже вариант, когда с игрока снимается прессинг и он может спокойно изучить локацию. Например, чтобы усвоить важную сюжетную информацию. 
  2. Челленжи-филлеры. Лишь имитируют сложность, чтобы игрок мог легко всех раскидать и почувствовать себя крутым.  
  3. Помощь в прохождении челленжа. Союзники, временные супер-абилки. 
  4. Нарастание количества челленжей (врагов).
  5. Сверхчелленжи, после которых даже некурящий захочет выйти покурить. Главное, забалансить так, чтобы было проходимо, но не давало расслабиться.

Цветовая гамма

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

В Half-Life 2 поездка на катере начинается пасмурным днем, а заканчивается на закате

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

Indoor-Outdoor

Для меня было большим откровением, когда я узнал, что в Doom открытые участки на самом деле такие же комнаты, только с другим правилом отображения потолка. То есть чисто технически вся карта была индором, но таковой не ощущалась. Наоборот, всегда было очень приятно после темных коридоров вылезти под открытое небо.

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

В Metro: Last Light вылазки на поверхность проходили как на открытой местности, так и в замкнутых помещениях

Акцент на определенном геймплее

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

В Guild Wars 2 много мест, где не важны никакие скилы, кроме умения прыгать

Перераспределение объектов оформления

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

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

Задний план

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

Call of Duty: Ghosts. Начинаем уровень на тропинке, заднего плана нет. Дальше формально мы всё ещё на тропинке, но задний план меняет впечатление

Новые виды челленжей (врагов)

Челленжи это тоже контент, который может быть ревардом за продвижения игрока по уровню. Например, если у вас на уровне планируется использовать три типа врагов, то можно сделать так: первая треть уровня заполнена противниками только первого типа, вторая треть — первого и второго типа, а последняя треть — второго и третьего типа.

Изменения масштабности

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

Под прогрессию масштаба попадают размеры объектов, плотность их расстановки и доступное для игрока место. Но нужно помнить, что размеры для игрока это относительное понятие. Дерево высотой 30 метров явление обычное, а вот статуя такого же размера будет воспринята как громадная. Большая площадка для битвы с боссом может быть воспринята негативно (плоское пустое пространство, по которому долго бегать). Но если сделать её небольшой, но рядом на фоне разместить ещё несколько таких площадок, то ощущение размера будет передано.

В подземелье The Elder Scrolls: Skyrim начинаешь в узком проходе и выходишь в просторную пещеру

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

Направление движения

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

Прогрессия на PvP-картах

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

Откуда. Точки воскрешения не фиксированы. Игроки могут воскрешаться рядом с товарищами по команде или на захваченных контрольных точках. Это уже меняет экспириенс игрока после возрождения игрока.

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

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

Появление в Team Fortress 2 режима Payload дало игре второе дыхание

Бонус. На эти размышления меня вдохновила гоночная трасса Нюрбургринг. Она, как и все трассы, используемые для «Гран-при Формулы-1», превосходна с точки зрения геймплея. Но вот её однообразное оформление вызывает печаль. Одни зеленые деревья. Конечно, если переносить трассу в игру по лицензии, то придется сохранить эту уныль. Но свой собственный уровень так делать нельзя.

vc.ru

советы и хитрости (часть 2) / Хабрахабр

Это вторая часть моей статьи с левел-дизайнерскими Tips and Tricks, которые разработчик может использовать, чтобы повысить общее качество своей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов, основанных на моём личном опыте. Первая часть статьи была больше ориентирована на визуальную составляющую дизайна уровней, в этот же раз мы поговорим о ещё более фундаментальных вещах, начиная с прототипирования и заканчивая плэйтестингом с аналитикой.

Прототипирование

Не секрет, что уделив время прототипированию сейчас, вы сэкономите море времени и сил позже. Это очевидно, это важно, и почему-то часто мы пренебрегаем этим этапом. По моему опыту, чем дольше команда работает, тем сложнее переживаются правки и переделки, поэтому критически важно с самого начала заложить надёжный фундамент в виде прототипа игры, уровней, ключевых игровых механик. Если говорить в контексте дизайна уровней, ваша работа условно делится на четыре этапа:
  • “Greybox”. Уровень собирается буквально из серых кубиков. Здесь вы закладываете фундамент всей последующей работы и выясняете размер уровня, требуемые графические и аудио ассеты, работаете над игровыми механиками и скриптовыми эвентами.
  • “Whitebox”. Геометрия уровня уточняется, по возможности добавляются новые игровые механики, диалоги, заготовки синематиков, звук и так далее. Здесь же вы ещё лучше вытачиваете существующие игровые механики и скриптовые эвенты.
  • Графический пасс. К моменту работы над этим этапом вы должны быть убеждены, что на уровне интересно играть, и он всем вас устраивает. Заменять прототипную графику финальными ассетами долго и дорого. Любые изменения на этом этапе крайне нежелательны.
  • Завершающий пасс. Здесь наносятся финальные штрихи: добавляются летающие в небе птички, звуки костров и прочие приятные мелочи.
  • Полировка. Неизбежный этап, как правило происходящий уже после того, как работа над уровнем была завершена. Тут будут правки мелочей, пропущенных ранее, а также изменения по результатам новых плэйтестов и собранной статистики.
На картинке ниже вы можете видеть сравнение этапов “whitebox” и непосредственно финальной графики в игре “Mass Effect 2”.

Хочу ещё добавить, что слишком ранний переход к этапу работы с графикой — серьёзная ошибка. Вы можете легко обмануть себя и команду, сделав уровень с захватывающей графикой, но никакущим геймплеем, и всё потому, что визуально он выглядит хорошо. Посмотрите на это полутораминутное видео из мода для “Gears of War”, хорошо иллюстрирующее работу над геймплеем при отсутствии большей части графического контента.

На этапе прототипирования в здоровой команде или компании важно придерживаться правила “Failure is an Option”. Вы делаете прототип, оцениваете результат и, если он вас не устраивает, выбрасываете. Быстрые итерации позволяют эмоционально не привязываться к проделанной работы, поэтому процесс получается простым и приятным. На скриншоте ниже — кусочек прототипа уровня из инди игры, над которой я работаю.

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

Масштаб героя

Как можно раньше утвердите размер игрового персонажа. Я работаю в Maya в сантиметрах, и обычно устанавливаю усреднённый размер главного героя: 200см. в высоту, 100см. в ширину и 100см. в длину. Таким образом, создавая любой новый контент (куст, танк, дом), мы всегда знаем их размер относительно героя. Предполагается, что размер коллайдера персонажа будет иметь примерно такие же размеры, соответственно, проходы и двери в зданиях обязаны быть как минимум в полтора-два раза шире коллайдера.

Также если у вас несколько 3d-художников, настоятельно рекомендуется, чтобы все следовали единой системе измерений. Иными словами, если у одного человека размер героя выставлен в 200 сантимеров, а у другого — в 2 метра, то при импорте в движок, например, в Unity, вам скорее всего придётся дать моделям разную компенсацию масштаба (Scale Factor), так как для Unity 2 и 200 “майских” единиц измерения — это разные размеры. Ситуация усложняется, когда вы работаете с программами типа 3ds Max, где система координат оперирует абстрактными единицами измерения, поэтому придётся поэксперементировать в поисках общих размеров для всех пакетов трёхмерной графики, задействованных в вашей команде.

Масштаб окружения

Работа с масштабом окружения — крайне интересная тема. Следуя рассуждениям из предыдущего пункта, вам нужно работать в реальных масштабах, отталкиваясь от утверждённых 200см. И в то же самое время вам придётся лгать непросыхая. Соль в том, что временами объект реального размера ощущается слишком большим или слишком маленьким, и приходится корректировать его масштаб, пытаясь добиться достоверного, хоть и неправильного размера. Это хорошо прослеживается в играх со стилизованной графикой, например, “World of Warcraft”, где часто можно видеть объекты вроде каменных лестниц со ступеньками высотой чуть ли не с персонажа. Что интересно, в контексте стилизации это смотрится уместно и не вызывает вопросов, но если присмотреться — всё это чертовски странно.

Тем не менее, надо стремиться к тому, чтобы в среднем ваша сцена имела реальные размеры. Особенно это важно ввиду модного нынче тренда на физически корректные материалы и освещение. Известно, что интенсивность света уменьшается пропорционально квадрату расстояния. В таком случае, если в вашей сцене из-за ошибок в масштабе настольная лампа будет иметь размер под 5 метров, то неизбежно придётся подкручивать математику освещения, чтобы оно выглядело более-менее адекватно в этих условиях. В конечном итоге ваша сцена будет состоять из множества вот таких “хаков”, негативно влияющих как на саму работу физически корректного рендера, так и на качество картинки в целом.

Масштаб окружения как правило познаётся только в сравнении с человеком или очень знакомыми предметами. Предположим, что вы делается научно-фантастический шутер, действие которого происходит на странной чужой планете, где даже архитектура выглядит крайне необычно. Какой размер вон того… камня (или это растение?). Или какой размер у вот этого здания? Совсем не ясно. И только если раскидать по сцене фигурки людей, то вы сразу поймёте масштаб происходящего. В отдельных случаях сработают очень знакомые объекты: на картинке привычная форма автомобилей задаёт точку отсчёта для масштаба.

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

Скорость движения героя

Масштаб окружения не имеет смысла без аккуратно выверенной скорости передвижения героя. Чем быстрее герой передвигается, тем сильнее сжимается пространство. Хорошим примером является введение летающих ездовых животных в “World of Warcraft”. Прежде мир казался достаточно большим: требовалось время, чтобы добраться из одной точки в другую. С появлением воздушного транспорта это перестало быть проблемой, скорость перемещения героя радикально изменила размер мира при том, что сами локации какими были, такими и остались.

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

Таким образом скорость передвижения важно утвердить как можно раньше на этапе прототпирования, в противном случае вас ждут постоянные переделки.

Время прохождения уровня

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

Как следствие, вы должны точно знать, сколько времени игрок может потратить на прохождение отдельного уровня, и на основе этих данных уже работать. В противном случае рано или поздно вам придётся перекраивать все уровни, подстраивая их под требования. В “Flappy Bird” с его мгновенными смертями игровая сессия может быть крайне короткой. В то же время открытый мир “Dragon Age: Inquisition” угрожает засосать вас на часы, причём всё действие будет происходить на одной локации.

Гладкие коллайдеры для гладкого геймплея

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

Возьмём ту же группу объектов и дадим им общий коллайдер. Теперь игрок не просто не будет втыкаться в углы, но контроллер персонажа автоматически будет обтекать группу объектов. Как результат — приятное плавное движение героя.

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

Не все коллайдеры одинаково полезны

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

Могу дать показательный пример из “Ведьмака”: вы видите группу коробок, с которых можно собрать добычу. Вы пытаетесь дотянуться до них, но Геральт вдруг начинается путаться в коллайдерах, втыкаться в невидимые стены, вертеться на месте и вообще вести себя как утопец на костре. Это напрочь ломает ощущение вовлечённости в игру, и вы невольно тянетесь за кружкой кофе, возвращаясь в реальность.

Occlusion Culling

Просто хочется напомнить об этой технике. Если коротко, она отключает рендер объектов, спрятанных за другими объектами. Unity, например, позволяет “запекать” Occlusion Culling, что оказывает существенное влияние на производительность. Причём как в лучшую, так и в худшую сторону, в зависимости от ситуации. Два примера:
  • В мобильной игре с Top-Down камерой (как в Diablo) активация этой функции экономит 2-4 Draw Calls (DC). В то же время к работе процессора добавляется 5мс. на обработку кадра. Совершенно не стоит того.
  • В ПК игре с First Person камерой, где действие происходит в узкой пещере, изначально имеется 450 DC. Активация Occlusion Culling уменьшает количество DC до 50 ценой тех же +5мс. Однозначно использовать нужно.

Параллакс и псевдо-3d

Любая 3d игра на экране монитора — это всё равно массив пикселей в 2d плоскости экрана, как ни крути (VR не в счёт). Но есть ряд трюков, позволяющих создать иллюзию трёхмерного пространства. В плане дизайна уровней, самым полезным инструментом будет осознанная разбивка картинки на передний, средний и дальний планы. Проще всего это реализуется в играх с Top-Down камерой а ля “Diablo” и “Path of Exile”, а также в сайдскроллерах (платформерах). Средним планом является ваш персонаж. Дальним может быть эпичный вид, как на следующем скриншоте, но чаще это просто отдалённые объекты.

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

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

  • Грязь на стекле дыхательной маски, как в “Метро 2033”.
  • Брызги крови прямо перед лицом, когда ради шкуры герой разделывает тушу зверя в “Far Cry”.
  • Руки и тапки персонажа, как у Faith в “Mirror’s Edge”.
  • Треснувшее стекло автомобиля во время вождения (”GTA”, “Far Cry”).
  • Пушка перед лицом, особенно в режиме оптического прицела (любой шутер).
  • Препятствие (бетонный блок, угол дома), за которым прячешься от противников. Игры специально поощряют такой геймплей. Например, в “Far Cry 4” можно прятаться за кустами, и противник вас видеть не будет.
  • Помехи в расположенном на экране нейроинтерфейсе, как в “Black Ops 3” и “Deux Ex: HR”.

Невидимые стены

Это достаточно специфичный случай, но стоит упоминания. В инди проекте, где я работаю, мы применили такую механику: когда вы входите в определённую зону, за спиной у вас возникает магическая стена, и впереди начинают появляться монстры. После гибели всех монстров заколдованные стены пропадают. Мы сделали это по аналогии с другими мобильными проектами типа “Dungeon Hunter”, а также по аналогии с “World of Warcraft”, где при битве с боссами у вас за спиной точно таким же образом перекрывается проход.

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

Есть ещё более непростительный подкласс невидимых стен — убивающие игрока границы уровня. Хуже, если разработчик строит геймплей вокруг этого ужаса. Яркий пример из “Destiny”: сундуки с сокровищами нередко ставятся возле самой границы уровня, да так, что часто неочевидно, где именно проходит граница. В итоге глупая смерть неизбежна, когда вы прыгаете на ровный камень в двух метрах под вами, а он в ответ мгновенно убивает героя. И да, это не смерть от падения в игре, где можно прыгать на 10 метров в высоту и приземляться на твёрдую землю без особых проблем.

Целевая платформа

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

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

Плэйтестинг

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

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

Аналитика

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

Причём даже если вы ещё не релизнулись, но имеете несколько тестеров, либо у вас демка доступна ограниченному количеству людей (например, “бэкеры” с Kickstarter’а), всё равно имеет смысл собирать и анализировать данные уже на этом этапе.

Полировка (polishing)

Старайтесь оставить чуть-чуть времени на полировку, то есть на мелкие правки и закрытие небольших дыр, до которых раньше не доходили руки по той или иной причине. Например, на один из моих недавних уровней стоит задача со списком из 29 пунктов. Каждый из них требует от 5 до 15 минут работы. Поборов эти проблемные места, вы переводите уровень с этапа полировки в статус “final” или “release candidate”. Проблемы, которые надо “полишить”, будут всплывать во время плэйтестинга и сбора статистики. Эффективнее не бежать сразу править каждую крошечную недоработку, а подготовить отдельный список, после чего поправить всё скопом. Помните, этот этап неизбежен, поэтому заранее оставьте на него время, даже если вы уверены, что сразу сделали всё круто, и полировать не придётся.

Заключение

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

Буду рад любым комментариям и предложениям. Кроме того, принимаю идеи для новых статей по левел-дизайну, а также освещению и постэффектам в Unity :) Спасибо за внимание!

habr.com

Как устроен процесс разработки игр в студии Bethesda — Оффтоп на vc.ru

В марте 2014 года на конференции Games Developers Conference в рамках серии докладов Level Design in a Day Джоэл Бёрджесс прочёл лекцию про итерации в level-дизайне, которые использовались в разработке Fallout 3 и Skyrim. Эта лекция значительно повлияла на мои представления о разработке игр. И хоть прошло больше года с данного выступления, лекция по-прежнему актуальна. Особенно для многих разработчиков стран СНГ, которые по своим процессам отстают на много лет от практик таких опытных компаний, как Bethesda.

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

Сначала я хотел сделать полный перевод транскрипции лекции, которая есть в открытом доступе на сайте Джоэла. Однако, я так себе переводчик, поэтому лучше расскажу своими словами, плюс добавлю немного (много) отсебятины. Для любопытных это будет приглашением почитать оригинал, а для ленивых это будет лучше, чем ничего. И небольшой дисклеймер: хоть данная лекция базируется на принципах, по которым создавался Fallout 3 и Skyrim, но она не про разработку этих игр, а про видение Джоэлом процесса итераций. Лучшие практики, так сказать.

Немного о Джоэле. В разработку игр он пришел в 2001 году. С 2005 года работает в Bethesda Softworks, то есть уже 10 лет. Отвечал за level-дизайн в The Elder Scrolls IV: Oblivion, Fallout 3 и The Elder Scrolls V: Skyrim, включая дополнения. По его профилю в Twitter не сложно догадаться, над каким следующим проектом Bethesda он работает. Также с 2010 года выступает на конференциях с лекциями по level-дизайну.

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

Итерации класса Шпион в Team Fortress 2

Начнём с самой простой итерации — структурной. Составили план, сделали, получили финальный продукт.

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

Казалось бы, вот он, идеальный путь создания хороших качественных игр. Вот только с ними одна загвоздка: при разработке таким способом срок выхода проекта будет «when it's done». Хорошо так делать, когда вы бессмертны и имеете бесконечный запас денег. Но в реальном мире нужно уметь достигать качества в заданные сроки. А значит, нужно строить процесс, оптимизирующий итерации, чтобы получить максимально возможное качество к заданному сроку.

Примером результата такого процесса может служить Skyrim. Кто играл в эту игру, тот знает, как много в ней контента огромный открытый мир, пять больших городов, более 300 подземелий, более 140 точек интереса, 37 населенных пунктов. При этом над игрой работало всего семь level-дизайнеров. На этом моменте у продюсеров, читающих это, должна пойти слюна.

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

  1. К тому времени Bethesda была уже устоявшейся студией, со сформированными командами, пайплайнами для кода и арта, многочисленными тулзами.
  2. Минимальная текучка кадров позволила в начале проекта рассчитывать возможности команды. Сколько дизайнеров было в начале, столько будет и в конце. Никаких планов «мы наймем ещё 100 человек, и они нам всё сделают».
  3. Высокое качество жизни. Отсутствие кранчей. Понятное дело — пункт спорный. Как это геймдев и без кранчей? Но Джоэл уверен, что реалистичное планирование наперёд способно уберечь от внезапной работы в овертайме.

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

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

Вот только в Bethesda другой подход.

Фокусировка разработки может идти не на уровнях, а на их этапах. Сначала делается первая стадия для всех уровней и пока она не будет завершена, ни один из уровней не перейдёт во вторую фазу.

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

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

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

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

На этом можно было бы закончить. Этой информации достаточно, чтобы повысить производительность, поднять качество и при этом остаться в рамках плана по времени и деньгам. Это как с примером, когда надо написать строку «1 А I 2 Б II 3 В III 4 Г IV 5 Д V 6 Е VI 7 Ё VII 8 Ж VIII 9 З IX» последовательно, символ за символом, и по очереди, сначала все арабские цифры, затем все буквы, затем все римские числа. На его примере видно, что лучше сначала закончить все задачи одного типа, прежде чем переключаться на задачи другого типа.

Мы поговорили о планировании разработки уровней. Но разве это единственная обязанность level-дизайнера? К примеру, в Bethesda level-дизайнер также пишет книги, диалоги, участвует в системных дизайнах вроде крафтинга, комбата или баланса, прототипирует фичи на внутреннем скриптовом языке, работает с программистами над внутренними инструментами, и выполняет много разных других задач, которые возникают по ходу разработки проекта.

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

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

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

В Bethesda такой подход называют «Opportunity Time» (время возможностей). Когда в каждый момент времени у дизайнера есть ряд возможностей что-то улучшить в игре. Вопрос в том, что он выберет, чтобы максимально эффективно использовать это время. Для этого нужно понимать, какое сейчас время на проекте. Для этого представим разработку как набор этапов. Вроде примера с разбиением разработки уровня на составляющие, только в масштабах всего проекта.

Этапы слой за слоем формируют продукт

Нулевой этап – концепт

Это этап планирования. Ещё нет игры. Нет кода и арта, с которыми можно было бы работать. Зато можно работать над списком. Списком всех локаций и ивентов. Это как слот-машина, на одном барабане которой архитектурный сеттинг, на другом — тип геймплея, на третьем — место на глобальной карте и так далее. Дергаешь за ручку и получаешь новый пункт для списка локаций.

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

Первый шаг для level-дизайнера — описать на вики (или где вы ведёте документацию), что он хотел бы сделать на своей локации. Коротко и ёмко, в один-три абзаца. Лаконичность требуется специально, чтобы не размывать фокус и сосредоточиться на тех вещах, которые выделят локацию среди остальных.

Также на этом этапе уделяется внимание истории. Это не обязательно та история, которая будет подаваться игроку через диалоги и тексты. Это история места, необходимая level-дизайнеру, в первую очередь, для внутренних нужд разработки. В ней он отвечает на вопросы:что это за сооружение, зачем оно построено и кем? Что случилось здесь в прошлом? Что произошло незадолго до прихода игрока? Даже если эта информация не подается игроку напрямую, она необходима для поддержания консистентности и понимания, какие ассеты понадобятся для рассказа этой истории через окружение (environmental storytelling).

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

С другой стороны, список ассетов не должен быть слишком абстрактным. Например, если у вас есть идея о пазле, в котором игроку нужно позвонить в несколько колокольчиков, то не надо писать кратко «пазл с колокольчиками» в ассет-лист. Ведь колокольчиков потребуется несколько видов, они должны быть анимированы и озвучены — всё это надо расписать заранее, чтобы понимать, каков объём работы и какие специалисты потребуются.

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

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

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

Типичная схема локации на нулевом этапе

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

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

Первый этап – планировка

В Bethesda есть термин Kit (набор, конструктор) — это набор элементов одного сеттинга, из которых собирается локация в данном сеттинге. Как это выглядит, можно посмотреть на видео:

На нулевом этапе художники по окружению (environmental artists), работая в тесном контакте с level-дизайнерами, создают заготовки для этих конструкторов. В первую очередь от них требуется соблюсти габариты и пивоты (pivot points), чтобы где level-дизайнер поставил объект, там он и остался, когда превратится из болванки в финальную модель.

На первом этапе задача level-дизайнеров — собрать болванки всех локаций из тех конструкторов, что есть. Да, на этом этапе уровни будут выглядеть уныло, пусто, без освещения и деталей. Но зато уже будет понимание ритма, потока, которое задает пространство. А красота придёт позже, на следующих этапах.

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

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

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

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

По той же причине, что на этом этапе локация может несколько раз пересобираться на основе обратной связи, на ней не делается навмеш (Navigation Mesh), необходимый для навигации AI (искусственный интеллект — прим. ред.) по уровню. Как следствие, на уровнях не расставляются противники и прочие NPC. Разве что может быть несколько единичных штук для отладки. Но это кухня геймдизайнеров и программистов, level-дизайнеру сейчас ни к чему расставлять на своём уровне то, что не работает, а следовательно, не может быть проверено плейтестом.

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

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

Второй этап — геймплей

Работа на этом этапе — что-то вроде Vertical Slice. В том смысле, что к его концу игра будет выглядеть относительно законченной. На этом этапе ускоряется работа над кор-механиками, поскольку появляется возможность проверить их в разных локациях, энкаунтерах и типах оружия. Как во время работы над VS, знания и опыт, полученные на работе над одними уровнями, помогают в дальнейшем на других уровнях.

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

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

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

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

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

Как ни странно, на этом этапе level-дизайнеры занимаются оптимизацией. Казалось бы, зачем? Ведь помещения на уровнях пока ещё пустые и проблемы с оптимизацией незаметны. А если заметны, то это потому, что код находится на ранних стадиях. Так какой же смысл тратить время на работу по оптимизации? А смысл в том, что раз дизайнер закончил менять расположение крупных элементов на своём уровне, то значит, он может заняться оптимизацией их видимости.

На что похожа оптимизация в Skyrim, можно посмотреть на этом видео:

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

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

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

На этом этапе level-дизайнеру будет приходить много обратной связи. Художники на его локациях будут отсматривать свои конструкции. Геймдизайнеры и программисты будут проверять свои фичи, бегая по его уровням. Возможны показы уровня на проекторе, когда целая группа лиц будет давать устные комментарии. А также уровень будет в обязательном порядке отсмотрен ведущим level-дизайнером и художником.

Ключевой момент в работе с обратой связью — не реагировать на неё. По крайней мере, не делать этого немедленно. Ведь это так легко — отвлечься на хорошее предложение, которое на самом деле очередное «как сделать по-другому», а не «как сделать лучше». Так что всю обратную связь надо записывать, каталогизировать, но реагировать лишь спустя достаточное время, чтобы накопить замечания, приоритизировать и определить, как какие пункты обрабатывать.

Этап третий — весь контент готов

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

Конечно, расписание не резиновое, так что придется что-то отрезать или искать альтернативное решение. Чем дольше такие решения будут затягиваться, тем больше они выйдут боком.

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

Каждый уровень на третьем этапе имеет свою особенность. Где-то level-дизайнеру требуется уделить больше времени скриптованию, чем всему остальному. Где-то его фокусом будет комбат. А где-то — окружение. Тут level-дизайнер должен понимать, что является главным на его уровне, чтобы правильно расставить приоритеты при планировании времени.

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

Тут следует признаться, что на самом деле в Bethesda третий этап называется не Content Complete, а Ship With Shame («продавать со стыдом»). Потому что если что, в конце этого этапа игру можно выгружать в магазины. Контент есть, фичи есть, а значит технически всё на месте.

Конечно, готовый контент ещё не означает высокое качество игры. Третий этап в основном не про качество, а про уверенность. Уверенность, что все уровни будут готовы согласно плану. И, что более важно, уверенности в том, что можно повысить уровень качества за то время, что пройдет между концом третьего этапа и настоящим релизом. В отличие от последовательной разработки, когда часть уровней к этому моменту не будут существовать даже в виде дизайна на бумаге.

Третий этап — это ещё трамплин во «время возможностей». На нём самое время посмотреть, что в игре можно исправить. Если какие-то механики не работают достаточно хорошо, то нужно подумать, как дать им второй шанс. В Bethesda не любят выкидывать работу, поэтому заранее планируют время для так называемых mulligan pass — возможности переделать нужный элемент ещё раз.

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

Другой доступный инструмент — это «ударные команды» (Strike Team). Подобную практику используют многие студии. Это когда команда разнопрофильных специалистов фокусируется на решении определённой задачи. Например, «ударная команда» берёт фичу, которой уделялось недостаточно внимания, и доводит её до состояния, когда ей можно пользоваться и тестировать. Или чтобы «заполишить» контент, который расположен на видном месте. Также «ударная команда» может собраться вокруг дизайнера, чтобы помочь ему справиться со сложной или амбициозной задачей.

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

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

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

Бонусный этап — этап красоты

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

На этом этапе над уровнем работают художники, добавляя мелкие объекты окружения, эффекты и настраивая освещение. А звуковой инженер делает свой проход по уровню. Level-дизайнер на этом этапе держит руки в стороне от своего уровня. Художники сделают работу по оформлению быстрее и лучше, освободив level-дизайнера для других задач.

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

Пока идёт этап красоты, level-дизайнеры подготавливаются к следующему этапу.

Финальный этап

Финальный этап настаёт, когда игра на полном ходу приближается к релизу. Это шанс сделать так, чтобы игра была выпущена с максимально качественным контентом, который команда способна сделать. Так что задача этого этапа довольно очевидная — «полишить» всё.

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

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

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

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

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

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

Перспектива

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

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

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

vc.ru

Основы левел-дизайна / Хабрахабр

Уже в течение восьми лет я занимаюсь созданием многопользовательских карт для моддинг-сообщества Call of Duty. За эти годы я освоил различные правила и принципы дизайна, которые успешно применяю в процессе левел-дизайна. Я поэтапно расскажу вам о том, как создать интересную многопользовательскую карту.

В этой статье я буду говорить о разработке многопользовательской карты для Call of Duty: Modern Warfare. Давайте назовём её «Tugurios». Она будет создаваться в антураже трущоб. Теперь мы немного поговорим об истории и сеттинге карты.

  • Tugurios означает по-испански «трущобы». Карта визуально основана на внешнем виде трущоб в Венесуэле.
  • В холмах было найдено золото, поэтому рядом с ними появились трущобы, снабжающие золотодобытчиков рабочей силой.
  • Годы спустя источник золота истощился. В условиях безработицы трущобы стали перевалочным пунктом оружия и наркотиков.
  • Когда ситуация вышла из под контроля, правительство отправило отряд спецназначения для решения проблемы.
  • Действие происходит в полдень. Одна команда спаунится в трущобах, а другая — на дороге с другой стороны карты.
Вот вид карты сверху: На карте есть следующие зоны:

Холмы

  • Холмы и окружающие их области будут показаны сухими и пыльными, со множеством углов и надрезов, показывающих влияние золотодобычи.
  • Все здания в этой зоне будут напоминать проржавевшие металлические сараи с окрами, которые раньше использовались как служебные помещения.
Канава
  • Канава имеет грязевое дно с текущей посередине водой и растительностью на склонах и берегах. Для обеспечения укрытия на дне мы поместим несколько крупных камней.
Трущобы
  • Небольшие хижины из красного кирпича, шлакоблоков и ржавых листов металла.
  • Повсюду кучи мусора и отходов, которые можно использовать в качестве укрытий.
  • Некоторые лачуги имеют 2-3 этажа.
  • Повсюду свисают электрические кабели.
  • На стенах много въевшейся грязи и граффити.
  • Под ногами или разбитый бетон с открытыми стоками, или зелёная трава с буйной растительностью.
Дорога
  • Место спауна команды А. Она состоит из разбитого грязного асфальта. В разных местах стоят автомобили, обеспечивающие укрытие.
  • Она на полэтажа или на целый этаж выше основного уровня земли, поэтому невидима с земли. Игрок должен либо взобраться по лестнице, либо подняться на определённую точку, чтобы увидеть её.
Фундамент крана
  • Массивный бетонный фундамент крана, который использовали при добыче золота. Кран уже убран, но фундамент остался на месте.
  • Выглядит как бетонный бункер с прутьями арматуры и заклёпками, торчащими из разбитых углов и поверхностей.
  • Наверху есть большая округлая опора, скрывающая одну точку входа от другой.
  • Фундамент напоминает бетонные основания тяжёлых зенитных орудий времён Второй мировой войны.
  • Красным отмечена зона трущоб.
  • Небольшие, хаотично разбросанные хижины громоздятся одна поверх другой, достигая трёх этажей в высоту.
  • Зелёным отмечена зона дороги рядом с холмами. Из-за золотодобычи холмы имеют изрезанные склоны.
  • Две зоны разделены глубокой канавой, отмеченной жёлтым цветом. Она имеет глубину в один этаж. Необходимо пересечь её, чтобы попасть на другую сторону карты.
На карте есть множество вариаций высот. Они используются для перекрытия области видимости и делают карту более интересной.
  • Единицей обозначен уровень земли или первого этажа, который от пола до потолка имеет высоту 10 футов (около 3 метров). Это будет нашим опорным размером. Канава расположена на высоте 1.
  • Другие числа обозначают высоту в количестве этажей.
  • Например, дорога на 3 этажа выше канавы.
  • Спецназ (команда А) спаунится в зоне на дороге, отмеченной зелёным пятном.
  • Боевики (команда Б) спаунятся в зоне хижин, отмеченной красным пятном.
Я всегда разрабатывал многопользовательские карты Call of Duty: Modern Warfare с учётом режима «Доминирование» (Domination). Это очень помогает в создании хорошо сбалансированной карты, на которой у одной команды не будет нечестного преимущества перед другой.
  • Три точки на карте, отмеченные как A, B и C обозначают три флага для геймплея в стиле Domination.
  • Команды легко могут захватить A и C, потому что они находятся рядом с точками спауна.
  • Точку B будет сложнее всего захватить и удержать. Она находится в середине карты и простреливается со многих позиций.
Критический путь
  • Красная линия, соединяющая две части карты, обозначает критический, или кратчайший, путь.
  • Этот путь самый короткий, но проходит через самые опасные зоны карты.
Фланги
  • Зелёными линиями показаны вторичные пути.
  • Оба этих пути длиннее критического, но обеспечивают фланговые позиции и обходят активную зону в центре.
  • Однако эти пути имеют большие пределы прямой видимости. На них снайперам проще «снимать» цели.
На карте есть несколько важных, или «горячих» точек, дающих преимущество занявшей их команде.
  • Первая точка выделена красным кругом. Это выступ с хорошим обзором на канаву. Он на три этажа выше канавы.
  • Игроки могут наблюдать за канавой отсюда и ещё из двух «горячих» точек, которые будут показаны ниже.
  • Эта точка более доступна для команды А, которая спаунится на дороге.
  • Точка выделена красным и расположена на три этажа выше канавы.
  • Она доступна только сзади, поэтому игроки-бандиты могут быстро занять её.
  • В этой точке можно следить за канавой, точкой на противоположной стороне и точкой в верхней правой части, показанной на следующем изображении.
  • Точка выделена красным. Это массивный фундамент крана, использовавшийся при добыче золота.
  • Эта точка доступна с обеих сторон по лестницам.
  • В точке можно следить за канавой и она на три этажа её выше.
  • Отсюда игроки могут наблюдать за всей длиной канавы и двумя другими «горячими» точками, показанными на предыдущих изображениях.
  • Точка указана красным кругом. Здесь пересекаются три прохода, а также критический путь.
  • Двухэтажное здание в правой части точки может использоваться командой А для наблюдением за критическим путём.
  • Игроки вражеской команды могут пройти здесь к выступу слева и уничтожить игроков дружественной команды, наблюдающих за канавой.
  • Если враг контролирует эту точку, он может контролировать канаву и точку доминирования A.
  • Точка выделена красным. С неё можно наблюдать за точкой доминирования C и за путями, проходящими из канавы.
  • Это двухэтажное здание, на которое можно попасть с обоих сторон по лестницам. Проход в задней части здания может обеспечить безопасную дорогу для атакующих вражеских игроков.
  • Команда Б должна удерживать эту точку, чтобы следить за путями, ведущими к базе, и поддерживать огнём точку доминирования C.
Пределы видимости очень важны в многопользовательских картах, потому что они определяют дальность захвата и управляют расположением укрытий и AI на карте. Для лучшего понимания я указал пределы видимости на виде карты сверху.

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

habr.com

Дизайн уровней: инструменты, тестирование и движки

Специально для Xsolla дизайнер уровней Денис Куандыков рассказал о том, с чего лучше начать, если вы хотите заниматься этим непростым делом. Денис работал в AWAR и NAGA Entertainment, участвовал в создании инди-хоррора Coma: Mortuary. В этой статье он поделился своим мнением относительно наиболее полезных инструментов, текущих тенденций в своей сфере и работе с разными движками.

Образование

Если вы хотите заняться дизайном уровнем, то стоит начать с книги Ultimate Level Design Guide. В ней подробно и доступно описана основная суть работы. Скачать издание можно отсюда. Вообще покопайтесь на этом ресурсе, если интересует тема проектирования уровней. На русском языке есть похожий блог. Что касается образования, то вам помогут знания в области архитектуры, психологии, живописи, математики, особенно геометрии, а также умение работать с CG. Впрочем, это все не обязательно. Главное — любить игры.

Отличия в Environment и Level Design

Дизайн уровней разделен на 2 составляющие: Environment Design и Level Design. Прежде чем делать первые шаги в изучении этой специальности, необходимо уяснить для себя собственные предпочтения в разработке. Что вам больше интересно: визуальная часть (Environment design) или проектирование геймплея уровня (Level Design).

Инструменты

Без Photoshop никуда, хотя я сам лично использую Paint.net (бесплатно) с PSD плагином. На втором месте — 3D редактор. Я предпочитаю Blender, но советую MayaLT. Есть еще такие вещи, как SpeedTree и WorldMachine, которые помогут сгенерировать деревья и ландшафт, а ведь это уже половина работы для многих игр. Лучше работать со всеми системами: Unity, UDK, UE4, CryENGINE 3.

Современные тенденции в разработке уровней

Сегодня обороты набирает «умная» генерация модульных пропсов. Модульность сама по себе важна для экономии времени и ресурсов при разработке. Обычный игрок сталкивается с модульностью постоянно, например, в Skyrim или Fallout 3: предметы интерьера повторяются, но имеют вариативность в текстурах, деталях, расстановке мелких объектов. Допустим, 3D-художник сделал кухонный шкаф и посуду. Используя одну модель шкафа, но по-разному расставляя посуду, добавляя детали и свет, мы получаем множество вариантов одного и того же предмета мебели. Собирая разные варианты в так называемый «префаб», экономится уйма времени на производство графического контента. Однако этот подход устаревает. Ubisoft выкладывала ролики о разработке Assassin’s Creed: Unity и The Division, в которых можно увидеть генерацию огромного количества вариаций контента окружения из заранее готовых пропсов.

Это демонстрация того же модульного подхода, но автоматизированого. Пару кликов — и перед вами появился огромный город, детализированный, с интерьерами, даже мусором на улицах. ИИ и прочие важные точки уже расставлены. Вот где настоящий next-gen.

Тестирование

7 раз отмерь, потом ещё раз отмерь, а потом снова отмерь. Лишь потом «отрежь» и протестируй. Для дизайнера уровней важно смотреть собственные локации, организовывать плейтесты и анализировать результаты проверки. Ошибка в проектировании уровней критична. Исправление таких недостатков стоит больших производственных затрат. А если ничего не сделать, то пострадает потребитель. Кто-то застрянет в текстурах, у кого-то железо не потянет, крутые next-get технологии вкупе с дорогим CG контентом не передадут нужный визуальный/атмосферный посыл, а дисбаланс уровней гарантирует вам отток игроков к конкуренту. Чтобы избежать трудностей, рисуйте схемы, требуйте от геймдизайнера математических данных по игровым механикам, используйте сетку. После делайте Gray-box прототип уровня, тестируйте его еще до начала производства графического контента. В Wargaming в самом начале проектирования карт делают прототип из пластилина и взрослые дядьки из индустрии внимательно его изучают добавляя или удаляя пластилин. Имея на руках прототип уровня, сделанный из геометрических примитивов, но с уже отыгранной механикой, гораздо легче оптимизировать производство графической составляющей.

О редакторах уровней

Редактор StarCraft 2 и WarCraft 3 поможет устроиться, например, в Wargaming или Allods Team. SDK CS:GO идеален для прокачки навыков создания уровней FPS жанра. Хотел бы отметить SDK DOTA 2. Эта технология сейчас в альфе, но функционал впечатляет. Думаю, этот редактор получит большой толчок благодаря сообществу. В случае, если вы тяготеете к дизайну окружения, то тогда в портфолио лучше разместить работы в Unity и UE4.

Как зарабатывать на продаже собственного контента?

Unity Asset Store и UE4 Marketplace — отличные площадки для продажи пакетов пропсов. Вместе с набором моделей окружения обычно идет собранный уровень как пример использования контента. Сами по себе готовые локации не продают. Однако, Steam Workshop позволяет публиковать карты для CS:GO и даже на этом зарабатывать.

Еще один способ монетизировать свои навыки — устроиться на работу в большую компанию. Blizzard охотно набирает в штат мододелов-мапперов. Лично я зарабатываю удаленным фрилансером, занимаюсь полным пайпланом дизайна уровней от баланса до окружения. Исходя из опыта, больше всего заказов именно на окружение, особенно в Unity. Непосредственно «дизайн уровней» среди вакансий встречается реже. Заинтересованность данными специалистами проявляют в основном крупные студии. Если вы хотите работать удаленно, то лучше выбрать дизайн окружения. С этими навыками можно и в студию устроиться моделером как минимум. Если вы настоящий дизайнер уровней, то смиритесь с тем что среднестатистический заказчик будет считать вашу специальность ненужной и «детской», но двери крупных студий всегда открыты для тех, кто умеет создавать действительно интересные и сбалансированные локации.

Материал предоставлен блогом Xsolla

kanobu.ru

Полезные ссылки для Левел-Дизайнера — Манжеты гейм-дизайнера

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

Видео-гайды:

  • Сессия 2014 года от Джима Брауна (Epic) о роли отрицательного пространства в дизайне уровней. Принципы проектирования отрицательного пространства, влияние на разные аспекты игры и восприятия игроков:
  • Отличный гайд от Extra Credits. Смотрите, как дизайнеры создают подземелья, глядя на один из величайших примеров в истории игр: Durlag’s Tower from Baldur’s Gate:
  • Пять лучших игровых уровней 2017 года по версии Game Maker’s Toolkit:
  • Запись стрима Роберта Янга (инди-разработчик, стример) из серии «Level With Me», где он рассказывает об уровнях в оригинальной BioShock:
  • Всё тот же Роберт Янг на GDC talk 2015 рассказывает о концептуальном понимании того, что означает проектирование уровней, о текущих проблемах современной архитектуры, а также методологии для критической оценки левел-дизайна в играх:
  • Любопытное видео о принципах разработки уровней для игр с открытым миром, с упором на кооперативное взаимодействие игроков:
  • Хороший обзор левел-дизайнерских идей и решений в Super Mario Odyssey:
  • Level Design Workshop на GDC 2017. Любопытный материал от Clemence Maurer (Eidos-Montreal) о сбалансированном сочетании дизайна уровней, визуального дизайна окружения и подачи сюжета в «Deus Ex: Mankind Divided»:
  • Видео-гайд о том, как создать уровни по методике использования повторяемых модульных частей:

WEB-ресурсы:

  • Хороший блог Михаила Кадикова о левел-дизайне на русском языке.
  • Статья на vc.ru от левел-дизайнера проекта Skyforge (Allods Team), а ныне независимого разработчика игр Ярослава Кравцова с полезными рекомендациями по созданию уровней.
  • Статья Мухаммеда Айюба (левел-дизайнер, моддер Call of Duty) о разработке многопользовательской карты для Call of Duty: Modern Warfare:
  • Что-то полезное можно почерпнуть у Мариана Маглойра (левел-дизайнер Lion Game Lion):
  • Майкл Барклай (гейм-дизайнер из Naughty Dogs) рассказывает о базовых принципах левел-дизайна:
  • Веб-сайт+блог для всех, кто интересуется левел-дизайном и дизайном визуального окружения в играх:
  • Десять принципов хорошего левел-дизайна от Дэна Тэйлора (ведущий левел-дизайнер Square Enix Montreal). Обязательно к прочтению:
  • Весьма интересный материал о структурах городов и их влиянии на дизайн вымышленных пространств от урбаниста и гейм-дизайнера Константиноса Димопулуса:
  • Макс Пирс предлагает вначале тщательно изучать пространства, где реально проживают люди, прежде чем создавать игровые уровни (особенно в реалистичном сеттинге):
  • Несколько рекламная статья Криса Тоттена (профессор игровых наук (гейм-дизайн,3D-анимация), магистр в области архитектуры Католического университета) с выдержками из его книги An Architectural Approach to Level Design, в которых представлены основные архитектурные элементы, которые могут быть применимы к играм (статья с картинками 😉 ):
  • Разработка уровней для платформера
  • Супер Марио Братья 3 – Уроки левел-дизайна от Radek Koncewicz:
  • Статья о роли препятствий и конфигурации пространства в дизайне уровней для шутеров от Пит Эллис (левел-дизайнер Killzone).
  • Очень крутая подборка материалов о левел-дизайне на сайте Матэуша Пьяскевича (Mateusz Piaskiewicz, левел-дизайнер CD Projekt RED) :
  • Статья и видео-подборка о дизайне уровней игры Hob от 80.lv:
  • Подкаст Макса Пирса, о котором я уже писал выше, о левел-дизайне:

Полезные книги:

 

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

gdcuffs.com

советы и хитрости (часть 1) / Хабрахабр

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

Левел-дизайн и нарратив

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

Этим я хочу сказать, что даже находясь в режиме технаря и выполняя сугубо технические задачи, левел-дизайнер должен стремиться к своей цели — оптимальным способом рассказать игроку историю и погрузить его в мир игры. Кто-то может сказать, что это не важно для PvP уровней, но вспомните классическую карту “Warsong Gulch” из “World of Warcraft”, где весь бой крутится вокруг противостояния Орков и Эльфов за ресурсы и территорию. Тем не менее, даже работая с чем-то совершенно приземлённым типа настройки коллайдеров, вы убеждаетесь, что пользователь получит именно тот игровой опыт, который вы хотите для него создать.

Визуальное разнообразие

Хороший уровень поддерживает интерес игрока, периодически изменяя ощущения от окружающего пространства. У нас есть ряд инструментов, в том числе:
  • Визуальный ряд. Если в начале у вас было сухое мёртвое подземелье, а в конце — подземные реки, водопады и биолюминисцентные растения, то игрока увлечёт визуальная новизна и смена атмосферы.
  • Замкнутость пространства. Типичный приём из “Лары Крофт”: вы с трудом протискиваетесь сквозь трещину в скале; выбравшись, вы поднимаете взгляд и обнаруживаете себя у основания храма, от колоссальных размеров которого перехватывает дыхание.
  • Форма. Любое пространство подчинено определённым формам. Детали и цвет вторичны. На картинке ниже лишь по одному силуэту вы можете определить, что находится на горизонте.

Как формы использовать в левел-дизайне? Отличный пример можно найти в космическом корабле Dreadnaught в “Destiny”, где диагональные элементы архитектуры создают очень своеобразные ощущения от интерьера вплоть до едва различимого в подсознании дискомфорта.

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

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

Уникальные кадры

“Vista” — это открывающийся игроку вид, да такой, что захватывает дух. В играх с открытым миром “vista” чаще всего — это высочайшая точка на какой-нибудь башне или горе, откуда вы осматриваете окресности. Все мы помним известный процесс “синхронизации” в “Assassin’s Creed”. Для других игр эпичные виды создаются специально, а не просто позволяют нам посмотреть сверху вниз.

Отдельным подвидом “vista” можно считать “hero assets”. Как правило, это особо примечательные объекты окружения, зачастую используемые только единожды за всю игру. На них обращают внимание, их запоминают, на них ориентируются, пока бегают по уровню. В принципе, неплохим примером может быть известная Цитадель, возвышающаяся над City-17.

“Vista” и “hero assets” могут помочь вам сделать более запоминающиеся уровни, добавить им изюминку, но знайте меру. Вы можете попасть в ловушку и уделить им слишком много внимания вместо тех ассетов, которые будут использоваться сотни или тысячи раз. Здесь уместна картинка из статьи ребят из Bethesda, работавших над уровнями для Skyrim:

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

Интерактив и динамика

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

Сюда же можно добавить интерактивные объекты, с которыми пользователь может взаимодействовать. Они становятся важной частью игрового опыта, а не просто статикой на фоне. Дверь можно открыть, рычаг — нажать, стену — проломить, бочку — взорвать, колонну — свалить. В “Diablo III” это использовали достаточно часто. Например, классический пример с рычагом, позволяющим обрушить на голову врагам массивную люстру. Или каменная стена, обрушающаяся, когда герой проходит рядом и случайно задевает её.

К динамичным объектам можно добавить и NPC. В “Белом Саду”, деревушке в самом начале “Ведьмака”, кипит жизнь — женщины стирают одежду, дети носятся по округе и играют друг с другом, старики раскуривают трубки на скамейке, мужики бьют морды в таверне. Это, разумеется, уже совершенно иной уровень динамичного окружения, требующий значительного вложения сил.

Туман как цветокоррекция

Очень интересный трюк: туман не просто оказывает существенное влияние на атмосферу и правдоподобность уровня, но также является отличным инструментом цветокоррекции. Более того, на мобильных устройствах это самый дешёвый метод цветокоррекции (”весит” порядка 3-5 fps).

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

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

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

Есть подводный камень: надо правильно подобрать тип тумана (например, exponentional squared в Unity для этой задачи обычно подходит лучше всего) и плотность таким образом, чтобы туман не замыливал текстуры, и они не теряли контрастности.

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

Lighting is love, lighting is life

Освещение является одним из мощнейших инструментов в вашем распоряжении. Настоятельно рекомендую уделять этому достаточно сил и времени. Вместо тысячи слов:

Даже несложная геометрия с простейшими текстурами приобретает адекватный вид, когда в дело вступает освещение. Через свет мы передаем не просто техническую информацию типа времени суток и погоды, но и настроение. Аккуратная работа со светом позволяет тонко настраивать атмосферу. Вот представьте: яркий солнечный свет. На одном конце спектра у вас будет жесткое, беспощадное солнце мёртвой пустыни. На другом конце — счастливое мягкое летнее солнце, как в аниме про первую любовь токийских школьников.

Как добиться нужного эффекта от освещения? Искусство и опыт, конечно же. Готового рецепта у меня нет. Но это лирика, я же хочу поделиться ещё одним практическим трюком: критически важно иметь вариации в цвете освещения. Следуйте логике, но не забывайте о креативе. Если вы ставите источники света только там, где стоят лампы, то результат будет чёрствым и скучным. В то же время даже небольшое цветовое разнообразие от света делает уровень визуально более привлекательным.

Один из интересных приёмов: сначала ставится только логичное освещение (то есть там, где находится лампа, будет источник света), но несколько приглушённое, не финальная яркость. После этого добавляются ещё дополнительные цветные источники света. Они поднимают общую освещённость, одновременно расширяя цветовую палитру.

Есть исключения, конечно же. Например, уровень с ярким солнечным светом может преимущественно состоять только из него, и будет выглядеть отлично. В этом случае вам помогут выверенный ambient light, делающий цветными тени, а также различные постэффекты на камере, чтобы поддержать яркость солнца (пресловутый bloom, к примеру).

Блендинг света с окружением

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

Вот несколько методов, помогающих имитировать воздействие света на “пустое” пространство:

  • Спецэффкты: летают пылинки или светлый туман клубится возле источника света.
  • Light shafts, god rays, sun rays. Эффект видимых лучей света. Стилизация как правило не позволяет использовать это в реалистичных играх, разве что посредством очень тонкой настройки.
  • Volumetric light. Достаточно дорогой в плане производительности эффект, но чертовски красивый и правдоподобный. На картинке ниже изображён volumetric light из “Fallout 4”.
  • Постэффекты. Прежде всего bloom, конечно же. С ним засветы распространяются вокруг ярких элементов сцены.
  • Фэйковый glow. В некоторой степени имитирует bloom вокруг яркого источника света. Делается простым квадом с текстурой, на которой изображён полупрозрачный круг с размытыми краями.

Постэффекты

У постэффектов сложилась дурная репутация из-за чрезмерного их использования. Из поколения в поколение передаются легенды о безвкусном применении эффекта Lens Flare. На самом же деле хорошо сбалансированные постэффекты едва заметны и не привлекают к себе внимание.

Постэффекты и освещение неразрывно связаны. На картинке ниже вы видите, как к тёмному освещению добавляется светлый туман (постэффект Global Fog из стандартного набора Unity), поверх которого накладывается Bloom.

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

Самым мощным постэффектом по праву считается цветокоррекция. С её помощью вы можете вносить правки в цветовую палитру с ювелирной точностью. Этот инструмент пришёл к нам из кино, и теперь ни одна ААА игра не обходится без этого. Кстати говоря, цветокоррекция используется в кино даже при работе с обычной плёнкой без применения компьютерной графики. Если посмотрите на кадры “Бойцовского Клуба” Дэвида Финчера, то сразу обратите внимание на характерный зелёный оттенок. Такого результата достигли посредством особенного состава химикатов, использованных при проявке плёнки.

Другие постэффекты, которые могут показаться вам полезными: tone mapping, bloom, antialiasing, vignette, chromatic aberration. Особо хочу отметить tone mapping, который имитирует HDR картинку на основе LDR (low dynamic range) данных. На следующей картинке меня полностью устраивала яркость света, но некоторые объекты получались чрезмерно пересвеченными.

Обратите внимание, какие изменения произошли на маленьком синем мониторе справа от прохода. Это и есть результат работы постэффекта tone mapping. Подытоживая, предостережение: старайтесь быть осторожными при работе с постэффектами. Легко обмануться, сделав бедноватый уровень с посредственным освещением, и едва посыпав его “сахаром”, решить, что у вас всё круто.

Заключение

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

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

habr.com