Gamedev Андрей Верещагин
3 545

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

Опыт разработчиков студии Azur Games.

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

Ведущий технический 3D-художник студии Azur Games (World War Heroes, Space Armada) Джеймс Браф написал для DTF колонку, в которой поделился советами по созданию окружения и дизайна уровней для мобильных игр. Он рассказал об особенностях платформы и о том, на что следует обратить внимание разработчикам.

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

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

  1. основная идея для уровня;

  2. блокаут — базовый набросок окружения для передвижения персонажа и геймплейного тестирования;

  3. собрание референсов;

  4. оверпейнт (он же — обрисовка, как правило созданный концепт-художником);

  5. финальный продукт.

На первый взгляд — всё просто, не так ли?

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

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

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

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

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

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

Развлечение

Прохождение игры должны быть увлекательным

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

В предвкушении «вау-момента» создайте комфорт там, где присутствует дискомфорт.

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

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

Кроме того, хорошо, когда у игроков есть интересные зоны для изучения. Не каждый момент игры должен быть «вау». Всё больше и больше доступных миру игр появляются на мобильных устройствах, поскольку портативные устройства становятся всё более универсальными. Это означает постоянное появление областей для изучения, создание более интересных моментов для игроков. Создание большего количества контента. Здесь мне хотелось бы сосредоточиться на так называемых ключевых точках интереса.

Ключевые точки интереса

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

Как пример, если вы увидите Эйфелеву башню вдалеке, вы же угадайте, где вы? Иногда, если вы чувствуете, что вашей сцене не хватает «вау-эффекта», возможно, вам необходима точка интереса.

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

Демонстрация

Дизайн и уровень должны нести в себе идею и принципы игры

Изображение от студии Last Level

Простой задний план — всегда эффективный приём. Дизайн и уровень должны презентовать основную идею игры и её принципы, не важно, создаете вы 2D или 3D-уровень: в любом случае он должен служить платформой для демонстрации игрового процесса.

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

Дизайн окружения и герой должны дополнять друг друга

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

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

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

Будьте готовы убрать или добавить элементы для улучшения вашей сцены в игре

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

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

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

История

Очевидные или малозаметные элементы рассказывают нам истории

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

Увидев уровень, мы должны получить общее представление о том, что здесь происходит. Или «что здесь произошло?» В AAA вы применили бы теорию «а что ещё здесь должно будет произойти в будущем».

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

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

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

Баланс

Дизайн и референс должны дополнять мир и героя, которых вы изображаете

Для хорошего уровня характерен баланс между визуальным оформлением и основной идеей. Приведу яркий пример: представьте себе, что вы создали серьёзный научно-фантастический шутер, но ваш персонаж бежит по средневековому миру – в данном случае, очевидно, отсутствие баланса. Спросите себя: «Мой персонаж принадлежит этому уровню?» или «Почему в космическом корабле есть статуя лошади?».

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

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

Задний план не должен подавлять передний план или героя

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

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

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

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

Выбор

Дайте игрокам почувствовать, что они принимают решения

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

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

Не наказывайте игроков за желание импровизировать

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

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

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

В мобильной игре мёртвые концы и ложные знаки, которые ведут игрока к его смерти, на самом деле, не рациональны — они действительно раздражают игроков. Пользователи не скажут вам: «Вау, ты провёл меня». Они скажут: «Это было глупо, почему ты так поступил? Твоя игра сломана». Поэтому, если у вас в игре должны быть тупики то убедитесь, что игроку есть смысл бороться, чтобы он не разозлилился.

Симметрия

Симметричные поля сражения предполагают более честную борьбу

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

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

Особые ориентиры могут сохранять зеркальную симметрию

Изображение от студии Last Level

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

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

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

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

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

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

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

#левелдизайн #мобайл

{ "author_name": "Андрей Верещагин", "author_type": "editor", "tags": ["\u043b\u0435\u0432\u0435\u043b\u0434\u0438\u0437\u0430\u0439\u043d","\u043c\u043e\u0431\u0430\u0439\u043b"], "comments": 8, "likes": 29, "favorites": 77, "is_advertisement": false, "subsite_label": "gamedev", "id": 32124, "is_wide": true, "is_ugc": false, "date": "Fri, 23 Nov 2018 15:26:39 +0300" }
{ "id": 32124, "author_id": 22254, "diff_limit": 1000, "urls": {"diff":"\/comments\/32124\/get","add":"\/comments\/32124\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/32124"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "possessions": [] }

8 комментариев 8 комм.

Популярные

По порядку

Написать комментарий...
8

Представьте себе перечёркнутый знак со стрелкой, указывающей налево, и подпись под ним: «Смерть в той стороне». Вы предпочли бы повернуть направо, не так ли?

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

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

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

В предвкушении «вау-момента» создайте комфорт там, где присутствует дискомфорт

Очень хотелось бы какого-нибудь показательного примера и обозначить этот "небольшой промежуток времени". На мой взгляд это время, которое человек проводит на толчке или стоит в очереди. Не больше 10-15 минут. Этот момент интересен тем, что на самом раннем этапе, о котором говорит автор, обычно происходит обучение игрока, в которое непросто запихать "вау-момент". ХС интересно решал этот вопрос, когда в обучении ты играешь против "нечестного" Иллидана. Раннер с Рейманом решал вопрос через сбор хлама для на уровне для награды - то есть моментальная аддиктивность, желание перепройти, чтобы собрать всё, если что-то пропустил.

Следите за размерами и не дайте своему герою раствориться за другими объектами.

На примере все персонажи-роботы растворились за UI элементами.

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

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

Для хорошего уровня характерна симметрия.

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

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

В итоге.
Малоинформативная статья без примеров. Скудные и спорные тезисы. Плохо.

Ответить
4

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

Ответить
0

Это только первая статья из цикла, так что отличный старт, как по мне.

Ответить
1

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

Ответить
0

Моя благодарность за статью!

Ответить
1

Пффф, статья похоже на курсовой. Вода водой.

Ответить
1

Реклама продуктов Азур Геймс)

Ответить
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": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "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, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "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": 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" } } } ]
В лутбоксы начали включать багфиксы
Подписаться на push-уведомления