Documentação do Steamworks
Serviço de Inventário Steam
O serviço de Inventário Steam é um conjunto de recursos que permitem que um jogo tenha inventários persistentes para cada jogador sem precisar hospedar servidores especiais para o gerenciamento de usuários ou itens.

Por favor, deixe comentários ou tire dúvidas nas discussões do Inventário Steam do grupo de desenvolvedores Steamworks.

Descrição

O serviço de inventário pode ser usado de duas formas — sem a existência de um servidor ou com a adição de um servidor confiável que conhece o estado do jogo.

Sem um servidor, o cliente do jogo pode se comunicar diretamente ao serviço do Steam para recuperar o conteúdo dos inventários dos usuários, consumir e permutar itens, assim como receber novos itens de acordo com o tempo de jogo. Usuários também podem comprar itens diretamente da loja de itens, trocar pela Comunidade Steam ou adquirir por meio do Mercado da Comunidade.

Contudo, como o cliente não é confiável (e as chaves do cliente sempre podem ser capturadas por um atacante), não é possível conceder itens específicos desta forma. No lugar, você seleciona quais itens podem ser distribuídos e a frequência de cada um. Em momentos apropriados, o cliente do jogo invoca a função ISteamInventory::TriggerItemDrop. Os servidores Steam cuidam do tempo de jogo e frequência de distribuição por jogador. Essas APIs são chamadas usando uma "chave da API do cliente" que é considerada não confiável.

Se tiver um servidor confiável participante, então é possível usar uma chave privilegiada da API do Steam no servidor e distribuir itens específicos em situações apropriadas. É importante lembrar que não se pode confiar totalmente nos clientes, então só faça isso quando o servidor for o mestre do estado do jogo.

Finalmente, em conjunto com o serviço de inventário é possível vender itens individuais ou um carrinho de itens dentro do jogo ou por uma loja na web.

Assista a esta apresentação (em inglês) dos Steam Dev Days de 2016 para uma visão geral de implementação, detalhes de problemas específicos de desenvolvedores solucionados pelo sistema de inventário e demonstração de como parceiros já estão usando o sistema para agradar os seus clientes.

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

Visão geral da implementação

  1. Crie definições de itens
    Primeiro, é necessário criar e enviar algumas definições de itens (ItemDefs).
    As definições descrevem o conjunto de itens possível no jogo. Não é necessário usá-las no jogo, mas elas são necessárias para que o Steam exiba o inventário corretamente. Para criar definições de itens, acesse a seção do Inventário Steam na área de configuração do Steamworks, ou acesse: https://partner.steamgames.com/apps/inventoryservice/
  2. Ative o serviço de inventário
    Assim que tiver definições de itens, ative o serviço de inventário assinalando a opção "Ativar serviço de inventário" na página de envio de definições de itens. Se a visibilidade dos itens for Privada nas "Configurações da economia Steam", apenas contas do grupo de parceiro Steamworks poderão acessá-los no jogo;
  3. Defina a chave do servidor de ativos
    Primeiro, gere uma chave da Web API de distribuidora para o aplicativo (instruções: Criação de uma chave de distribuidora) e coloque-a no campo "Chave do servidor de bens" nas configurações da economia Steam;
  4. Baixe o inventário dos usuários
    Peça ao cliente do jogo para baixar o inventário dos usuários por meio da função ISteamInventory::GetAllItems.
    É aconselhável chamá-la periodicamente caso o usuário venha a adicionar mais itens por trocas ou compras.
    Dependendo do jogo, uma verificação no início de cada partida ou nível pode ser apropriado;
  5. Conceda itens de teste
    Use ISteamInventory::GenerateItems para adicionar itens específicos à conta do usuário atual para propósitos de desenvolvimento;
  6. Conceda um item por tempo de jogo (opcional)
    Em momentos apropriados (tipicamente no fim de uma partida/fase), chame a função ISteamInventory::TriggerItemDrop para verificar se o usuário tem direito a um item novo;
  7. Venda itens (opcional)
    Para usar microtransações, defina preços nas definições de itens. Usuários poderão comprar itens de diferentes formas:

APIs

A documentação das APIs do Inventário Steam está disponível na referência da API: ISteamInventory

Web APIs

A documentação da Web API do Inventário Steam está disponível na referência da Web API: IInventoryService

Funções web

São páginas estruturadas para as quais poderá redirecionar o usuário.
  • ItemCart — Pode ser usada para enviar um carrinho de itens para compra pelo Steam;
  • BuyItem — Pode ser usada para comprar um único item pelo Steam.