На Хабрахабре достаточно много инди-разработчиков, некоторым из них приходится в той или иной степени заниматься левел-дизайном. В течение последних нескольких месяцев я безвылазно работал над примерно полусотней различных игровых уровней, и хотел бы поделиться своим опытом. Эта статья содержит эффективные 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, материал должен быть вам полезен.

Комментарии (16)


  1. OldFisher
    04.01.2016 09:39
    +2

    В последнем примере после включения tone mapping на что-то обиделся и ушёл aliasing.


  1. IrixV
    04.01.2016 11:07
    +2

    Спасибо за статью. А можно ли ссылку на игру? Расскажите, пользуетесь ли еще какими-либо инструментами, кроме unity? Blender'ом например или чем-то еще? Как создаете воду/огонь и т.п., как редактируете и оптимизируете шейдеры. Вопросов очень много, так что буду с нетерпением ждать следующую статью.
    Также очень интересует информация по срокам, сколько времени заняло у вас создание игры (или оценочно займет), и сколько людей участвует в создании.
    Ну и, конечно, хочется пожелать вам огромной удачи в этом нелегком и рискованном деле!


    1. DiscoDeer
      04.01.2016 15:55
      +1

      Привет! Пока игра в работе, можно почитать наш блог :)
      Пользуемся Maya LT, Photoshop и git'ом. Работаем вчетвером и планируем хотя бы на софт-ланч выпуститься в следующие несколько месяцев. Полагаю, что к тому времени будет много материала для пост-мортема, и смогу написать детальную статью.


      1. BIanF
        04.01.2016 16:47

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

        Но вот на GUI перед запуском вам ещё нужно будет поработать.
        Удачи!


        1. DiscoDeer
          04.01.2016 16:51

          Спасибо :) Что можно в GUI улучшить, на ваш взгляд?


          1. BIanF
            04.01.2016 18:58

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


  1. Ogi
    04.01.2016 12:39
    +12

    Статья называется «Создание игровых уровней», а рассказывает об оформлении.


    1. DiscoDeer
      04.01.2016 15:47

      Не до конца понимаю, о чём вы. Создавая уровни, мы работаем над всем спектром задач, от прототипирования до постэффектов, которые, между тем, являются прямой обязанностью lighting artist'а, если такой есть на проекте, так как освещение и постэффекты, как я говорил, неразрывно связаны.
      В этой статье я сделал больше упора на визуальный дизайн, остальное уже не вмещалось, поэтому решил разделить статью на две :)


      1. BIanF
        04.01.2016 18:59
        +2

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


        1. DiscoDeer
          04.01.2016 22:07

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


      1. danfe
        06.01.2016 09:56
        +1

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

        То есть, наверное, это все тоже в известной степени важно для создания нужной атмосферы и т.д., но хотелось бы научиться или что-то узнать про то, как создавать шедевры типа dm6, q2dm1, q3dm6, ztn2dm3, aerowalk и др.


  1. KilgortTraut
    04.01.2016 15:38
    +1

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


    1. DiscoDeer
      04.01.2016 16:34
      +1

      Я долго думал как правильнее назвать это течение в архитектуре. В англоязычном интернете обычно говорят про него в контексте «contemprary» или «modern». Видимо чтобы не выставлять себя невежей, можно просто говорить «современная архитектура» :)


  1. Mato
    04.01.2016 16:39
    +2

    Инди-игра напоминает локацию Thousand Needles.


    1. DiscoDeer
      04.01.2016 16:50
      +1

      Я это осознал, когда наш программист именно так локацию и обозвал.


  1. DiscoDeer
    05.01.2016 03:05
    +1

    Совсем забыл! Если кому-то интересно больше картинок «до» и «после» создания освещения, то у меня есть интересная ссылка. Чтобы посмотреть сравнение надо просто навести мышку на картинку.