Pixonic Nikita Guk
7 591

Инструментарий геймдизайнера: юзерстори, или как помочь игроку разобраться в новом контенте

Обучение простым языком.

В закладки

Сейчас расскажем о приёме, который помогает геймдизайнерам продумывать в игре детали. Допустим, мы добавили новый контент и хотим рассказать о нём. Как это сделать? Как мотивировать игроков попробовать новое и объяснить всю механику? Разобраться в этом поможет юзерстори. Продюсер Pixonic Анатолий Шестов дальше расскажет, что это и как работает.

Говоря языком терминологий, юзерстори (User Story) — это лишённый технических деталей текст, который описывает взаимодействие с тем или иным элементом глазами игрока (то есть его опыт, историю и ощущения). В смежных отраслях похожий приём называют User Journey.

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

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

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

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

Информирование. Как игрок узнает, что есть такая способность

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

Как рассказать о новой фиче максимальному количеству пользователей? Для этого есть несколько решений и масса нюансов.

  • Сделать публикации в социальных сетях проекта: анонсировать, устроить розыгрыш или конкурс с новым контентом. Тут нужно понимать, что это увидят только ваши подписчики.
  • Поработать с инфлюенсерами — сейчас это один из самых действенных методов информирования. Их видеоролики и посты посмотрит ещё одна группа активных игроков-зрителей.
  • Рассказать о фиче в коротких текстовых подсказках. На них обратят внимание только те, кто их читает.
  • Развернуто написать в обновлении. Прочитает небольшая прослойка игроков, которая интересуется патч-ноутами.
  • На всех местах, где эта абилка встречается, повесить маркеры нотификации (яркие элементы, появляющиеся на кнопках и показывающие, что появилось что-то новое). Так значимая часть игроков хоть на каком-то моменте, но увидит информацию об этой способности. Увидит, запомнит, что «невидимость» есть, но все нюансы и детали, вероятно, будут забыты на следующем же экране.
  • Добавить контент с новой абилкой на доступную внутри игры тестовую площадку. В комьюнити появятся ролики с геймплеем, начнутся обсуждения сборок и баланса. Теперь ещё 5-7% игроков знают о невидимости, представляют, как ее использовать и хотят пощупать своими руками.
  • И, наконец, добавить персонажа с этой способностью в отдельный режим, и запустить квест «сыграть матч с этим контентом» с приятной наградой.

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

NB! Это — первый кусочек юзерстори нашей абилки, который будет только дополняться следующими пунктами.

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

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

Какие могут быть решения.

  • Иконка абилки должна вызывать прочные ассоциации с невидимостью и не пересекаться с иконками схожих способностей типа камуфляж (когда персонажа видно, но нацелиться на него оружием с самонаведением нельзя) или шпион (когда для оппонентов игрок выглядит так, будто играет в их команде).
  • В отдельном режиме, куда добавлен персонаж с невидимостью, убрать все другие способности похожего типа.
  • В отдельном режиме давать новую абилку не сразу всем игрокам, а постепенно. Скажем, раз в час-полтора невидимость (и вся окружающая её функциональность) появляются у 5% игроков. Теперь можно с достаточно высокой вероятностью предположить, что в одном специальном матче эта способность будет лишь у нескольких игроков. В реалиях нашего проекта War Robots это значит, что в среднем 10 из 12 участников трех-пяти боёв смогут посмотреть на невидимость со стороны.

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

NB! Это — второй кусочек юзерстори нашей абилки. В конце статьи мы сложим их все вместе и покажем итог.

Обратная связь. Как сделать использование способности удобным

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

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

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

Плей и контрплей. Как абилка сделает игру интересной не только для тех, у кого она есть

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

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

  • С одной стороны, можно поменять невидимость на полупрозрачность и шанс избежать урона (к примеру, сделать уворот, как в League of Legends), не убирать возможность атаковать невидимую цель и не скрывать UI-элементы, указывающие на это (ник игрока, его health bar и так далее). Что нам это даст? Абилка станет куда более требовательной к игровому опыту игрока, мощной, но из атакующей и провоцирующей на активные действия превратится в защитную, пассивную, использующуюся для выживания. В данном эксперименте считаем, что это нам не подойдет.
  • С другой стороны, можно пойти по пути Starcraft и фильма «Хищник» — добавить невидимому персонажу шейдер ряби, чтобы внимательные и сосредоточенные игроки получили возможность среагировать. Решит ли это проблему? Отчасти. Потому что самое мощное негативное ощущение было залпом из пустоты.
  • Предположим, что при начале стрельбы действие невидимости будет мгновенно прекращаться. Поможет? Тоже нет, потому что выстрел всё равно будет восприниматься как вылетевший из пустоты. А какое время игроку достаточно воспринимать цель, чтобы успеть прожать защитную абилку или хотя бы просто рассмотреть противника? Полсекунды. Тогда вешаем на начало стрельбы из режима невидимости полсекундный «разогрев», за который ускоренно прогоняем визуальный эффект окончания действия невидимости.
  • Игрок стреляет длинной очередью по оппоненту. В середине очереди пули перестают долетать до цели, а останавливаются где-то по середине. На десятый раз игрок догадается, что причина — это вставшая между ним и целью невидимка. Это время можно уменьшить, добавив возможность «прощупывания» поля на предмет невидимок с помощью неприцельной стрельбы. Для этого достаточно добавить отдельный визуальный эффект при попадании в невидимые цели.

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

Точки распространения. Как игрок получит новую способность

Игрок открыл список персонажей с желанием взять того самого — персонажа с инвизом. Юзерстори снова поможет нам понять, что ждет его на этом этапе.

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

  • Разместить этого персонажа в начале списка.
  • Отцентровать список на нужного персонажа.
  • Повесить на персонажа лейбл «новинка».
  • Вывести на общую витрину иконку невидимости, как главное отличительное свойство.

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

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

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

Юзерстори целиком

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

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

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

Первое время персонаж доступен только в отдельном игровом режиме и для ограниченной аудитории, увеличивающейся на 5% раз в полчаса. Я мотивирован отправиться в этот режим с помощью отдельного квеста с хорошей наградой.

К тому моменту, как способность становится доступна, я знаю, как она выглядит для меня (эффект включения, специальный шейдер, эффект выключения), как использовать эту способность эффективно (снимать агр с себя, обманывать одиночных оппонентов, близко подбираться к незащищенным целям) и что против меня будут предпринимать оппоненты (мерцание при попадании в невидимую цель — чтобы обнаружить невидимку; первые 0,5 секунды после выхода нет дамага и можно успеть навести прицел, прожать абилку или сместиться к укрытию).

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

В первом таком бое меня несколько раз убивает невидимка, и после этого боя я получаю окно с предложением оценить нового персонажа. Естественно, я его скипаю. Возвращаясь к главному экрану, я вижу на кнопке списка персонажей индикатор того, что там появилось что-то новое. Открыв список, я сразу попадаю на нового персонажа с невидимостью — я узнаю его по яркой иконке, которую уже видел. Я читаю описание персонажа, смотрю на ТТХ абилки и начинаю прикидывать, насколько она «тащерская».

Я возвращаюсь в бой, чтобы выполнить квесты на невидимке и вижу, как персонаж-невидимка под управлением другого игрока берет топ-1 по всем показателям. Мне опять предлагают оценить персонажа. Я выбираю вариант «не очень» и задумываюсь над тем, чтобы поиграть на нём самому в основном режиме. Решаю обсудить это с командой.

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

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

Вместо итога

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

Игровым (или системным) дизайном в академическом значении этого термина мы занимались только в пункте «Плей и контрплей», но реалии игровой разработки зачастую требуют от геймдизайнеров немного продуктового мышления, и какое-то понимание меты своего проекта, и значительный игровой опыт.

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

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

P.S. У Толи классный блог, в котором много подробностей про нюансы разработки игр.

#опыт #геймдизайн #long
{ "author_name": "Nikita Guk", "author_type": "editor", "tags": ["long","\u043e\u043f\u044b\u0442","\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 19, "likes": 44, "favorites": 97, "is_advertisement": false, "subsite_label": "pixonic", "id": 38427, "is_wide": false, "is_ugc": false, "date": "Fri, 01 Feb 2019 13:54:28 +0300" }
{ "id": 38427, "author_id": 16463, "diff_limit": 1000, "urls": {"diff":"\/comments\/38427\/get","add":"\/comments\/38427\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/38427"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 71287, "possessions": [] }

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

Популярные

По порядку

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

Скажу честно: мне не понравилось. Логика верна, но очень много телодвижений ради одной "абилки".
Одна абилка затрагивает чуть ли не всех в команде разработки/поддержки - описано очень дорогое, как по мне, дело. Я бы реализовал проще исходя из логики: те кому интересно появление новых абилок сами о ней узнают(хватит патчноута и какого-нибудь объявления в игре при каждом +- входе, до тех пор пока игрок не заюзает абилку) большая часть юзеров все равно игнорируют новости/обновления/пачтноты.

Вообщем у меня только одна претензия: описанная "проблема" решается путем "стрельбы из пушки по комарам"

Ответить
0

Противоречишь сам себе.

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

Ответить
3

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

не, неправильный подход, цель любой фичи принести прибыль, а не известить юзера о том, что такая фича есть. Я пытался указать на то, что все телодвижения в примере с данной абилкой очень затратны в плане производства, при этом я не понимаю на что она конкретно повлияет в плане прибыли для игры. Фича ради фичи?
Просто, как мне кажется, не очень удачный пример с этой абилкой. Сюда бы подошли более монументальные вещи типа нового банка или режима игры
Разумеется, все сказанное мною ИМХО

Ответить
1

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

Учебный материал же!

Ответить
1

структурирован материал хорошо, читать было интересно, я просто высказал свои "опасения"

Ответить
1

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

Ответить
3

Иронично, что перечисляешь способы презентации обновления/персонажа, после этого сразу оставляя картинку с овервотчем, при этом не используя главную информационную стратегию овервотча:

1 - О событиях информируют сразу при входе в игру коротким(!) информативным окном и с тематическим изображением для привлечения внимания
2 - Новый персонаж/событие нередко говорит о себе тупо присутствуя на главном меню!

Ну правда, перечислять тестовые сервера, но молчать про это?

Ответить
1

Мэйби, джаст мэйби, ю шуд стап юзинг ступыд вордс лайк юзерстори?

Ответить
2

Оу, хай Марк

Ответить
1

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

Ответить
0

Спасибо за фидбек! Подумаем, может и правда сделаем выпуск, посвященный этой теме)

Ответить
0

застрахует нас от случаев «читал, но не прочитал», «не осилил, много букв» и «я в этот раздел никогда не смотрю»

I know that feel bro
Напишешь кучу подробностей в диздоке, на выходе получаешь совсем не то. В оправдание - "А я только чеклист прочитал"

Ответить
1

Значит чек-лист нерелевантный.

Ответить
0

вот это по делу написано!

Ответить
0

я получаю окно с предложением оценить нового персонажа. Естественно, я его скипаю.

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

Ответить
0

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

Ответить
0

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

Ответить
0

Я по ошибке ответил на Ваш комментарий в общем треде и не разобрался, как комментарий удалить.

Ответить
0

Базовая логика любого скилл-капового элемента строится на наглядности каждого степа. Либо игрок понимает, что он сделал хорошо, а что - не очень, и как это изменить, либо нет. Задача юзер-стори в этом контексте - просто убедиться, что в саму фичу заложены элементы, позволяющие игроку это сделать. Можно было бы аналогичным примером расписать Q Лисина из лола, но это бы заняло Х4 объема, сместило бы фокус с продуктового мышления, продуктового подхода к чистому дизайну и было бы нещадно зарезано редактурой )

Ответить
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" } } } ]
В Steam появилась функция продажи
подержанных цифровых копий игр
Подписаться на push-уведомления