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=jDfhPTSOLisVisão geral da implementação
- 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/
- 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;
- 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;
- 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;
- Conceda itens de teste
Use ISteamInventory::GenerateItems para adicionar itens específicos à conta do usuário atual para propósitos de desenvolvimento;
- 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;
- 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:
ISteamInventoryWeb APIs
A documentação da Web API do Inventário Steam está disponível na referência da Web API:
IInventoryServiceFunçõ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.