Steamworks sdk redist что это
Steamworks sdk redist что это
Введение
Многие игры и приложения для запуска требуют установки на компьютере пользователя общих распространяемых компонентов.
Steam долгое время использовал сценарии для установки этих компонентов.
Однако это означало, что каждому разработчику приходилось заново создавать сценарий установки, а одни и те же программы установки запускались у пользователей по несколько раз.
Steam apps can now simply opt into common redistributables, which will be installed only if necessary. Valve создаёт и поддерживает сценарии установки для этих компонентов и обновляет их, если становятся доступны исправления. При этом в тех случаях, когда это необходимо, на 64-битные системы устанавливаются как 64-битные, так и 32-битные версии компонентов.
Использование общих распространяемых компонентов
Использовать общие распространяемые компоненты очень просто. Выберите пункт «Распространяемые компоненты» на вкладке «Установка» в разделе управления приложением, после чего отметьте те компоненты, которые нужны для работы приложения или игры.
Не забудьте опубликовать изменения!
Доступные компоненты
Полный список компонентов всегда доступен на вкладке Распространяемые компоненты.
Тестирование
Если вы хотите протестировать приложение с выбранными общими компонентами, наилучшим способом сделать это будет использование чистой операционной системы или виртуальной машины.
Что, если мне нужны другие компоненты?
Если для работы игры или приложения используются не перечисленные в соответствующей вкладке распространяемые компоненты, и вы считаете, что они могут быть использованы другими разработчиками, пожалуйста, сообщите об этом в группе обсуждения разработчиков Steamworks, и, вероятно, мы сможем добавить эти компоненты.
Если компонент или установщик, которые вы используете, является редким или разработанным под заказ, вы можете использовать сценарий для его установки вручную.
Как установить Steamworks SDK
Настройка SDK для загрузки SteamPipe for Windows
Загрузите и распакуйте последнюю версию Steamworks SDK на машине, на которой вы будете загружать свои сборки.
Инструменты SteamPipe можно найти в SDK в папке инструментов, которая содержит 2 соответствующих подкаталога.
В каталоге ContentBuilder вы найдете контент вашей игры и инструменты сборки SteamPipe. Этот каталог содержит следующие подкаталоги:
Рекомендуется запускать steamcmd.exe непосредственно в корневой папке для вашей платформы. Это должно заполнить каталог вашего builder`a всеми файлами, необходимыми для создания хранилищ.
Каталог ContentServer содержит инструменты для запуска вашего собственного Локального сервера контента SteamPipe, если вы решите это сделать.
SteamCmd на macOS
Чтобы включить SteamCmd в macOS, вы должны выполнить следующие шаги:
1. С терминала перейдите к папке tools \ ContentBuilder \ builder_osx \ osx32.
2. Запустить chmod + x steamcmd.
3. Перейдите к родительской папке (tools \ ContentBuilder \ builder_osx).
5. Затем SteamCmd запускается и обновляется до последней сборки, оставляя вас в приложении SteamCmd.
6. Нажмите exit и нажмите Return, чтобы выйти из приложения.
7. Далее документация соответствует обеим платформам.
Создание файлов конфигурации SteamPipe Build
Чтобы загрузить приложение с помощью SteamPipe, вы должны создать скрипт, описывающий вашу сборку и каждый дополнительный пакет, который будет включен в нее. В папке ContentBuilder \ scripts для приложения с одним файлом есть простые примеры сценариев.
ВНИМАНИЕ. Вы можете назвать эти скрипты как угодно, но имена app_build_ AppID и depot_build_ AppID запрещены. Если вы знаете, что будете создавать приложения на этом компьютере, может быть хорошей идеей создать подкаталоги в вашем каталоге сценариев для каждого приложения, чтобы помочь организовать скрипты сборки каждого приложения.
Инструмент GUI SteamPipe
Если вы работаете в Windows и предпочтете, чтобы инструмент графического интерфейса помогал создавать эти файлы конфигурации и загружал ваши сборки, вы можете использовать SteamPipeGUI, который доступен в папке инструментов Steamworks SDK
Скрипт сборки файлов
Сначала создайте скрипт сборки для каждого пакета, который вы хотите загрузить. Начните с дублирования скрипта depot_build_1001.vdf и переименуйте его с идентификатором пакета, который будет загружаться.
Пример скрипта построения пакета:
Скрипт создания приложений
После настройки сценариев сборки Depot вам понадобится скрипт сборки приложения, который описывает детали сборки. Начните с дублирования скрипта app_build_1000.vdf и переименуйте его с идентификатором приложения, которое он будет создавать.
Следующие типы сборок, поддерживаемые SteamPipe:
Пример сценария создания приложения:
Построение пакета:
Чтобы запустить сборку, отредактируйте файл run_build.bat, чтобы включить учетную запись и пароли сборки Steamworks и путь к скрипту создания приложения.
После запуска run_build.bat ваш вывод сборки должен находиться в каталоге, указанном в файле скрипта сборки. Если сборка предварительного просмотра создает ожидаемый манифест, запустите сборку снова с помощью «предварительного просмотра» «0» в скрипте создания приложения.
Во время сборки SteamPipe выполняются следующие шаги:
Steamworks sdk redist что это
Введение
API Steamworks предоставляет играм все преимущества Steam благодаря доступу ко всем основным системам с помощью API. Сюда входят, к примеру, постановка игры на паузу в момент открытия пользователем оверлея Steam, приглашение друзей в игру, достижения Steam, соревнование игроков в списках лидеров Steam и так далее.
В разделе Справочник по API Steamworks задокументированы все интерфейсы, функции, обратные вызовы и типы, поддерживаемые в API.
Интеграция с API Steamworks не требуется для доставки продуктов пользователям Steam, но мы рекомендуем её реализацию, поскольку она позволяет удовлетворить ожидания пользователей Steam.
С чего начать
ВНИМАНИЕ: API Steamworks официально поддерживает C++, использование Microsoft Visual Studio 2008+ на Microsoft Windows, GCC 4.6+ и Clang 3.0+ на macOS и SteamOS / Linux. Если вы используете сторонние движки или отличные от C++ языки программирования, вам следует ознакомиться с разделом Commercial engine and non-C++ language support, где могут быть изложены инструкции, относящиеся к вашему движку или выбранному языку. В некоторых случаях вы можете пропустить некоторые из нижеследующих инструкций.
Инициализация и завершение работы
SteamAPI_Init
После того, как вы настроите API Steamworks в своём проекте, вы можете начать использовать его, вызывая SteamAPI_Init для инициализации. Это настроит глобальное состояние и заполнит его указателями интерфейсов, доступных с помощью глобальных функций, соответствующих названиям интерфейсов. Вызов SteamAPI_Init и получение сообщения о его успехе ОБЯЗАТЕЛЬНЫ до выполнения вызовов к другим интерфейсам!
SteamAPI_RestartAppIfNecessary
SteamAPI_RestartAppIfNecessary проверяет, запущен ли исполняемый файл через Steam, и если нет, перезапускает его в Steam.
Это необязательно, но крайне рекомендуется, поскольку контекст Steam (включая номер приложения) не будет настроен, если пользователь запустит исполняемый файл напрямую. Если это случится, вызов SteamAPI_Init не состоится, и вы не сможете использовать API Steamworks.
Если вы решите его использовать, это должен быть первый вызов Steamworks, выполняемый непосредственно перед SteamAPI_Init.
Если же будет возвращено значение false, игра была запущена клиентом, и никаких действий предпринимать не нужно. В то же время, если файл steam_appid.txt имеется в наличии, этот вызов всегда будет возвращать false. Это позволяет разрабатывать и тестировать игру без необходимости запускать её из клиента. Не забудьте удалить steam_appid.txt перед отправкой игры в хранилище Steam!
ВНИМАНИЕ: если вы используете оболочку DRM для первичного исполняемого файла, эта проверка необязательна, поскольку оболочка выполнит её самостоятельно.
SteamAPI_Shutdown
Когда вы завершите использование API Steamworks вы должны вызвать SteamAPI_Shutdown, чтобы освободить ресурсы, используемые приложением в Steam. Если возможно, вы должны сделать этот вызов при завершении процесса.
Этот вызов не отключит оверлей от приложения, поскольку нет гарантии, что ваш API выведения изображений перестал его использовать.
Интерфейсы Steamworks
API Steamworks состоит из множества интерфейсов, которые предоставляют ограниченную, конкретную функциональность.
Вы можете использовать интерфейсы для подобных вызовов:
Обратные вызовы
Обратные вызовы — один из самых важных элементов Steamworks, который позволяет получать данные из Steam асинхронно, без необходимости блокировать игру. Цель обратных вызовов в том, чтобы предоставить простой, легкий, типобезопасный, потокобезопасный метод представления событий любому объекту, зарегистрированному в качестве слушателя.
Обратные вызовы обычно срабатывают, когда то или иное событие происходит в Steam, к примеру когда друг входит в сеть или выходит из неё, или в результате функций API. Каждый обратный вызов состоит из структуры (struct), содержащей уникальный идентификатор и небольшой набор данных. Обратные вызовы объявлены в заголовочных файлах ISteam*.h и сгруппированы по интерфейсам, которым они принадлежат в наибольшей степени.
ВНИМАНИЕ: Обратите внимание: вы должны убедиться, что Steam инициализирован до того, как создавать объекты, которые слушают обратные вызовы.
Пример
Один из обратных вызовов, который вы, скорее всего, будете использовать, — это ISteamFriends::GameOverlayActivated_t. Как и подразумевает его название, он отправляется всякий раз, когда пользователь открывает или закрывает оверлей.
Результаты вызова
Многие методы Steamworks используют результаты вызова вместо обратных вызовов для отправки асинхронных результатов вызова функции. Разница между обратным вызовов и результатом вызова состоит в том, что обратные вызовы транслируются всем слушателям, а результаты вызова — только определённому слушателю. Как и в случае с обратными вызовами, игре необходимо вызвать SteamAPI_RunCallbacks для подготовки отправки результатов вызовов их слушателям.
ВНИМАНИЕ: Обратите внимание: обратные вызовы и результаты вызова не взаимозаменимы. Вы получите информацию о событии только так или иначе, но не с помощью обоих средств. Вы должны убедиться, что слушатель зарегистрирован для нужного типа события!
Результаты вызова должны быть созданы в качестве члена в структуре или классе при помощи типа CCallResult.
Пример
Manual Callback Dispatch
Steam Game Servers
The Steamworks API includes support for running game servers as well as regular clients. A game server, in Steamworks API terms, is an entity in the system that normal users connect to to play multi-player games. This can be connecting over the Internet to a remote game server, or connecting locally to a game server that’s in the same process as the client. Game servers have their own set of API functions to use, and their own unique Steam ID for other users to refer to them by.
See Приложение-образец с API Steamworks (SpaceWar) for a fully loaded example of using the game server API.
Unlike a game, a dedicated server will usually be run in an environment where there is no Steam Client installed to provide the latest steamworks binaries. In order for the dedicated server to have the latest steam binaries, you will need to include the Dedicated Server Redistributables with your app. Log into partner.steamgames.com and navigate to the technical settings for your app. Then look under «Installation / Redistributables» and check «Dedicated Server Redistributables»
Commercial engine and non-C++ language support
If you’re using a commercial game engine or a language other than C or C++ you will want to see what level of support for the Steamworks API is provided for it.
In some engines they provide native built-in support, for others you may need a third-party solution.
If your engine does not have native support you can use the Steam Web API to access many features that Steam supports.
Regardless of how the Steamworks SDK is implemented in your engine you will need to have the latest Steamworks SDK to upload your application to Steam.
ВНИМАНИЕ: If some of the software you are shipping on steam is available under a restrictive open source license then please see Распространение приложений с открытым кодом в Steam.
Here are some common engines that people routinely use to ship games on Steam and the relevant documentation on how to get started using the Steamworks SDK with them.
ВНИМАНИЕ: Valve does not in any way endorse any of these engines or the third-party solutions. This list is sorted exclusively by name, and is in no way comprehensive, it exists solely as a starting guide. Engines will only be listed if they include native support or have a third-party solution that fits the guidelines. Third-party solutions will only be listed if they are kept reasonably up to date with the Steamworks SDK, are freely available under a permissive license (See: Распространение приложений с открытым кодом в Steam), and have a thread on the Steamworks Discussion Board. We recommend that you consult the community to see which option would work best for your specific setup.
Движки:
Языки:
Flat interface for binding to other languages
The SDK has a few features to facilitate the creation of binding layers for other languages.
Technical Details
Steam uses a variety of techniques to expose functionality to your application. It’s by no means critical to understand exactly how the Steamworks API works but it’s fairly simple and can be useful in planning out how to code your game with Steam integration in mind.
Steamworks sdk redist что это
Цель данной документации — предоставить вам информацию и ресурсы, которые потребуются для выпуска вашей продукции на одной из ведущих развлекательных платформ в мире: Steam.
В этом разделе вы найдете информацию о том, как стать партнёром Steamworks. Steamworks представляет собой набор инструментов, с помощью которых вы сможете распространять свою продукцию среди пользователей Steam, а также набор функций, которые вы можете интегрировать в ваш продукт, такие как подбор игр, списки лидеров, Мастерская Steam и проч. Управление продуктами, аккаунтом и информацией о компании осуществляется на партнёрском сайте Steamworks.
Настройка аккаунта Steamworks
Начните с регистрации в качестве партнёра Steamworks.
После регистрации аккаунта и подтверждения сведений о банке, налогах и компании, вы сможете добавить дополнительных пользователей и начать процесс регистрации своего первого продукта или приложения.
Загрузка SDK Steamworks
После завершения процесса регистрации загрузите SDK Steamworks, содержащий все скрипты и шаблоны для создания и отправки вашего продукта в Steam.
Последнюю версию SDK Steamworks можно найти здесь, а дополнительную информацию о нём — в соответствующем разделе документации.
Создание сборок и хранилищ для Steam
Чтобы выпустить приложение в Steam, вам потребуется отправить сборку и задать настройки. Данный процесс подробно изложен в разделе об отправке в Steam. When you want to build and test your application is up to you.
Настройка функций Steamworks
Вы можете использовать столько функций Steamworks, сколько хотите. Дополнительная информация доступна в разделе Список возможностей.
Создание страницы в магазине и установка цен
В процессе работы над приложением вы также можете начать подготовку страницы вашей игры (или программы) в магазине. Если у вас возникнут вопросы, вы можете задать их на форумах, посвящённых страницам в магазине и маркетингу. Дополнительная информация доступна в разделе Облик в магазине.
Подготовка к выпуску
Большую часть работы для подготовки вашего продукта к выпуску в Steam можно провести самостоятельно, используя существующие инструменты и документацию. Однако непосредственно перед выпуском сотрудникам Valve понадобится провести проверку страницы вашего продукта в магазине, предлагаемую цену и сборку игры.
Дополнительная информация доступна в разделе Процесс проверки.
Steamworks Common Redistributables: что это за программа, нужна ли она
Компонента Steamworks Common Redistributable появилась в составе пакета игр относительно недавно, и многие пользователи уже знают, что в некоторых случаях программа начинает вести себя не совсем корректно. Насколько она нужна в популярном игровом интерфейсе и можно ли обойтись без неё, мы и попробуем сегодня выяснить.
Для чего нужна программа SCR
Вопрос достаточно резонный: если Steamworks длительное время работал без этой дополнительной компоненты, то насколько оправданным является её добавление в состав продукта? На самом деле таких примеров в жизни – миллионы. Все творения рук человеческих совершенствуются, это естественный процесс. Первые автомобили не использовали электронные компоненты, а сегодня без ЭБУ машина просто не заведётся.
Вернёмся к нашему вопросу. Что же это за программа – Steamworks Common Redistributable? Если не вдаваться в технические детали, то эта компонента игровой платформы была разработана для объединения библиотек и отдельных важных файлов, нужных для функционирования игр. Отныне в библиотеке клиента всегда находится и файл SCR. Физически его можно найти в каталоге «Игры», а также в папке «Инструменты». Компонента активируется каждый раз при запуске игры с целью проверки целостности нужных файлов и для того, чтобы проверить, нет ли доступных свежих обновлений.
Кроме того, если выходило обновление пакета, то оно также выполнялось отдельно, создавая дополнительную нагрузку и на игровые сервера, и на платформу Steam.
Именно поэтому разработчики игрового интерфейса из VALVE решили объединить все используемые в платформе пакеты в одно место, а управление ими осуществлять тоже централизованно, с помощью Steamworks Common Redistributable.
Теперь при каждом запуске игры SCR использует все нужные библиотеки, собранные в единый каталог, что теоретически позволяет повысить скорость запуска, снизить нагрузку на ресурсы локального компьютера и сервера VALVE, уменьшить количество используемого интернет-трафика, обновлять пакеты с заменой старых, экономя дисковое пространство.
С точки зрения разработчиков появление новой компоненты облегчило им процесс создания игр, по крайней мере, в части их инсталляции на компьютеры пользователей.
Можно ли обойтись без Steamworks Common Redistributables
Существует категория пользователей, которые «в штыки» воспринимают все нововведения. Эти консерваторы считают, что и появление SCR ничем не оправдано, поскольку занимает дополнительное место в оперативной памяти. На самом деле это важная системная компонента Steam, без которой игры, разработанные с использованием этой платформы, могут работать со сбоями.
Впрочем, случайное или намеренное удаление содержимого каталога SCR даст только временный эффект – после любого планового обновления Steamworks Common Redistributables будет успешно восстановлена.
В среде компьютерных гуру бытует мнение, что подобное средство присутствовало в Steam и раньше, но только недавно разработчики решили легализовать компоненту.
Тем, кого наименование программы раздражает из-за постоянного присутствия в библиотечном списке используемых утилит, можно посоветовать сделать так, чтобы она запускалась в фоновом режиме и не попадалась им на глаза.
Для этого нужно выполнить несколько простых действий:
Иногда Steamworks Common Redistributable действительно становится источником проблем – например, когда процесс обновления, который раньше проходил быстро, вдруг зависает. Очевидно, что SCR пытается обновить нужные пакеты, но что-то пошло не так, и прогресс замер на одной точке.
Ваши действия в этой ситуации:
Если не помогло, пропингуйте сервера, используемые платформой Steam, АВ заодно проверьте и скорость доступа к серверам Microsoft. Если пинг большой, то очевидно, что проблема кроется в скорости интернет-соединения, и тогда займитесь именно этим.
Если ничто из перечисленного не помогло, остаётся переустановить клиентскую часть Steam, а заодно и игру, вызвавшую зависание обновления. Может случиться и так, что процесс обновления, инициированный SCR, висит, но сама игра запустилась и работает абсолютно нормально.
Можно просто игнорировать зависшее обновление, а если вас такой вариант не устраивает – обратиться в техподдержку Steam.
Итак, удаление Steamworks Common Redistributable не просто нежелательно – оно всё равно ничего не даст, пока вы используете эту игровую платформу, при последующей загрузке Steam пакет и его работоспособность будут восстановлены. Помните, что назначение SCR – не создание дополнительной нагрузки на ваш ПК, а совсем наоборот, ускорение запуска игр и экономия дефицитного дискового пространства. Вы просто можете скрыть компоненту в библиотеке, но и это нежелательно – при появлении проблем с обновлениями библиотек вам будет сложнее отыскать причину.