Steamworks что это за программа
Что такое Steamworks Common Redistributable
В Steam с недавнего времени появился новый элемент под названием Steamworks Common Redistributable. Что это за программа, как ее скрыть или удалить из библиотеки клиента, а также ответы на другие вопросы вы сможете узнать из нашей статьи.
Для чего нужен SCR
Steamworks Common Redistributable размещается в библиотеке клиента, во вкладке «Игры» либо «Инструменты». Активируется при инсталляции обновлений либо во время проверки уже установленных файлов.
Представляет собой вспомогательную утилиту от Steam, предназначенную для объединения общих файлов и папок.
Для запуска и стабильной работы в системе Windows большинства сложных игр, необходим набор вспомогательных библиотек. Обычно они входят в состав наиболее распространенных и важных пакетов.
Например, PhysX, Microsoft Visual C++, OpenAL, DirectX, XNA, dotNET.
Ранее для каждой игры нужно было отдельно устанавливать эти пакеты. Создание одинаковых дублей засоряло свободное место на диске. Отдельное обновление вложенных элементов провоцировало перегрузку игорного сервера. Чтобы упростить процесс, разработчики вынесли в отдельную директорию распространяемые пакеты. Затем они создали инструмент, который ею управляет.
Теперь при запуске игры Steamworks Common Redistributable подтягивает необходимые для нее библиотеки из общей директории.
С появлением утилиты SCR разработчикам стало легче прорабатывать сценарии установки. Пользователи также определили преимущества пакета Steamworks:
Как обновить Steamworks Common Redistributable
У пользователей программы иногда возникает вопрос, почему она постоянно обновляется? Ответ простой – в папке Steam расположены все данные по распространяемым пакетам, поэтому любое их обновление запускает SCR.
Иногда случается, что процесс висит длительное время, не прогрессирует и не приходит к логическому завершению.
Тогда следует выполнить следующий алгоритм действий:
Если ничего не помогло, воспользуйтесь более радикальным методом: полной переустановкой игры и клиента.
Когда постоянное обновление просто висит, но при этом все функции работают, можно просто проигнорировать это проблему. Но если присутствуют технические сбои процесса, следует незамедлительно связаться с технической поддержкой Steam.
Как скрыть программу
Некоторых пользователей раздражает постоянное мелькание перед глазами данного инструмента. Это можно легко исправить, скрыв утилиту и оставив ее работать в фоновом режиме.
Следует открыть меню библиотеки. Затем в инструментах SCR кликнуть на пункт «Изменить». Потом нужно поставить галочку возле функции «Скрыть игру из библиотеки». Как видите, ничего сложного нет.
Удаление Steamworks Common Redistributable
SCR – это системный инструмент, от которого зависит процесс игры. Ее не рекомендовано удалять из компьютера, поскольку это может спровоцировать сбои в работе связанных с нею программ. Впоследствии системе может быть отказано в доступе к каким-то функциям.
Но не стоит переживать, если какие-то компоненты из папки будут удалены по неосторожности. Их легко можно восстановить при плановом обновлении.
Заключение
Разработанный инструмент Steamworks Common Redistributable облегчил и ускорил запуск игр. Также он позволил экономить пространство на жестком диске. Поэтому его не рекомендуется удалять из компьютера. Можно просто скрыть данную опцию, чтобы она работала в фоновом режиме.
Работаем с SteamWorks. Часть 1
SteamWorks — это интерфейс, который обеспечивает разработку и публикацию инструментов для разработчиков игр. Он предоставляет возможность интеграции с клиентом Steam, интеграция с комьюнити, добавлять и редактировать достижения для игр и многое другое.
На данный момент доступ к SteamWorks можно получить если вы являетесь «гейм студией» и хотите распространять свое приложение в steam или через сервис Steam Greenlight, тем самым став партнером steam. Подробности здесь. Open SteamWorks это открытая реализация Steam api (дизассемблированная версия библиотек steam.)
“Open SteamWorks designed for people who know, what they do” — Ryan Stecker. Так автор открытой версии ответил на вопрос (не мой) о наличии дополнительной документации, вся документация которая есть в наличии, является комментариями в исходных кодах. Загрузить последнюю версию Open SteamWorks можно с сайта.
Я буду использовать Visual Studio, если у вас есть под рукой mingw, можете использовать его. Приступим к созданию консольного приложения (вы можете использовать пример test platform из open steamworks).
Подключаем необходимые заголовочные файлы.
Подключаем необходимые библиотеки для компиляции нашего приложения.
Получаем базу Steam с 12 версией интерфейса.
В дизассемблированном виде это компилируется как поиск в реестре пути до стима и подключение к нему.
Проверяем смогли ли мы получить базу.
Создаем пайпу для взаимодействия.
Подключаемся к глобальному пользователю (запущенный стим).
Проверка подключения к глобальному пользователю.
Получаем доступ к api v 12 интерфейса пользователя.
Получаем доступ к api v.13 и v. 1 интерфейса друзей.
Предостерегаю тех, кто будет использовать интерфейсы IClient (IClientUtils, IClientFriends, и т. д.), все эти интерфейсы перестают работать сразу после глобального обновления steam, ваше приложение будет выдавать ошибки, используйте ISteam (стабильный) изложенный выше, если очень нужно использовать функции из IClient интерфейсов, а такое иногда случается, скопируйте все важные DLL файлы для вашего приложения (можно посмотреть в таблице импорта) и держите в папке с вашим приложением.
Теперь мы попробуем сделать самую простую вещь, поменять статус в стиме. (api для смены статуса доступна в первой версии интерфейса)
Компилируем, запускаем и теперь мы имеем статус спит в стиме.
Получаем количество друзей.
Перебираем наших друзей, получаем структуру SteamID(64bits) текущего друга по индексу, проверяем статус текущего друга, если равняется статусу онлайн и имя друга Crey, отсылаем ему сообщение.
Думаю теперь все понимают, что при помощи SteamWorks можно легко написать trade бота, для обмена вещей по «заданному курсу» и много чего интересного.
В следующих частях мы рассмотрим работу с IScreenshots, IUserstats(achievements), callbacks и возможно дело дойдет до написания бота.
Простая работа со Steamworks
Unity, C#, Steamworks.NET и Facepunch.Steamworks
Введение
Как и большинству разработчиков игр, мне очень хочется выложить мою игру в Steam.
Как и большинству инди-разработчиков игр, мне не хватает доступа к ресурсам/знаниям, которые дали бы мне чётко понять, что же действительно значит «быть в Steam».
Сложно заполнить этот пробел в знаниях, потому что, несмотря на подробную документацию возможностей Steam, трудно понять, с чего начать в этом огромном хранилище документов и как связаны между собой его отдельные части. Кроме того, основные обсуждения платформы Steam проходят в закрытом форуме, доступном только для подтверждённых платформой через Steam Direct или реферальную ссылку Valve разработчиков. То есть для начинающих поиск ответов на простые вопросы может оказаться сложной задачей.
Поэтому я решил написать высокоуровневый обзор для людей, которые только начинают разбираться в том, как заставить Steam работать с их играми. В частности, я подробно рассмотрю Steamworks SDK, программную библиотеку Valve, предоставляющую доступ к таким аспектам, как мастерская (Workshop), таблицы лидеров (Leaderboards), достижения (Achievements) и так далее.
Steamworks хорошо задокументирована компанией Valve, но документация написана с точки зрения человека, использующего нативную библиотеку C++ и уже имеющего представление о том, как все эти функции пересекаются. Если это не ваш случай, то так даже лучше! Ниже представлено объяснение для другого человека, который пишет игру на языке более высокого уровня и просто хочет обеспечить простую интеграцию со Steamworks (а это возможно, я гарантирую!). Конкретнее, этот пост предназначен для людей, использующих в той или иной форме C#, а в идеале — работающих в игровом движке Unity.
Steamworks
Steamworks состоит из двух частей. Во-первых, это портал для разработчиков, предназначенный для управления всем, что связано с существованием игры в Steam, от изменения баннеров игры до управления продажами и списка поддерживаемых контроллеров. Во-вторых, это SDK, предоставляемый Valve для того, чтобы разработчик мог взаимодействовать со всем остальным в Steam, в том числе с мастерской, таблицами лидеров, серверами, достижениями и т.д. Не забывайте об этой системе! SDK «обязателен только для загрузки контента в Steam». Это означает, что можно полностью воздержаться от возни со всеми вышеперечисленными возможностями SDK и сосредоточиться только на том, как загрузить игру в Steam. Однако SDK предоставляет множество других полезных функций, так что давайте настроим его и заставим работать!
Если вы пишете на C++, то можете просто добавить библиотеку к вашей игре, следуя этим инструкциям.
Steamworks.NET обеспечивает взаимно однозначное преобразование функций Steamworks в функции C#, но это значит, что для работы вам потребуется полное понимание Steamworks как библиотеки. Для новичков, желающих отделаться простой работой, этого может оказаться слишком много. Если вы хотите сделать что-то посложнее, для Steamworks.NET придётся написать собственную обёртку поверх её обёртки, что лишает смысла саму идею обёртывания.
Facepunch.Steamworks
Из-за этих ограничений и по другим причинам, Facepunch Studios (известная по играм Rust и Garry’s Mod) захотела написать более удобную библиотеку Steamworks для C#/Unity.
Она избавляет от необходимости писать кучу кода для реализации простых (и сложных) задач в Steamworks, позволяя сосредоточиться на самой «работе» со Steam. Библиотека используется в Rust, то есть её работа тестируется на игре с одним из самых больших сообществ игроков в Steam. Сложные задачи абстрагируются в простые вызовы функций, сама библиотека состоит всего из трёх файлов, то есть не особо раздувает проект. Не могу выразить, насколько она полезна для новичков, это настоящая находка. Создатель Steamworks.NET даже сказал, что Facepunch.Steamworks — это «именно то, что во что я хотел превратить Steamworks.NET дальше» и что «для большинства разработчиков она должна стать выбором по умолчанию». Steamworks.NET по-прежнему доступна для тех, кто хочет реализовать собственную версию Facepunch.Steamworks, но, по-моему, что хорошо для Rust, то достаточно хорошо и для меня. Как же работает библиотека и что в ней особенного? Давайте начнём разбираться.
Начало работы
Во-первых, можно подумать, что для начала работы с Steamworks нужно быть подтверждённым разработчиком Steamworks, но на самом деле, использовать SDK можно сразу, не проходя процесс регистрации. Valve предоставила разработчикам тестовый «AppID» 480, для которого можно программировать.
AppID
AppID — это уникальный идентификатор игры в Steam (и в Steamworks). Его вы получаете в сразу после регистрации игры. Он «занимает» вам место в Steam/Steamworks и позволяет полностью распоряжаться всем, связанным с этим AppID. AppID 480 соответствует «SpaceWar», демонстрационной игре, созданной Valve. Она имеет открытые исходники и показывает некоторые из возможностей Steamworks (обязательно изучите её!).
Уникальный AppID — это удобно и очевидно необходимо для вашей игры на определённом этапе, тестовый же AppID (480) позволяет вам работать со службами Steam как будто ваша игра уже готова. Когда вы получите реальный AppID, то подставьте его, а пока вполне подойдёт 480. То есть не стоит создавать сервер с названием «Сервер с названием моей игры, ожидающей регистрации в качестве торговой марки».
Скачивание и импорт Facepunch.Steamworks
Unity
Скопировав все файлы библиотеки в соответствующие каталоги, вы практически закончили настройку! Единственное, что нам нужно — написать немного кода, чтобы всё интегрировать. Я скопирую тестовый файл из тестового проекта и просто сокращу его для понятности.
И… на этом всё! Если прикрепить этот скрипт к «GameObject» в сцене и перейти в игровой режим, то вы увидите, что в Steam вы играете в «Spacewar», а в консоли выводится базовая информация Steam о вас (если не получилось, проверьте, выполнен ли вход в Steam).
Жизнь с Facepunch.Steamworks
Возможности
После настройки доступ к более глубоким функциям Steam становится довольно простым, потому что библиотека FP обрабатывает и обёртывает почти все части стандартного Steamworks SDK. Однако по-прежнему стоит вопрос: какие же это части? Вот небольшой список с описаниями того, с чем можно работать (в библиотеке FP):
1. Серверы — создание серверов с помощью клиента игрока или запуск «безголового» сервера в любом другом месте. Используется для чувствительных к пингу игр, имеющих высокие требования к сети (таких как Dota 2, Overwatch и т.д.)
2. Лобби — это «места встреч» игроков, используемые для обмена SteamID или другой информацией пользователей.
3. Друзья — вы и ваши друзья-игроки в Steam.
4. Мастерская — загрузка/скачивание контента в мастерскую Steam Workshop и из неё.
5. Таблицы лидеров — создание и хранение глобальных таблиц лидеров для игры.
6. Достижения — создание и выдача достижений.
7. Сеть — отправка P2P-данных клиентам.
8. Steam Cloud — сохранение данных в облако Steam Cloud! Очень полезно для сохранений игр.
9. Голос — взаимодействие с голосовым API Steam для внутриигрового чата.
10. Статистика — задание статистики на стороне Steam для заданного игрока.
Наилучший способ научиться использованию нужных функций — посмотреть, есть ли её рабочий пример в тестовом проекте Facepunch.Steamworks (ПРИМЕЧАНИЕ: это не тестовый проект Unity), и смоделировать её реализацию в своей игре.
Большинство из возможностей задокументировано в wiki библиотеки FP, но на самом деле достаточное описание есть у нескольких классов. Если вы не можете найти пример, изучите код библиотеки и посмотрите, реализована ли функция вообще. Если нет, то посмотрите, насколько далеко вы можете зайти в её реализации со своей стороны или просто отправьте сообщение об ошибке в библиотеку. Обычно разработчики Facepunch очень отзывчивы, они могут вам рассказать, работают ли они над чем-то или нет, и даже могут посодействовать вам в помощи сообществу, если вы решите реализовать что-то самостоятельно.
Подписчики и обратные вызовы
Если вам нужно получить список всех лобби в игре с помощью библиотеки FP, то вы напишете следующее:
Заметьте, что здесь не выполняется возврат или присваивание. Но в таком случае как нам получить то, что мы запрашиваем? После вызова функции в Steamworks бэкенд Steam подготавливает всё необходимое, а затем отправляет вам данные через «обратный вызов» (callback). Steam почти буквально «вызывает вас», чтобы сообщить: «Эй, твои данные готовы!».
Для получения вызова нам нужно «поднять трубку», или, как это обычно называется, «подписаться» на обратный вызов. Это реализуется определением функции, получаемой передаваемые обратным вызовом данные. Иногда он не передаёт данных, тогда обратный вызов используется в основном как «обработчик» или как способ сообщить, что можно продолжать. Когда вы находитесь внутри обработчика обратного вызова, можно безопасно продолжать работу. Вот пример:
Понимание этого паттерна будет очень полезно при использовании библиотеки. Также очень полезно разобраться в том, что же в действительности делает Steamworks, так что стоит изучить его документацию. Если вы хотите более подробно изучить принцип работы, рекомендую прочитать документацию Valve по этой теме, а также некоторые разделы веб-сайта Steamworks.NET.
Двигаемся дальше
С этого момента вы можете делать всё, что угодно! Valve не ставит никаких требований, но если уж вы попали на платформу, то очевидно, что вам в первую очередь интересно связаться с ней и с её сообществом теми способами, которые предоставила Valve. После регистрации в Steam Direct вам достаточно просто заменить AppID и перенести все функции Steam, которые вы реализовали для тестового AppID.
120 млн
активных пользователей ежемесячно
1 трлн
23.0 млн
Привлеките аудиторию со всего мира
Ежемесячно Steam пользуются более 120 миллионов игроков из 249 стран, что даёт вам доступ к мировому игровому сообществу, которое постоянно растёт.
Мы изучили и безупречно интегрировали самые популярные платёжные системы в разных странах мира.
Покупателям легче пользоваться своей валютой. Наша система поможет вам выбрать правильные цены для каждого региона.
Steam быстро доставит вашу игру в любую точку мира благодаря более чем 400 серверам по всей планете и оптоволоконной магистрали на 1 терабайт.
Клиент Steam поддерживает 30 основных языков, отчего покупателям со всего света просто и приятно приобретать игры в нашем магазине.
Опубликовать игру в Steam очень просто. Заполните документы онлайн, оплатите небольшой взнос за регистрацию — и можно начинать!
Управляйте продажей своих игр
Steamworks максимально упрощает процессы выпуска и управления, позволяя сосредоточиться на самой игре.
Отчёты о продажах, списках желаемого и числе игроков в реальном времени, разбитые по регионам. Всё, что нужно, чтобы принимать решения.
Легко контролируйте доступ к отдельным игровым сборкам, чтобы собирать отзывы игроков и получать результаты раннего тестирования.
Отслеживайте эффективность своих рекламных кампаний с помощью встроенной функции UTM-аналитики
Безопасность для вас и ваших игроков: Steam защитит вас от последствий мошеннических покупок, например, отзовёт контент и предотвратит дальнейшие нарушения.
Воспользуйтесь антипиратскими DRM-инструментами Steam, интегрируйте свою собственную защиту или обойдитесь без неё. Выбор за вами.
Донесите игру до пользователей всеми возможными способами. Ключи нужны для розницы, совместных акций, распродаж и бета-тестов.
Создайте ажиотаж вокруг предстоящей игры, разместив её страницу в магазине, как только у вас будет что показать потенциальным покупателям.
Включите Steam в процесс создания сборки. Загрузив на наши серверы последнюю версию игры, вы сможете провести внутренний бета-тест или обновить её для всех пользователей.
Представьте игру в выгодном свете. Вы сами решаете, какими будут текст и изображения на её странице в магазине.
Выпускайте обновления так часто, как нужно. Наши инструменты помогут рассказать пользователям об обновлении и распространить его.
Используйте сетевую магистраль Valve, чтобы распределить трафик и повысить стабильность, скорость и устойчивость.
Усильте продвижение
Каждый день в Steam происходит один триллион показов, и продавцы могут использовать самые разные возможности продвижения, встроенные в платформу.
Пользователи, добавившие игру в желаемое, получат письмо о её выходе или скидке на неё, а вы — данные о том, скольких пользователей заинтересовали.
Пусть сообщество попробует вашу игру, пока она находится в разработке. Вы сформируете ожидания игроков и услышите их честные мнения.
Участвуйте в регулярных распродажах Steam, открытых для всех разработчиков, или установите собственные скидки в соответствии со своими рыночными потребностями.
Оставайтесь на связи со своим сообществом, чтобы игроки всегда знали о недавних событиях и изменениях.
Объедините свою игру с дополнительным контентом или саундтреком, либо создайте набор из всех своих товаров. Также вы можете выпускать совместные тематические наборы с другими разработчиками.
Поощряйте фанатов игры, размещая их трансляции на своей странице в Steam, где потенциальные покупатели увидят игровой процесс и самих игроков.
Фанаты могут собираться в центре сообщества игры (встроенном разделе для обсуждений и новостей) и создавать полезный контент.
Для центра сообщества автоматически создаётся форум, где фанаты и потенциальные покупатели могут обсудить вашу игру. Создавать его самостоятельно не придётся.
Представьте свою игру подходящим лидерам мнений и кураторам Steam, а они покажут её большему числу потенциальных покупателей.
Игры в Steam оценивают те, кто важен для вас больше всего — игроки.
Списки друзей и переработанный чат поддерживают интерес игроков к Steam и позволяют рассказать об игре потенциальным покупателям ещё одним способом.
Продавайте свои игровые саундтреки, которыми фанаты смогут наслаждаться где угодно.
Улучшите впечатления игроков
Уникальный набор услуг Steam выходит за рамки стандартных программ для запуска игр на ПК, увеличивая интерес и удовлетворение пользователей.
Внутриигровой интерфейс, дающий игрокам доступ к самым разным возможностям сообщества: чату Steam, достижениям, руководствам и не только.
Пользователи могут легко поделиться лучшими моментами игры со своими друзьями и всем сообществом Steam.
Пользователи могут писать руководства и делиться опытом с другими игроками, выделяя занятные моменты, объясняя сложную экономику или помогая решить головоломки.
Транслируйте игру прямо на странице в магазине, чтобы прорекламировать особое событие, поведать игрокам о разработке или просто пообщаться с сообществом.
Steam Cloud автоматически загружает файлы сохранений на наши серверы и позволяет игрокам продолжить игру откуда угодно.
Добавьте предметы магазина очков, чтобы игроки могли украсить свои профили с помощью стикеров, аватаров, фонов и других предметов с иллюстрациями из вашей игры.
Автоматически перенесите игровой процесс на телефоны, планшеты и телевизоры, используя Steam Remote Play.
Автоматически переведите свою многопользовательскую игру с общим или разделенным экраном в онлайн-режим.
Игровые функции
Наши игровые функции настолько разнообразны, что вам не придётся изобретать велосипед. Просто добавьте их в игру с помощью API Steamworks.
Чтобы узнать больше, загляните в документацию по функциям.
Базовые функции
Базовые функции отвечают потребностям игр большинства жанров. Интеграция API Steamworks необходима, но довольно проста в реализации.
Игрокам нужны достижения. Поощряйте верных фанатов, отмечайте большие успехи и вознаграждайте определённые действия.
Анализ поведения, позволяющий игрокам следить за своим прогрессом и сравнивать себя с другими.
Сравните успехи и мастерство игрока с его друзьями или со всем миром, создавая десятки, сотни или даже тысячи таблиц лидеров.
Создайте выделенные серверы сами или предоставьте эту возможность сообществу.
Автоматически сообщайте игрокам о том, что наступил их ход или пришло время подключиться к сетевой игре.
Безопасное подключение к Steam с помощью OpenID даст вам доступ к полезным службам для вашего сайта или игры.
Подключите к игре голосовые чаты и команды без сторонних программ.
Пользователи Steam увидят подробное описание активности друзей в вашей игре и захотят последовать их примеру.
Наша сетевая магистраль аутентифицирует пользователей и ограничивает возможности тех, кто хочет помешать работе серверов вашей игры.
Продвинутые функции
Расширьте возможности игры, интегрировав эти ценные функции. Они требуют от вас больше усилий, но окупятся с лихвой.
Интегрируйте в игру контент, созданный пользователями. Вы решаете, как модификации взаимодействуют с игрой, а Steam возьмёт на себя серверы, статистику, обновления и оплату.
Сообщество Cities Skylines взяло градостроение в свои руки, создав более 170 000 модификаций.
Мастерская Cities: Skylines →
В игру Rust попадают модификации, выбранные голосованием сообщества, а их создатели получают прибыль и признание.
Настройте игровые действия с помощью системы ввода Steam, и игроки смогут использовать всё разнообразие популярных контроллеров и настраивать ввод под себя.
Об игровых контроллерах на ПК
Глубокий анализ использования контроллеров в Steam и преимуществ оптимизации.
Мы решили все сложные серверные проблемы за вас, упростив создание и поддержку постоянного игрового инвентаря любой сложности.
Простая и безопасная обработка внутриигровых операций с помощью службы микротранзакций Steam, построенной на мощной платформе электронной коммерции, поддерживает 80 способов оплаты и 39 валют.
Используйте наши функции подбора игр и лобби, чтобы не отвлекаться от работы над игровым процессом. Система позволяет игрокам создавать и искать лобби, присоединяться к ним и приглашать друзей. Также в системе поддерживается подбор игр на основе уровня игроков.
Зарегистрируйтесь и распространяйте игры и продукты для VR в Steam.
Зарегистрироваться в Steamworks
Документация Steamworks
В документации вы найдёте подробное описание всех возможностей, а также рекомендации и руководства по интеграции Steamworks.