Удачные карты в онлайн-шутерах напоминают как детские игровые площадки, так и древние арены для гладиаторских боев — противостояние соперников на них одновременно напряженное, захватывающее и веселое. Чтобы эффект от игровых локаций действительно был таким, левел-дизайнеры должны выстроить правильный темп, настроить баланс и раскрыть потенциал игровых механик. Мы решили разобраться в том, как проектируются карты для онлайн-шутеров. В этом нам помогли левел-дизайнеры Денис Козин и Василий Скобелев из Pixonic, Семен Зуев из Panzerdog, Андрей Горчаков и Алексей Крылов из Allods Team.   Процесс проектирования карты может отличаться от студии к студии — некоторые этапы сливаются воедино, а отдельные понятия называются по-разному. Но общая логика создания уровней примерно одинаковая. Создание карты начинается с написания концепт-документа, в котором левел-дизайнеры кратко описывают ее главные особенности: какой у нее сеттинг, визуальный стиль, для какого она геймплея — для снайперов или бравлеров, какие на ней будут игровые механики и так далее. Концепт нужен, чтобы левел-дизайнер согласовал с командой свое видение будущей карты и зафиксировал его перед началом разработки. На основе концепта левел-дизайнер собирает лэйаут карты из примитивной геометрии. Здесь левел-дизайнер раскрывает потенциал игровых механик на черновой геометрии уровня. На этом этапе еще нет красивых ассетов — только серые или разноцветные кубы. Потом лэйаут проходит многочисленные итерации. Последовательно проводятся плейтесты, сбор фидбека, анализ полученной обратной связи, новые итерации лэйаута и снова плейтесты. И так до тех пор, пока не получается то, что задумывали разработчики. Одновременно с этим левел-дизайнеры пишут гейм-дизайн документ карты с подробным описанием ее механик, сеттинга и прочими параметрами. Когда готова финальная итерация лэйаута, его отдают в арт-отдел. Именно там создают красивые ассеты и размещают их там, где раньше стояли серые примитивы. Параллельно с этим над картой работают остальные специалисты: художники по эффектам, саунд-дизайнеры, аниматоры и другие. Все они руководствуются не только лэйаутом, но и ГДД, в котором зафиксированы все особенности карты. В итоге получается полностью готовая карта не только с геймплеем, но и с художественным оформлением. После этого остается только финальное тестирование и релиз. Требования к карте сильно зависят от задачи, которую она должна выполнять. Сначала надо определить, зачем эта карта в целом нужна для игры? Что она привносит? Какие эмоции должна вызывать? В зависимости от ответов создаются требования, а сами левел-дизайнеры ищут способы решить эти задачи. Это, по сути, и есть дизайн. Тем не менее есть несколько общих требований, которые применимы в целом ко всем уровням. Локация должна подходить механикам игры и ее динамике. Например, если карта создается для режима с захватом точек, то ее лэйаут должен строиться в зависимости от их расположения. А если игрок может не только ходить, но еще прыгать или летать, то у него должна быть возможность осмысленно использовать это в бою. Для мультиплеерного шутера особенно важен баланс. У каждой команды на карте должны быть равные шансы на победу — стоит рассматривать лэйауты, начиная с винрейта 60/40, и последующими итерациями доводить его до идеального соотношения 50/50. Еще тактические возможности должны хорошо читаться: где можно пройти, а где нет, где находится враг, где игровая цель. Обычно для этого у проектов есть зафиксированные метрики геометрии, на которые опираются левел-дизайнеры: размер укрытий, проходов, арен и так далее.  Каждый кейс разработки карты уникален, но есть общие принципы левел-дизайна, которых придерживаются разработчики.  Обычно все начинается с ответа на вопрос: что это должна быть за карта? В зависимости от геймплея и режима можно прикинуть:  общие размеры карты;  количество основных проходов (лейнов);  геймплей на каждом из проходов; где будут укрытия; будет ли вся карта только для CQB (close quarter battle);  или же можно сделать дальние прострелы, чтобы снайперам было удобно;  должен ли уровень вызывать эффект клаустрофобии или ощущение свободы; игроки обороняются или атакуют; какая интенсивность боя должна быть на конкретном участке; и многое другое.  Все это закладывается в дизайн-документ карты еще до открытия редактора. Это один из наиболее творческих моментов разработки: все придумать, продумать и описать в дизайн-документе.  В целом любой левел-дизайнер при проектировании локации пользуется определенными методами, которые подходят именно ему. Руководствуясь этим, левел-дизайнер выстраивает геймплейное пространство.  К примеру, Денис Козин в первую очередь отталкивается от схемы движения игроков по карте — он смотрит, где находятся их домашние спавны, а где точки, которые нужно захватить, и продумывает, как пользователи будут перемещаться между этими местами.  Геометрия карты должна направлять игроков согласно схеме движения, давать достаточно пространства для столкновения в точках пересечения линий этой схемы.  Плюс помним, что нам нужно обеспечить постоянную циркуляцию игроков в пространстве, без остановок в тупиках. Также нужно дать возможность выбирать из нескольких вариантов действий в любой момент боя. Но при этом не перегружать игрока огромным количеством возможностей, а сохранять понятность и запоминаемость пространства.  Денис Козин, старший дизайнер уровней в Pixonic  Василий Скобелев при создании карты отталкивается от первоначальной задумки и постепенно развивает ее. Как правило, я начинаю с набросков на бумаге и пытаюсь накидать те основные идеи, вокруг которых хочу построить карту. Это может быть простой питч вроде «сделать трехэтажную карту», «обыграть большую вогнутую арену» или «бой на мосту». Уже после этого я приступаю к работе в движке и сперва пытаюсь перенести эти идеи один в один. Они неизбежно меняются в процессе и обрастают новыми деталями. Когда мне кажется, что я реализовал все, что хотел, я вношу технические изменения по финализации — добавляю навмеш, коллайдеры на границу игровой области и так далее. После этого карта попадает на тесты, и дальнейшие изменения я вношу уже не столько отталкиваясь от своих дизайнерских потребностей, но скорее решая проблемы, возникающие у игроков.  Василий Скобелев, ведущий дизайнер уровней в Pixonic  Для проверки своей карты можно поставить себя на место игрока и взглянуть на уровень его глазами. Именно такой подход использует Семен Зуев.  Я пытаюсь поставить себя на место играющего — включаю уровень в редакторе, бегаю по карте персонажем и попутно задаю себе вопросы. На этой платформе комфортно находиться? Не споткнется ли игрок на этой ступени? А если он бежит спиной и стреляет? Действительно ли его спасет это укрытие? Удобно ли ему туда забежать? Не врезается ли он в угол? Таким образом я словно скульптор накладываю на уровень один слой геометрии за другим. Неудобное отсекаю, хорошее и играбельное — оставляю.  Семен Зуев, дизайнер уровней в Panzerdog Есть два ключевых способа проверить, насколько интересной получилась локация — аналитика и отзывы.  Для анализа карты можно использовать разные инструменты и подходы. Например, если статистика показывает, что на определенной карте высокий процент досрочного выхода игроков из боя, то у нее, вероятно, есть геймплейные проблемы. Если же становится понятно, что какая-то сторона чаще побеждает на конкретной карте, то это говорит о проблеме с балансом. Также можно применять тепловые карты, чтобы оценить, какие участки локации наиболее часто используются. На основе этих данных можно анализировать поведение игроков и проверять, работает ли карта так, как задумывалась. Тепловые карты дают возможность провести работу над ошибками, сделать нужные выводы.  Не менее важны и отзывы игроков. Левел-дизайнеры всегда должны спрашивать на плейтестах о впечатлениях пользователей, читать комментарии, смотреть стримы. Все это помогает понять, как аудитория оценивает локацию. Тем не менее надо понимать, что в чистом виде фидбек зачастую не дает понять, в чем на самом деле проблема — он либо слишком общий, либо акцентируется на следствии, а не на причине. Поэтому разработчик должен уметь расшифровывать такой фидбек, чтобы определять причину какого-либо недовольства или неудобства. Но эмоции игрока — это самый яркий показатель успешности или неуспешности карты. Но всегда надо помнить, что отзывы и статистика могут противоречить друг другу — на рынке есть карты, которые в сети вспоминают недобрым словом, но по факту они в топе самых популярных карт на проекте. Наоборот тоже бывает. Поэтому важно понимать, что для вас важнее.  На этапе пре-продакшена это обычная история — левел-дизайнеры собирают прототипы, улучшают и эволюционно развивают. Что-то отсекают с самого начала, что-то пытаются доработать. И в ходе многочисленных плейтестов разработчики проверяют, получилось ли воплотить оригинальную задумку или нужно что-то еще изменить. И только самое лучшее доходит до этапа продакшена. После этого отказываться от уровня будет слишком дорого, поэтому команды всегда строго отсеивают карты и следят за тем, чтобы к моделлерам попали те карты, которые не вызывают нареканий.  Но есть некоторые исключения. Если карта получилась неудачной еще на пре-продакшене, ее можно передать другому сотруднику со свежей перспективой — иногда это приводит к появления лучших локаций в игре.  Левел-артисты выставляют на карте готовые ассеты вместо черновой геометрии, настраивают свет и выполняют прочие манипуляции для финализации визуала. В процессе работы левел-артистам от дизайнеров нужен сам лэйаут и гейм-дизайн документ с описанием особенностей карты. Когда левел-артисты заканчивают свою работу, левел-дизайнеры обязательно перепроверяют геймплей, чтобы убедиться в том, что ничего не поменялось и все работает как раньше.  Совместная работа с левел-артистами и художниками проходит в постоянном контакте и диалоге. Иногда левел-дизайнерам бывает очень полезно выслушать фидбек от художника — это может подтолкнуть к необычным дизайнерским решениям. Только работая в команде можно добиться первоклассных и поистине выдающихся результатов. Специалисты должны уметь слушать и слышать друг друга.  Делайте как можно больше уровней. При этом не останавливайтесь на одном жанре — пробуйте разные направления. Создавайте пользовательские карты к вашим любимым играм, участвуйте в конкурсах для моддеров. Можете даже создать карту по мотивам выбранной вами игры просто в игровом движке. Главное, чтобы эти уровни были законченными, пусть и маленькими. Это не только прокачает ваши навыки, но и пополнит портфолио для будущих собеседований! Анализируйте карты в играх. Вокруг какого геймплея построена локация? Как устроено движение игроков на ней? Какие элементы все это поддерживает? Что вам нравится больше всего, а что меньше всего? Что бы вы изменили? Поиск ответов на эти вопросы поможет лучше понять структуру геймплея и обогатит вашу насмотренность, которая в будущем обязательно пригодится. При этом не отказывайтесь от игр, которые могут поначалу показаться плохими или недостойными вашего внимания. Если у вас будут только примеры того «как надо делать», то вы не сможете увидеть ошибки, когда сами начнете их делать. Анализ негативного результата тоже нужен. Играйте в то, что вдохновляет, а не в то, что обязательно похоже на ваш проект. Опыт показывает, что если человек, делающий шутер, проходит игры только этого жанра — он очень быстро сгорает от однообразия. Развивайте свой кругозор вне геймдева. Изучайте фильмы, книги, живопись, музыку и путешествуйте — все эти вещи расширяют ваш кругозор, а значит и транслируется в вашу работу. Не ориентируйтесь на ролики по Speed Level Design на YouTube. Их цель в том, чтобы получить красивую картинку, а не грамотный левел-дизайн. Если вам ни во что не хочется играть, вы не видите вокруг хороших игр и вообще уже не ждете никаких релизов — возьмите отпуск. «Игровая импотенция» — почти всегда признак перегрузки. И это достаточно серьезная проблема, так как без новых игр и впечатлений разработчик не сможет поддерживать свою экспертизу. Если вы потеряли интерес к играм, нужно приложить усилия, чтобы его вернуть. И иногда для этого нужно просто отдохнуть.  Подписывайтесь на наш Telegram-канал. Там мы регулярно выкладываем ссылки на новые статьи и публикуем полезный геймдев-контент.​