Gamedev
Игорь Дятлов
5743

Как левел-дизайнеры создают уровни

Инструменты и этапы разработки.

В закладки
Аудио

До своего финального воплощения любая локация переживает десятки правок, а иногда и вовсе переделывается с нуля.

Рассказываем, какими инструментами пользуется профессиональный левел-дизайнер и как устроен процесс создания уровня. При подготовке материала использовалась информация из блога Михаила Кадикова и комментарии Дениса Куандыкова. Оба преподают на курсе по левел-дизайну «OutBlock».

Инструменты левел-дизайнера

Бумага

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

Метрики

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

Метрики — это всегда фиксированные величины. Они определяют всё, что угодно: например, ширину оврага, преодолеваемую прыжком, высоту укрытий, дальность полёта пули из конкретного оружия. Габариты элементов окружения тоже сверяют с метриками, — иначе собачья конура на уровне нечаянно может оказаться размером с дом.

Блокауты

Определив метрики, левел-дизайнер собирает блокауты — трёхмерные макеты уровня. Их всего два типа.

Designer block out или grey box — это макет используют для проверки геймплея. В нём есть только то, что непосредственно влияет на игровой процесс. Серые кубы, сферы, цилиндры и плоскости схематично отображают будущую локацию, хотя и создаются с учётом всех пропорций и масштабов. Неважно, насколько красиво нарисована яма с кольями — главное, чтобы игрок точно мог через неё перепрыгнуть.

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

Пережив все правки по механикам, прототип обрастает деталями и превращается в Art block out, он же — White box. В нём художники прорабатывают визуальную часть уровня: накладывают на серый эскиз цвет и полноценные модели вместо фигур.

Этапы создания локации

1. Планирование

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

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

Эмилия Шац, левел-дизайнер Uncharted 4:

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

Можно выделить три основных типа структуры уровня.

Линейная — все ответвления локации возвращают героя на основные «рельсы». Пример — Call of Duty: Modern Warfare.

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

«Паутина» — соединение множества кластерных уровней, по которым игрок может свободно перемещаться и проходить уровень нелинейно. Пример — Watch Dogs 2.

2. Работа с бумагой

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

Михаил Кадиков, левел-дизайнер Crytek:

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

3. Создание играбельного прототипа.

Это тот самый «серый» блокаут. Благодаря Grey box левел-дизайнер может впервые увидеть локацию своими глазами.

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

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

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

Михаил Кадиков, левел-дизайнер Crytek:

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

4. Тестирование геймплея

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

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

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

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

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

Денис Куандыков, левелдизайнер VOID Interactive:

Лифты из Mass Effect, тесные улочки в The Last of Us, любой узкий лаз из перерождённой Tomb Raider — все эти места призваны замедлить прохождение игрока, чтобы движок в это время выгрузил использованные ресурсы и подгрузил новые.
В таких ситуациях Occlusion culling, то есть отсечение всего того, что не видит камера игрока, работает очень быстро, так как может сразу целыми кусками «срезать» окружение позади игрока. А одно из самых удачных применений этой технологии можно встретить в Uncharted 2, на уровне в поезде — когда игрок открывает дверь между вагонами, фоновая локация меняется.

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

5. Создание White box

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

Михаил Кадиков, левел-дизайнер Crytek:

Из временных моделей на основе геймплейного прототипа собирается «белый» уровень. Художник по окружению должен постараться не только оставить геймплей прототипа неизменным, но и использовать любые художественные средства для улучшения навигации по уровню (освещение, композиция, контраст и т.д.).
Интересный пример разницы между всеми видами блокаутов можно подсмотреть в Uncharted 4: A Thief’s End. На изображении ниже представлена локация из эпизода «The Twelve Towers», которая очень наглядно демонстрирует разницу между этапами разработки уровня: от геймплейного прототипа, собранного левел-дизайнером, к прототипу геометрии локации, нарисованного художником, и, наконец, до финальной версии уровня.

​Изображение из блога Михаила Кадикова

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

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

6. Cоздание финальной версии уровня

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

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

Михаил Кадиков, левел-дизайнер Crytek:

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

Изменения в процессе

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

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

Например, к началу разработки Uncharted 4 у команды разработчиков накопилось множество идей. Самой заманчивой была механика крюка-кошки — это приспособление должно было освежить перемещение по уровню, добавив окружению интерактивности.

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

На практике же левел-дизайнер Эмилия Шац уже на этапе «серого» блокаута обнаружила, что процесс получился слишком громоздким и только замедляет прохождение: рано или поздно начнёт раздражать игрока. В итоге геймдиректор Uncharted 4 Брюс Стрейли принял решение упростить механику: теперь для использования крюка достаточно нажать на одну кнопку.

Брюс Стрейли, геймдиректор Uncharted 4:

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

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

Денис Куандыков, левел-дизайнер VOID Interactive:

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

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

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

Автор: Юрий Кулагин

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

Написать
{ "author_name": "Игорь Дятлов", "author_type": "self", "tags": [], "comments": 32, "likes": 184, "favorites": 733, "is_advertisement": false, "subsite_label": "gamedev", "id": 93380, "is_wide": false, "is_ugc": true, "date": "Wed, 15 Jan 2020 18:04:20 +0300", "is_special": false }
0
{ "id": 93380, "author_id": 158163, "diff_limit": 1000, "urls": {"diff":"\/comments\/93380\/get","add":"\/comments\/93380\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/93380"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
32 комментария
Популярные
По порядку
Написать комментарий...
5

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

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

Ответить
9

Ты ничего не понимаешь, это левел-дизайн!

Ответить
3

Как много времени вы потратили на наслаждение видом горизонта и ощущения путешествия в Мафии? 10 минут? 15?

Ответить
1

Я в третьем ведьмаке на прогулки по красотам потратил больше 10 часов точно. Не на геймплей, вопросики и квесты, а именно на ходьбу и любование. В одном Blood and Wine (я засёк) было 6 часов, в остальной игре хз, но было. Держу в курсе.

Ответить
1

Очень мило, только вот в Ведьмаке как раз равнины без ничего и нет (как в Мафии), там то камешок, то холмик, то трупиков горка, то парочка гулей или бандитов, клеточки там всякие, дорога узловатая. 

Ответить
0

Да про какую-же "Мафию" вы говорите?

Ответить
0

Не, ну врать не буду, специально ради видов туда не ездил. Но. Есть игра, которая является для меня одним из самых красивых openworld'ов именно из-за того, что там просторы. Там между тобой и горизонтом ничего нет. Там можно вздохнуть полной грудью. Речь об Arma 3.

Часто загружал там пустую карту в редакторе и просто ходил/ездил по ней.

PS: В Test Drive открывал все дороги под классическую музыку из тех же побуждений.

Ответить
0

Вы как то все в этом треде не поняли фишку с "Горизонтом".

В статье и на примере игры из статьи - горизонт никто не убирал, нарезалась композиция с помощью скал.

В ARMA это тоже есть, банальные горы работают так же - отличие в том что ARMA косит своим окружением под реально пространство.
А в "симуляторах" подход к дизайну часто работает не от "gameplay-first", а "simulate-first".

Это не только игр с графической стилизацией касается, в God Of War и Skyrim теже самые подходы. Широкая равнина кажется еще шире и просторней на контрасте с горами и пещерами, они дополняют друг друга и раскрывают.

Ответить
0

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

Ответить
5

Спасибо за статью! Наконец-то на ДТФ начал развиваться левел-дизайн. Приятно читать профильные статьи, а не рассматривать мемы и гифки. 

Ответить
0

сам сейчас изучаю левел дизайн и единственные трудности возникли с " Технической Документацией " или попросту как оформляется ГД документация. 

Если у кого есть ссылка на статью или тутор , буду благодарен. 

Ответить
8

Нет никакого госта. Как хочется так и оформляйте. Работаете в крупной компании - делайте так, как принято по тех процессу. Работаете в небольшой команде - делайте так, чтобы было удобно команде. Работаете самостоятельно - делайте так, чтобы было удобно себе. Хотя зачем писать документацию для себя? Записывайте то, что есть риск забыть. Список задач помогает продвигаться. А документация делается для кого-то со стороны.

Ответить
1

Да  достаточно вбить в поиске что-нибудь типа Level Design Document Examples.

Вот здесь например уровень из Bloodborne: https://yadi.sk/i/TpWWEX72sKpLFQ
А вот тут примеры из HL2, COD, Quake 4 https://wiki.zeroy.com/index.php?title=Level_Design:_Level_Design_Document_Example

Ответить
0

Ух чуть не забыл, спасибо что напомнил.
Книга же есть Predproduction Blueprint - она во многом как раз в подготовке документов, рефов и схем перед производством уровней.

Ответить
0

Честно говоря если и есть примеры документации на руках то ее просто из за NDA нельзя палить.

Ответить
2

Статья местами превратилась в цитирование Кадикова :) Это хорошо, но хотелось бы чтобы автор хотя бы посмотрел GDC выступления различных ЛД, там много полезного. 

Ответить
1

Так это ж пост от школы XYZ, у них Кадиков работает, как они написали в этой статье

Ответить
1

Вот кстати, меня всегда мучает вопрос, почему во всех играх, если есть  комнаты испытаний, то их всегда три. Три арены, три логической задачи и тд. В Этом есть какой то смысл или тупо рандомное число? 

Ответить
3

Обычно не больше трёх, но достаточно часто бывает и две. Например 2-3 маршрута, 2-3 двери, которые видны одновременно, 2-3 цели и так далее. Это устоявшиеся числа. Не много и не мало. 4 -уже много, сложно уследить. 1 - мало, нет выбора.

Ответить
1

Спасибо за статью. Интересно было почитать больше про метрику и сопоставление величин с реальными. Пыталась сопоставить пройденный путь со скоростью и реальными величинами в ETS2, не получилось 😂

Ответить
0

А чего про неё читать-то. Берешь игру в нужном  тебе жанре, как эталон и подробное её анализируешь. Можно даже распотрошить на составляющие.

Ответить
0

Симуляторы вообще порой не по "геймплейным" правилам созданы, понятие метрики там скорее всего просто описаны исходя из реального мира (где вполне могут быть косяки и несоотвествия - что реалимтично и нормально)

Ответить
1

Ну симуляторы разные бывают.  В гоночных симуляторах наверное все более-менее реально.

Я лично ETS2 не копал, но в некоторых местах встречается информация о использовании масштабов 1:19, 1:15, 1:3, Т.е. 1 реальный километр соответствует 15 игровым.
P.S. Судя по всему, есть пользователи которые создают свои собственные карты с масштабом 1:1.

Ответить
0

Тема важная и интересная да, затронем ее обязательно. А что за EST2?

Ответить
0

Euro Truck Simulator 2

Ответить
0

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

Ответить
1

Лучше объясните, кто придумывает такие ограждения типа мемной "двери из Фолаута 3" или заборчиков, которые по виду должны от тычка рассыпаться в труху

Ответить
0

Читая про метрики вспомнил как в Crysis 2 корёжит модель игрока когда он выглядывает из-за укрытия) Где-то даже ролик или gif-ка была.

Ответить
0

Отличная статья, благодарю)

Ответить
0

Было интересно узнать подробнее про метрики. Как их строят? С чего начинать?

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]