Steamworks 문서
Steam 보관함 서비스
Steam 보관함 서비스는 게임이 특별 서버를 가동할 필요 없이 지속적인 플레이어어 보관함을 통해 사용자나 아이템을 관리할 수 있게 해주는 일련의 기능입니다.

Steamworks 개발자 그룹의 Steam 보관함 토론에 의견이나 질문을 남겨주시기 바랍니다.

설명

보관함 서비스는 두 가지 방법, 즉 서버 없이 사용하거나 게임 상태를 아는 신뢰할 수 있는 서버와 함께 사용할 수 있습니다.

게임 서버 없이 사용할 때는 게임 클라이언트가 Steam 서비스와 직접 통신하여 사용자의 보관함 콘텐츠를 검색하고, 아이템을 소비 및 교환하거나 플레이 시간을 기준으로 새로운 아이템이 전달됩니다. 사용자는 아이템 상점이나 Steam 커뮤니티 장터에서 아이템을 직접 구매하거나 교환 및 거래할 수 있습니다.

그러나 클라이언트를 신뢰할 수 없기 때문에 (또한 공격자가 언제든지 클라이언트의 키를 캡처할 수 있기 때문에) 이 방식으로는 사용자에게 아이템을 확실히 전달할 수 없습니다. 이보다는 특정 아이템을 획득 가능하도록 하거나 획득 빈도를 구성하는 방법이 좋습니다. 게임 클라이언트는 적절한 시점에 ISteamInventory::TriggerItemDrop을 불러옵니다. Steam 서버는 플레이어 당 플레이 시간과 획득 빈도를 관리합니다. 이러한 API는 신뢰할 수 없다고 생각되는 내부 ‘클라이언트 키’를 사용하여 호출됩니다.

신뢰할 수 있는 서버가 참여 중인 경우에는 특별 Steam API 키를 해당 서버에 사용해 적절한 상황에 특정 아이템을 부여합니다. 다만 클라이언트를 신뢰할 수 없기 때문에, 이 방법은 서버가 게임의 마스터 상태일 때만 가능하다는 점에 유의하세요.

마지막으로, 보관함 서비스와 연동되는 기능으로 게임 내 혹은 웹 기반 상점을 통해 개별 아이템이나 여러 아이템을 판매할 수 있습니다.

2016년 Steam Dev Days의 프레젠테이션을 통해 구현 개요, 보관함서비스가 개발자를 위해 해결한 여러 가지 문제에 대한 자세한 내용, 시스템을 사용 중인 파트너가 고객에게 제공하는 서비스의 내용을 확인하시기 바랍니다.

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

구현 개요

  1. 아이템 정의 생성
    먼저 몇 가지 아이템 정의를 생성하여 업로드해야 합니다(ItemDefs).
    이는 게임에서 사용 가능한 아이템을 나타냅니다. 게임에서 실제 사용하지 않더라도 Steam이 보관함에 정상적으로 표시할 수 있어야 합니다. ItemDefs를 생성하려면 Steamworks 구성 영역의 Steam 보관함 섹션으로 이동하세요. 페이지 URL은 https://partner.steamgames.com/apps/inventoryservice/입니다.
  2. 보관함서비스 사용
    아이템 정의를 생성한 후 아이템 정의를 업로드한 페이지의 ‘보관함 서비스 사용’을 확인하여 보관함 서비스를 활성화하세요. 참고로, 아이템의 공개 여부가 Steam 경제 설정에서 비공개로 설정되어 있으면 Steamworks 파트너 그룹의 계정만이 게임 내 아이템에 접근할 수 있습니다.
  3. 자산 서버 키 설정
    애플리케이션의 게시자 웹 API 키를 생성하여(지침: Creating a Publisher Web API Key) Steam 경제 설정의 자산 서버 키 항목에 입력하세요.
  4. 사용자 보관함 다운로드
    ISteamInventory::GetAllItems를 호출하여 게임 클라이언트가 사용자의 보관함을 다운로드하도록 하세요.
    사용자가 교환 또는 구매로 보관함에 아이템을 추가할 수도 있으므로 주기적으로 실행할 것을 권장합니다.
    게임에 따라 시작 시 각 게임 또는 레벨의 확인이 필요할 수 있습니다.
  5. 테스트 아이템 제공
    ISteamInventory::GenerateItems를 사용하여 현재 플레이어 계정에 개발자용 아이템을 추가하세요.
  6. 사용자에게 ‘플레이 시간 드롭’ 제공(선택 사항)
    적절한 시점(주로 매치나 단계가 끝난 시점)에 ISteamInventory::TriggerItemDrop을 호출하여 사용자가 새 아이템을 획득했는지 확인하세요.
  7. 아이템 판매(선택 사항)
    소액 결제를 지원하려면 itemdef에 가격을 정의하세요. 그리고 나면 고객이 다음과 같은 방법으로 구매하도록 할 수 있습니다.

API

Steam 보관함 API에 대한 문서는 ISteamInventory의 API 참조에서 찾아볼 수 있습니다.

웹 API

Steam 보관함 웹 API에 대한 문서는 IInventoryService의 웹 API 참조에서 찾아볼 수 있습니다.

웹 기능

사용자를 이동시킬 수 있는 구조화된 웹 페이지입니다.
  • ItemCart - Steam을 통해 구매할 장바구니의 모든 아이템을 전송하는 데 사용됩니다.
  • BuyItem - Steam을 통해 단일 아이템을 구매하는 데 사용됩니다.