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

Введение

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

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

Видео: знакомство с пользовательским контентом и мастерской Steam.

https://www.youtube.com/watch?v=SRyUpR4qOxU

Видео: пользовательский контент и мастерская в игре ARK: Survival Evolved

Это выступление Джереми Штиглица из Studio Wildcard на конференции Steam Dev Days 2016 года о том, как развитие пользовательского контента в мастерской Steam привело к созданию активного сообщества вокруг игры ARK: Survival Evolved. Здесь вы также найдёте описание технических и художественных подходов, которые помогли достичь этого результата:
https://www.youtube.com/watch?v=faweKXUTKgQ

Руководство по фирменному стилю в мастерской Steam

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

Типы интеграции мастерской

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

  2. Модерируемая мастерская — оптимальный способ более строгого контроля над попадающими в игру работами, однако каждую из них нужно будет проверить и добавить в обновлении. Этот способ лучше приспособлен для простого контента небольшого размера: оружия, шляп и других аксессуаров. При продаже предметов должна использоваться надёжная служба хранения (например, служба инвентаря Steam) для отслеживания владельцев внутриигровых предметов. Также необходимо создать магазин для внутриигровых продаж. Цены устанавливает разработчик.

Открытая мастерская

Причины для использования

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

С чего начать

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

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

Интеграция

Ниже приведены типичные компоненты, которые следует учитывать при интеграции открытой Мастерской в вашу игру:
  • Загрузка контента в клиент однопользовательской игры. Если вы хотите, чтобы созданный пользователями контент был готов к использованию, то игра должна иметь соответствующую структуру. Обычно это означает, что игре понадобится проверять, какие из файлов следует загружать. Если вы разрабатываете собственную систему проверки, рекомендуется, чтобы клиент игры сначала проверил список файлов, на которые подписан пользователь Steam, а затем загрузил соответствующие папки. Вам также понадобится тестовая среда, которая позволяет авторам работать над своими модификациями и способна загружать файлы из рабочей папки.
  • Загрузка контента в клиент многопользовательской игры. Работы или контент, необходимые для функционирования игры нескольких пользователей, можно скачать на все нужные клиенты. Например, если игрок подписался на пользовательскую карту в мастерской, а затем пригласил на неё друзей, ваша игра должна распознать пользовательскую карту и скачать контент из мастерской для других игроков до начала игры.
  • Загрузка контента его авторами. Вам понадобится инструмент, чтобы авторы могли загружать свой контент в вашу Мастерскую, используя API ISteamUGC. Он может представлять собой либо часть вашей игры, либо отдельное приложение. Поскольку предметы, созданные для вашей Мастерской, должны быть готовы к немедленному использованию, ваш инструментарий должен пропускать файлы только в формате, который клиент игры готов загрузить вместе с изображением для предпросмотра. В зависимости от контента, который вы просите авторов загрузить в Мастерскую, вам, возможно, понадобится собственный инструментарий (особенно в случае таких крупномасштабных модификаций игры, как изменение её логики, процессов и всего того, что выходит за пределы модификации лишь внешнего вида). К примеру, игры, более всего подходящие для модификаций, выпустили свои собственные инструменты, чтобы авторы могли воспользоваться теми же средствами, что и разработчик. Подобные инструменты также могут ограничивать и проверять созданный контент, если вы хотите контролировать перезапись файлов или список доступных для изменения элементов игры. В качестве информации, предоставляемой потенциальным создателям работ в мастерской, рекомендуется создать руководство по стилю, а также сводку правил относительно того, какой контент вы хотели бы видеть в своей игре, а какой считаете недопустимым.

    Обратитесь к разделу «Руководство по Мастерской Steam» за подробной информацией о том, как приступить к использованию функций мастерской Steam в API Steamworks.

Доставка работ пользователям

Работы, размещённые в открытой мастерской, автоматически доступны для подписки (если они бесплатные) или покупки (если они платные) и автоматически скачиваются через клиент Steam (чтобы эта функция работала, необходимо интегрировать API ISteamUGC в ваш продукт. Подробнее читайте в технической документации в разделе «Руководство по Мастерской Steam»). Мастерская Steam обновляет все модификации в клиенте до последних версий. При покупке модификации Steam обрабатывает покупку, оплату, выплаты авторам и разработчику, а также удержание всех необходимых налогов.

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

Модерируемая мастерская

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

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

Причины для использования

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

С чего начать

Вы можете немедленно приступить к работе и настроить страницу модерируемой мастерской, добавив простую форму в игре и опубликовав рекомендации и информацию по фирменному стилю для потенциальных создателей предметов. Для загрузки контента в мастерскую вам понадобится интеграция с API ISteamUGC (см. «Руководство по Мастерской Steam»). Это позволит авторам предметов начать разработку идей и публиковать свои предметы в мастерской для оценки сообществом. Как правило, рекомендуется, чтобы авторы публиковали в мастерской законченные продукты. Если вы разрешите публикацию незаконченных проектов или идей, вам придётся продумывать процесс превращения идей в реальные предметы, что чаще всего сложно масштабировать.

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

Процесс интеграции

Ниже приведены типичные компоненты, которые следует рассмотреть при интеграции модерируемой мастерской в вашу игру:
  • Загрузка контента от авторов. Вам понадобится инструмент, чтобы авторы могли загружать созданный контент в вашу мастерскую. Он может представлять собой либо часть вашей игры, либо отдельное приложение. Можно начать с простого загрузчика, который требует от автора выбрать ZIP-файл и изображение для предпросмотра, или интегрировать дополнительные механизмы проверки в систему публикации в вашей мастерской. Например, мастерская Team Fortress 2 начинала лишь с формы заявки, требующей от автора предмета выбрать ZIP-файл и изображение для предпросмотра. По мере развития процесса мы добавили тестовую среду и проверку, чтобы убедиться, что предоставленный файл будет легко интегрировать в игру.

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

    После загрузки автором работы в мастерскую рекомендуется направить пользователя на страницу работы, которую он только что опубликовал. Это даст автору возможность принять условия всех соглашений, которые он ещё не принял: соглашение подписчика Steam или соглашение мастерской.
  • Интеграция предмета в игру (необязательно). Если вам необходимо назначить особые характеристики, например, эффекты оружия или всё остальное, что не может назначить автор во время загрузки, вам понадобится скачать предмет с сайта мастерской и добавить контент в свои хранилища. Одновременно вам потребуется назначить соответствующие характеристики и внести нужные изменения. Объём работы на данном этапе будет зависеть от того, насколько тщательная проверка проводится вашим инструментарием, а также от качества контента, создаваемого авторами предметов.
  • Загрузка без проверки. Если нет необходимости редактировать предметы или назначать особые характеристики, вы можете запросить получение предметов напрямую из серверов данных мастерской. Для получения списка предметов, которыми обладает пользователь, необходимо применить ISteamInventory (при использовании службы инвентаря Steam). Проверьте, являются ли предметы во владении пользователя работами из мастерской, а затем:
    • Вызовите ISteamUGC::GetItemState с параметром ID работы из мастерской и проверьте, что флаг k_EItemStateNeedsUpdate установлен, а k_EItemStateInstalled — нет.
    • Вызовите ISteamUGC::DownloadItem при необходимости.
    • Дождитесь обратного вызова ISteamUGC::DownloadItemResult_t и сделайте контент доступным в игре.
  • Служба инвентаря и создание определений предметов. Eсли ваши предметы предназначены для продажи в игре или выдачи ограниченному числу пользователей, вам понадобится сервер предметов (или служба инвентаря Steam) для отслеживания игроков с разрешением использовать предметы в игре. Служба инвентаря также понадобится для продажи предметов, управления их выдачей и событиями, вызывающими случайную выдачу предметов пользователям.
  • Установка правил о выплатах. Когда вы будете готовы к продаже предметов, Steam понадобится информация о том, какие работы в мастерской соотносятся с определениями предметов на вашем сервере предметов или в службе инвентаря Steam. Эта ссылка устанавливает правила выплат, чтобы Steam правильно распределил выручку от продажи каждого предмета соответствующим пользователям. Когда ваша служба инвентаря будет инициировать продажу через API микротранзакций Steam, Steam получит информацию о проданном предмете и сможет рассчитать сумму выручки и выплат авторам предмета.

    Управлять правилами выплат можно с помощью опции «Новые правила выплат» под вкладкой мастерской на странице настроек вашего приложения.

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

Доставка предметов пользователям

При использовании модели модерируемой мастерской существует несколько способов обеспечить пользователям доступ к предметам:
  • Продажа предметов во внутриигровом магазине посредством микротранзакций. Если вы используете собственную службу инвентаря, от вас потребуется интеграция с API микротранзакций Steam. Также вы можете воспользоваться службой инвентаря Steam с настраиваемым магазином предметов, чтобы с лёгкостью выставлять и продавать предметы.
  • Случайная выдача предметов. Потребуется сервер предметов (или служба инвентаря Steam) для того, чтобы управлять выдачей предметов и вести учёт списка владельцев каждого предмета.
  • Набор дополнительного контента. Данное решение не требует использования сложной системы, однако вам придётся самостоятельно договориться об условиях выплат с авторами работ в мастерской. Для каждого предмета, проданного как дополнительный контент или его часть, вам нужно будет решить с его автором, какой способ оплаты использовать — единовременная выплата (проще), либо долгосрочные отчисления процентов с продаж (дополнительная работа для вас). Вам также понадобится вести учёт этих выплат, рассчитывать ставку удержания налогов и предоставлять необходимые налоговые формы в зависимости от места проведения вашей коммерческой деятельности.
  • Предметы, добавленные в игру для бесплатного использования. В этом случае требуется минимум усилий, однако такая модель распространения вряд ли вдохновит авторов на создание предметов высокого художественного уровня.

Объявление и выпуск

Материалы, необходимые для продвижения

Для подготовки мастерской к выпуску вам необходимо предоставить следующее:
  • Верхнее изображение мастерской. Предназначено для того, чтобы придать узнаваемость главной странице продукта. Шаблон Photoshop можно найти здесь. При создании изображения используйте узнаваемые иллюстрации и логотип игры. Оставьте свободное место справа для названия и краткого описания того, как ваш продукт использует мастерскую Steam.
  • Краткое описание. Укажите название и краткое описание того, как ваше приложение использует мастерскую Steam. Это поможет пользователям понять, какие инструменты они смогут найти в вашей мастерской и как они смогут ими воспользоваться.
  • Документация для ваших инструментов. Если на вашем веб-сайте или вики-странице уже есть документация с инструкциями по использованию инструментов мастерской, укажите ссылку на странице управления данными мастерской вашего приложения. Если же такой документации нет, то советуем создать руководство Steam для вашей игры, чтобы познакомить новых пользователей с инструментами создания контента для вашей мастерской.

Объявление о выпуске и его сроки

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

Кроме того, можно использовать цикл показов обновлений для отображения вашей игры на главной странице и продвижения вашей новой мастерской и распродажи (если вы установили скидку). Узнать больше о циклах показов можно в разделе документации «Показы продукта в Steam».

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

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

Использование закрытого бета-тестирования

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

Процедура бета-тестирования состоит из двух частей:
  1. Бета-тестирование игры (в Steam). Для начала необходимо создать обновлённую сборку вашей игры и настроить её в качестве бета-версии в Steam. Это позволяет Steam предоставить отдельную версию вашей игры, которую смогут выбрать пользователи для тестирования, а также по желанию защитить её паролем.
  2. Бета-тестирование мастерской (в группе). Вы можете создать закрытую группу в сообществе Steam и обеспечить доступ к мастерской Steam только участникам этой группы. Также существует возможность открыть доступ всем пользователям, владеющим вашим приложением.
    1. Создайте группу в сообществе Steam для тестирования. Вы можете сделать её закрытой, если хотите предоставить доступ только некоторым пользователям.
    2. Получите SteamID группы. На странице группы нажмите «Редактировать профиль группы» и найдите ID группы вверху страницы (например: 2667495).
    3. На странице управления вашей игрой в Steamworks во вкладке «Мастерская» перейдите в раздел «Общие» и в подразделе «Состояние видимости» выберите «Разработчики и тестировщики». Вас попросят ввести вышеупомянутый ID группы. Опубликуйте изменения.
      workshopvisibilitystate.PNG

Teхническая реализация

Техническую информацию об интеграции мастерской Steam в игру можно найти в разделе «Руководство по Мастерской Steam».

Частые вопросы

В. Можно ли загружать работы в мастерскую, если игра или инструмент используется в рамках семейного доступа?
О. Нет, пользователи с временной лицензией на игру или инструмент, который выполняет загрузку, не могут загружать работы в мастерскую Steam. Это означает, что пользователи с доступом к игре только через семейную группу или со временной лицензией, полученной, например, в рамках «Бесплатных выходных», не смогут загружать контент.