O Serviço de Inventário Steam é um conjunto de funcionalidades que permitem a jogos ter inventários persistentes para cada jogador sem a necessidade de servidores especiais para a gestão de utilizadores ou itens.
Partilhe a sua opinião ou faça perguntas no
subfórum sobre o Serviço de Inventário Steam no grupo de developers Steamworks.
Descrição
O Serviço de Inventário Steam pode ser usado de duas formas: sem um servidor ou com a adição de um servidor confiável que saiba o estado do jogo.
Sem um servidor, o jogo pode comunicar diretamente com o serviço do Steam para obter o conteúdo dos inventários dos utilizadores, consumir/trocar itens e receber itens novos concedidos de acordo com o tempo de jogo. Os utilizadores também podem trocar itens entre si ou comprar itens diretamente na loja de itens e no Mercado da Comunidade Steam.
Porém, como o cliente do jogo não é confiável (e as chaves do cliente podem ser sempre capturadas num ataque informático), não é possível conceder itens específicos desta forma aos utilizadores. Em vez disso, terá de selecionar os itens que podem ser distribuídos e a frequência de distribuição de cada um. Em momentos apropriados, o cliente do jogo invoca a função
ISteamInventory::TriggerItemDrop. Os servidores do Steam tratam do tempo de jogo e da frequência de distribuição por jogador. Estas APIs são chamadas usando uma "chave da API do cliente" que é considerada não confiável.
Se tiver um servidor confiável participante, pode usar uma chave privilegiada da API do Steam no servidor e conceder itens específicos em situações apropriadas. É importante ter em mente que não se pode confiar por completo nos clientes de jogo; logo, faça só isto quando o servidor for o mestre do estado do jogo.
Por último, com o Serviço de Inventário Steam, pode vender itens individuais ou um carrinho de itens
dentro do jogo ou através de uma
loja na web.
Assista a esta apresentação do Steam Dev Days de 2016 para uma vista geral sobre a implementação, detalhes de problemas específicos que o Serviço de Inventário Steam resolve aos developers e uma demonstração de como os parceiros já estão a usar o sistema para servir os respetivos utilizadores.
https://www.youtube.com/watch?v=jDfhPTSOLisVista geral da implementação
- Crie definições de itens
Terá primeiro de criar e enviar algumas definições de itens (ItemDefs).
Estas definições descrevem o conjunto de itens possíveis no seu jogo. Não é obrigatório usá-las no próprio jogo, mas o Steam precisa das definições de itens para que o inventário apareça corretamente. Para criar ItemDefs, aceda à secção do inventário Steam na área de configuração do Steamworks ou ao seguinte link: https://partner.steamgames.com/apps/inventoryservice/
- Ative o Serviço de Inventário Steam
Assim que tiver enviado definições de itens, assinale a opção "Ativar Serviço de Inventário" na página onde as enviou. Tenha em atenção que, se a visibilidade dos itens for privada nas "Definições de Economia Steam", apenas contas no seu grupo de parceiro Steamworks poderão aceder aos itens no jogo.
- Defina a chave do servidor de recursos
Primeiro, terá de gerar uma chave da Web API de editora para a aplicação (instruções: Criação de uma chave da Web API de editora). Introduza-a no campo "Chave do servidor de bens" nas definições de Economia Steam.
- Descarregue o inventário dos utilizadores
Faça com que o cliente do jogo descarregue os inventários dos utilizadores ao chamar a função ISteamInventory::GetAllItems.
Recomendamos chamar a função periodicamente caso o utilizador adicione 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 utilizador atual para fins de teste.
- Conceda um item por tempo de jogo (opcional)
Em momentos apropriados (normalmente no fim de uma partida ou fase), chame a função ISteamInventory::TriggerItemDrop para verificar se o utilizador deveria receber um item novo.
- Venda itens (opcional)
Para permitir microtransações, defina preços nas suas ItemDefs. Os utilizadores poderão depois comprar esses itens de várias formas:
APIs
A documentação das APIs do Inventário Steam está disponível no guia de referência da API aqui:
ISteamInventoryWeb APIs
A documentação da Web API do Inventário Steam está disponível no guia de referência da Web API aqui:
IInventoryServiceFunções web
Estas são páginas web estruturadas para as quais é possível encaminhar o utilizador.
- ItemCart – Pode ser usada para enviar um carrinho de itens para ser comprado através do Steam.
- BuyItem – Pode ser usada para comprar um único item através do Steam.