Документация Steamworks
Мастерская Steam


The Steam Workshop is designed as a place for your fans and community members to participate in the creation of content for your game. The form of this creation by community members can vary depending on the nature of the game and what kind of control you wish to have over the content in your game.

This page is intended as an overview of the Steam Workshop and the different models available. For technical details on implementing Steam Workshop with your title, please see the Руководство по Мастерской Steam.

Video: Introduction to User Generated Content and the Steam Workshop.


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

Here's a talk given by Jeremy Stieglitz of Studio Wildcard at Steam Dev Days 2016 on how leveraging User Generated Content via the Steam Workshop has helped foster a long and pro-active community for their title ARK: Surivival Evolved. And some of the technical and design steps they took to make it happen.

Workshop Branding Guidelines

You are welcome to use Steam Workshop branding when promoting your Workshop. Click here to download Workshop branding assets. For more information about general Steam branding, refer to the Руководство по фирменному стилю Steam.

Типы Мастерской

There are two main types of Steam Workshop integration options available. Каждый из них имеет свои плюсы и минусы, поэтому тщательно обдумайте, какой из них вам больше подойдёт.
  1. Открытая Мастерская — любой пользователь может свободно загружать и скачивать контент. This is best suited for supporting a larger number of items, mods, or maps in your game, that are either simple or complex in nature. You will likely need to do more work ahead of time to make an appropriate editor or validation tool to make sure that authored content will function properly in your game. Авторы предметов смогут обновить свой контент в любое время.

  2. Curated Workshop - This is best suited to maintaining tighter control over the items that are added and made available in your game, but requires work and an update to add each item to your game. This is typically better for smaller and less complex pieces of content such as weapons, hats, or other accessory items. If these items are sold, a persistent item storage service (such as Steam Inventory Service) must be used to keep track of which users have authority to equip items in-game, and a store must be built in-game to sell items. Pricing is controlled by the developer.

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

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

  • Поддержка большего числа предметов. Открытая Мастерская упрощает поддержку большого числа простых или сложных по составу предметов, модификаций или карт в игре. By building the creation and editing tools up front, you enable customers to do more with your game.
  • Возможность обновлять контент в любое время. Авторы предметов в открытой Мастерской смогут обновлять свои предметы, то есть: редактировать контент, исправлять ошибки, расширять контент и возможности своих модификаций и предметов.

С чего начать

Для начала следует подумать, какой контент могут создать пользователи для расширения возможностей вашей игры. For multi-player games you may have different kinds of content that makes sense than if you have a single-player game. Once you've figured that out, then you'll need to think about how your client will load the content and what kind of tools are necessary for customers to create that content. Если пользователям пришлась по душе ваша игра, они найдут пути для создания контента для неё. But, as mentioned earlier, if you wish to support large scale modding of your game, you'll find it useful to release as much of your own development tools as possible to aid in the creation of content and modification of your game logic.

Once you've got basic modding up and running, then you'll need to integrate the ISteamUGC API so that your client can know which Workshop files the user is subscribed to and can download content as necessary. После этого будет легко добавить опцию продажи предметов. The Steam Workshop takes care of collecting bank and tax info from authors, provides the tools for specifying pricing, provides the necessary user agreements, and handles all the backend payment processing and tax witholding. Вашей игре лишь понадобится распознать, какие из файлов нужно загрузить в клиент игры.

Integration Work

Here are some of the typical components to think about for integration of the Ready-To-Use Workshop model with your game:
  • Loading content into a single-player game client - If you intend for content submitted by customers to be ready to use within your game, then you'll need to structure your game appropriately to handle content in that way. Обычно это означает, что игре понадобится проверять, какие из файлов следует загружать. If you are building a new implementation, we suggest that your game client first check for the Steam user's list of subscribed files and then load the corresponding folders. You will also need to have some kind of staging environment so that mod creators have a place to work on their mods and be able to load from that directory.
  • Loading content into a multi-player game client - If you have items or content that multiple users need in order for the game to function properly, you can download those items to all clients that need the particular item. For example, if a single user has subscribed to a custom map on the workshop and then invites his friends to join that match, your game should be able to recognize that it is a custom map and download the content from the Workshop for the other users before fully connecting to that match.
  • Uploading entries from item authors - You'll need a tool for item authors to upload their entries to your Workshop using the ISteamUGC API. This can be as simple as a form in your game or it can be a stand-alone app. Since the items you are accepting should be ready-to-use, then your submission tool should accept just the file formats your game client expects to load, along with an preview image. Depending on the content you are asking authors to upload, you might need your own editing tools (especially necessary for any large-scale modding of your game such as game logic, gameplay, or anything beyond changes to existing visuals). К примеру, игры, более всего подходящие для модификаций, выпустили свои собственные инструменты, чтобы авторы могли воспользоваться теми же средствами, что и разработчик. These tools can also restrict and validate the content being submitted if you wish to control things like which files can be overwritten or what aspects of the game can be changed. As part of the information you provide to potential Workshop item authors, you'll also want to create a style guide and potentially a set of guidelines about the kinds of content you are looking for and the kinds of content you don't wish to see posted.

    See the Руководство по Мастерской Steam for detailed information on how to get started using the Steam Workshop portion of the Steamworks API.

Getting Items to Customers

With the Ready-To-Use Workshop model, items listed in the Workshop are automatically available to subscribe to (if free) or to purchase (if paid) and then are automatically downloaded via the Steam client (Integration of the ISteamUGC API with your product is necessary for this to work correctly. See the technical documentation on the Руководство по Мастерской Steam). The Steam Workshop handles keeping the client up to date with any mod updates. If the mod was purchased, then Steam handles purchase of the item, payment processing, payments to the authors, payments to the game developer, and any necessary tax withholding.

If you wish, you can build an in-game Workshop browser to list the same set of items.

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

The defining characteristic of a curated Steam Workshop is that as the developer, you will need to approve each item and you'll probably need an item server (Or to use the Steam Inventory Service) for managing ownership of the items. This process affords a lot of control over the items that get added to your game, but typically involves at least a small amount of work to accept each new item.

Within a Curated Workshop, the items posted in the Workshop are not available for direct use by other customers via the Workshop, but are instead presented in a queue for customers to vote on. This voting gives you data on which items are desired by the most users and helps you filter out incomplete or inappropriate submissions.

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

The Curated Workshop model is useful for your game if you:
  • Need to assign specific attributes to each item. If you are accepting items such as weapons via the Workshop, it may be important for you to be able to assign the attributes of the weapon such as speed, power, damage, reload time, etc. in order to best balance the gameplay in your title.
  • Want tight control over the content added to your game. В зависимости от настроек игры вы сможете принимать предметы двумя различными способами:
    • Загрузка и сборка. Можно загрузить ресурсы на свой компьютер и добавить контент в хранилища игры. Этот способ предоставляет вам возможность редактировать и изменять предмет, чтобы обеспечить наилучший результат, или гарантировать строгое следование правилам руководства по стилю для каждого предмета.
    • Загрузка напрямую в клиент. Можно по необходимости напрямую скачать каждый подтверждённый предмет в клиенты игры. Это позволит авторам обновлять предметы, чтобы исправить ошибки.

С чего начать

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

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

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

Ниже приведены типичные компоненты, которые следует рассмотреть при интеграции модерируемой Мастерской с вашей игрой:
  • Загрузка контента от авторов. Вам понадобится инструмент, чтобы авторы могли загружать созданный контент в вашу Мастерскую. Он может представлять собой либо часть вашей игры, либо отдельное приложение. Можно начать с простого загрузчика, который требует от автора выбрать .zip-файл и изображение для предпросмотра, или интегрировать дополнительные механизмы проверки в систему публикации в вашей Мастерской. Например, Мастерская Team Fortress 2 начинала лишь с формы заявки, требующей от автора предмета выбрать .zip-файл и изображение для предпросмотра. But as we iterated on the process, we added a test environment and validation to make sure that the file that was submitted to the Workshop would be easier to integrate into the game.

    As part of the information you provide to potential Workshop item authors, you'll also want to create a style guide and potentially a set of guidelines about the kinds of content you are looking for and the kinds of content you don't wish to see posted.

    Once a user has uploaded an item to the Workshop from your submission tool, it's good practice to take the user to the page for the item they just posted. Это даст автору возможность принять условия всех соглашений, которые он ещё не принял: соглашение подписчика 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. Это поможет пользователям понять, какие инструменты они смогут найти в вашей Мастерской и как они смогут ими воспользоваться.
  • Документация для ваших инструментов. Если на вашем веб-сайте или вики-странице уже есть документация с инструкциями по использованию инструментов Мастерской, укажите ссылку на странице управления данными Мастерской вашего приложения.

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

When you launch your Workshop integration, it may be a great opportunity to run a discount on your product to capitalize on the additional buzz of the new Workshop and to get a bunch of new players to use the Workshop. Вы можете установить особую скидку в связи с выпуском Мастерской. Чтобы узнать больше, обратитесь к разделу документации Предоставление скидок.

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

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

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

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

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

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

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

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