Документація Steamworks
Оверлей Steam

Огляд

Оверлей Steam — це частина користувацького інтерфейсу Steam, яка активується поверх майже будь-якої гри, що запускається через Steam. Він дозволяє користувачам отримати доступ до свого списку друзів, веб-оглядача, чату та внутрішньоігрових придбань.

Стандартна комбінація для доступу гравця до оверлею під час гри — SHIFT+TAB. Однак користувачі можуть змінювати її в налаштуваннях Steam.

Вимоги

Для роботи оверлею в грі не потрібно робити нічого особливого, він автоматично додається до будь-якої запущеної в Steam гри! Під час розробки чи роботи налагоджувача оверлей завантажується, якщо ви викликаєте SteamAPI_Init. Тому вам потрібно викликати SteamAPI_Init до ініціалізації пристрою OpenGL/D3D, інакше не вдасться обробити створення пристрою.

Оверлей підтримує ігри, що використовують DirectX 7-12, OpenGL, Metal і Vulkan. Оверлей не буде активним в іграх, що використовують власні інтерфейси растеризації.

Підтримка оверлею на macOS 10.15 (Catalina) вимагає додавання норм до конфігурації вашої збірки. Докладніше це описано на сторінці про платформи.
ПРИМІТКА: оверлей автоматично вимикається для застосунків типу «програма». Якщо вам потрібно ввімкнути для них оверлей:
  • Переконайтеся, що ваш акаунт Steam має дозвіл на зміну метаданих застосунку.
  • На домівці застосунку перейдіть до редагування налаштувань Steamworks > вкладка «Інсталяція» > розділ «Загальне».
  • Увімкніть «Увімкнути оверлей Steam для застосунку».
  • Опублікуйте зміни.

Активація оверлею у вашому застосунку

Існує набір функцій API Steamworks, які дають вам прямий доступ до виклику оверлею.
  • ISteamFriends::ActivateGameOverlay
    Ця функція може відкривати ігровий оверлей із вказаним діалоговим вікном.
  • ISteamFriends::ActivateGameOverlayToUser
    Ця функція може відкривати ігровий оверлей із вказаним діалоговим вікном, а користувач передається як контекст.
  • ISteamFriends::ActivateGameOverlayToWebPage
    This function can open the game overlay to its web browser, and loads the specified url. Це повинна бути повна адреса, як-от http://www.steamgames.com/.
  • ISteamFriends::ActivateGameOverlayToStore
    Ця функція може відкривати ігровий оверлей для придбання завантажуваного вмісту поточної гри (див. розділ про завантажуваний вміст для докладнішої інформації).
  • ISteamUtils::SetOverlayNotificationPosition
    Визначає, у якому кутку екрана ви хочете показувати сповіщення оверлею. Стандартно вони показуються в правому нижньому куті.
  • ISteamUtils::IsOverlayEnabled
    Повертає true, якщо оверлей запущено й користувач може мати доступ до нього. Процес відкриття й перехоплення оверлею може тривати кілька секунд, тож поки оверлей завантажується, функція повертатиме значення false.

Обмін інформацією між оверлеєм і вашою грою

Сигнали нижче (зворотні виклики) надсилаються зі Steam до вашої гри відповідно до дій користувача в оверлеї:
  • GameOverlayActivated_t
    Надсилається, коли ігровий оверлей активується чи деактивується. Гра може використовувати це для призупинення й поновлення в самітних іграх.
  • GameServerChangeRequested_t
    Надсилається, коли користувач обирає гру друга, щоби підключитися до неї. Містить опис ігрового сервера.
  • GameLobbyJoinRequested_t
    Надсилається, коли користувач вибирає гру друга, щоби підключитися до неї. Містить опис лобі.

Часті питання

ПРИМІТКА: ви можете знайти додаткові відповіді на сайті підтримки користувачів, наприклад, у статті «Оверлей Steam не активується».

П. Чому оверлей Steam призводить до аварійного завершення мого застосунку?

В. Оверлей Steam використовується в тисячах ігор, тож він ретельно перевірений і дуже рідко викликає проблеми. Однак метод, який оверлей використовує для потрапляння в гру, може виявити помилки чи витоки пам’яті в роботі API візуалізації, котрі могли не зачепити ігровий процес.

Для діагностування, наприклад, проблем роботи з DirectX спробуйте визначити, що викликало поганий стан D3D шляхом увімкнення всіх рівнів показу помилок у налагоджувачі D3D (інформація, попередження, помилки, сповіщення). Це може підказати, які ресурси було втрачено. Якщо таким способом нічого не виявлено, то помилка пам’яті може бути загальнішою. Якщо проблема виникає під час вимкнення, то, імовірно, вона пов’язана зі способом вимкнення гри, коли очищення не відбувається належним чином.

Якщо після налагодження в застосунку все ще виникають проблеми, то повідомте нас у групі розробників Steamworks.

П. Чому оверлей Steam не показується в моєму застосунку?

В. Спершу переконайтеся, що виконали вимоги вище. Якщо вимоги виконано, але оверлей не відкривається, то переконайтеся, що запускаєте застосунок у клієнті Steam: або напряму з лобі чи швидкого запуску, або за допомогою SteamAPI_RestartAppIfNecessary.

П. Моя гра використовує D12onWin7 і оверлей Steam не працює. Чому?

В. Будь ласка, прочитайте цю документацію Microsoft про додавання підтримки оверлею Steam.