Документація Steamworks
Сервіс інвентарю Steam
Служба інвентарю Steam — це набір функцій, які дозволяють грі використовувати постійний інвентар користувача без залучення спеціальних серверів для управління користувачами чи предметами.

Будь ласка, залишайте відгуки та ставте запитання в обговоренні інвентарю Steam групи розробників Steamworks.

Опис

Службу інвентарю можна використовувати двома способами: або без сервера, або з додаванням перевіреного сервера, який знає стан гри.

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

Однак оскільки клієнт не може бути надійним (а ключі на стороні клієнта може перехопити зловмисник), ви не можете видавати користувачам конкретні предмети за цією схемою. Натомість ви можете обрати предмети для випадіння й визначити частоту випадіння. У потрібний час гра викликатиме ISteamInventory::TriggerItemDrop. Сервери Steam стежать за часом гри й управляють частотою випадіння для кожного гравця. Ці API викликаються за допомогою внутрішнього клієнтського ключа API, який не вважається надійним.

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

У поєднанні зі службою інвентарю ви можете продавати окремі предмети чи кошик предметів у грі або через веб-сайт крамниці.

Подивіться цей виступ із конференції Steam Dev Days 2016 для загального огляду впровадження функції й подробиць того, як служба інвентарю вирішує певні проблеми для розробників, а також для прикладів того, як партнери вже використовуються цю систему для обслуговування своїх користувачів.

https://www.youtube.com/watch?v=jDfhPTSOLis

Огляд впровадження

  1. Створення визначень предметів
    Вам потрібно розпочати зі створення й вивантаження визначень предметів (ItemDefs).
    Вони описують можливий набір предметів у вашій грі. Вам не обов’язково використовувати їх у самій грі, але Steam потребує їх для правильного показу інвентарю. Для створення визначення предметів перейдіть до розділу інвентарю Steam у зоні конфігурації вашого Steamworks. Ви можете перейти туди звідси: https://partner.steamgames.com/apps/inventoryservice/
  2. Увімкнення служби інвентарю
    Коли ви матимете визначення предметів, увімкніть службу інвентарю шляхом вибору «Увімкнути службу інвентарю» на сторінці, куди ви вивантажили ваші визначення предметів. Майте на увазі, що у випадку приватної видимості вашого предмета в налаштуваннях економіки Steam лише акаунти партнерської групи Steamworks зможуть отримати доступ до таких предметів у грі.
  3. Встановлення ключа сервера елементів
    Спершу згенеруйте ключ веб-API для свого застосунку (інструкції: Створення ключа веб-API видавця) і розташуйте його в поле ключа сервера елементів у налаштуваннях економіки Steam.
  4. Завантаження інвентарю користувачів
    Ігровий клієнт завантажує інвентар користувачів викликом ISteamInventory::GetAllItems.
    Бажано робити це періодично, оскільки користувач може додавати предмети через обмін чи придбання.
    Залежно від вашої гри може бути доцільним перевіряти це на початку кожного матчу чи рівня.
  5. Надання тестових предметів
    Використовуйте ISteamInventory::GenerateItems для додавання конкретних предметів поточному ігровому акаунту для розробницьких цілей.
  6. Надання користувачу випадіння за час гри (необов’язково)
    У належний час (зазвичай наприкінці матчу/фази) викличте ISteamInventory::TriggerItemDrop, щоби побачити, чи користувач заробив нове випадіння.
  7. Продаж предметів (необов’язково)
    Щоби додати підтримку мікротрансакцій, визначте свої ціни у визначеннях предметів. Після цього користувачі зможуть їх купувати кількома способами:

API

Документація API інвентарю Steam доступна ось тут: ISteamInventory.

Веб-API

Документація веб-API інвентарю Steam доступна тут: IInventoryService.

Веб-функції

Це структуровані веб-сторінки, на які ви можете перенаправляти користувача.
  • ItemCart — використовується для надсилання кошика з предметами до придбання через Steam.
  • BuyItem — може використовуватися для придбання одного предмета через Steam.