Введение
Оверлей Steam — часть интерфейса, которая открывается поверх почти любой игры, запущенной в Steam. Она позволяет пользователю получить доступ к списку друзей, браузеру, чату и внутриигровым покупкам.
По умолчанию пользователи открывают оверлей в игре, нажав SHIFT+TAB, но они могут сменить это сочетание в настройках Steam.
Требования
В игре не нужно делать ничего специального, чтобы оверлей работал, он автоматически добавляется к любой игре, запущенной через Steam. Во время разработки или при запуске игры в отладчике оверлей загружается при вызове
SteamAPI_Init. Поэтому вам придётся вызвать
SteamAPI_Init до инициализации устройства OpenGL или D3D, в противном случае обработать создание устройства не удастся.
Оверлей поддерживает игры, которые используют DirectX версий с 7 по 12, OpenGL, Metal или Vulkan. В играх, использующих собственные интерфейсы растеризации, оверлей работать не будет.
macOS: поддержка версии macOS 10.15 (Catalina) требует добавления прав в конфигурацию сборки вашего приложения. Details are provided on the
platforms page.
Обратите внимание: оверлей автоматически выключен для типа приложений «программное обеспечение». Если вам необходимо его включить:
- Making sure your Steam account has the Edit App Metadata permission
- Navigate from the App's landing page to > Edit Steamworks Settings > Installation tab > General Installation
- Check box for Enable Steam Overlay for Application
- Опубликуйте изменения.
Активация оверлея из приложения
Далее представлен набор функций, которые дают прямой доступ к открытию оверлея в игре.
Обмен информацией с игрой из оверлея
Steam отправляет следующие сигналы (обратные вызовы) вашей игре, когда пользователь предпринимает то или иное действие в оверлее:
- GameOverlayActivated_t
Отправляется, когда оверлей открывается или закрывается. Это можно использовать для приостановки или возобновления игры в однопользовательских играх.
- GameServerChangeRequested_t
Отправляется, когда пользователь выбирает игру друга, чтобы подключиться к ней. Содержит описание игрового сервера.
- GameLobbyJoinRequested_t
Отправляется, когда пользователь выбирает игру друга, чтобы подключиться к ней. Содержит описание лобби.
Частые вопросы
Обратите внимание: You may find additional answers on the customer facing support site such as this topic:
Steam Community Overlay does not Activate.
В. Почему оверлей вызывает сбои в моём приложении?
О. Оверлей Steam используется в тысячах игр, поэтому он тщательно протестирован и редко вызывает сбои. However, because of the way it injects itself into the game, it does often expose memory leaks or memory corruption in the usage of your rendering API that may not have impacted game play.
Для диагностирования, к примеру, сбоев работы оверлея с DirectX, постарайтесь определить, что вызвало некорректное состояние D3D, включив все уровни отображения ошибок в отладчике D3D (информация, предупреждения, ошибки, уведомления). Это может подсказать, какие ресурсы могли быть потеряны. Если этим способом ничего не найдено, проблема с ошибками памяти может быть более общей. Если сбой возникает при закрытии, вероятно, проблема заключается в порядке закрытия игры: очистка не выполняется должным образом.
If after debugging the app is still crashing in the overlay, please notify us in the
Steamworks Development Group.
В. Почему оверлей не открывается в моём приложении?
О. Сначала убедитесь, что вы выполнили все
требования. Если вы выполнили требования, но оверлей всё ещё не открывается, убедитесь, что вы запускаете приложение в клиенте Steam: либо напрямую из лобби или списка быстрого запуска, либо вызвав
SteamAPI_RestartAppIfNecessary.
В. My game is using D12onWin7, and the Steam overlay is not working.
О. Обратитесь к этой
документации Microsoft, чтобы узнать, как добавить поддержку оверлея Steam.