Introducción
La economía de Steam es nuestro nombre para un conjunto de funciones que permiten que artículos de varios juegos funcionen juntos en un único sistema en Steam. Los artículos de los juegos de la economía de Steam pueden adquirirse a través de microtransacciones, se pueden ganar mediante logros de Steam, se pueden entregar dentro del juego u otorgar en respuesta a diversos tipos de promociones. Los usuarios pueden ver sus inventarios del juego en la comunidad de Steam, incluir vínculos a los artículos en las sesiones de chat e intercambiarlos con otros usuarios. Steam aporta la interfaz de usuario y gestiona la parte más exigente de estas funciones, pero deja en manos del juego el control absoluto de los artículos en sí.
Los artículos de los juegos en la economía de Steam se denominan " recursos" y pueden representar cualquier cosa que un usuario pueda poseer en un juego. Algunos ejemplos serían equipamiento, vehículos, personajes, mascotas, recetas de artesanía, etc. El juego comunica a Steam cómo representar un recurso para los usuarios, pero lo que el recurso hace realmente es decisión del juego. El juego también es responsable de hacer el seguimiento de qué usuarios poseen qué recursos y de comunicar esa información tanto a usuarios como a agentes de soporte. También es responsabilidad del juego determinar qué recursos se pueden intercambiar, decidir las restricciones de almacenamiento a las que están sujetos los usuarios y aportar información al equipo de soporte sobre todo lo anterior.
Cada juego controla estas cosas mediante la implementación de la API de recursos de Steam. Esta es una compilación de Web API para conferir a Steam visibilidad en ese "backend". A continuación se encuentra toda la documentación de la API de recursos de Steam.
Requisitos previos
Para añadir un juego a la economía de Steam deben cumplirse ciertos requisitos.
- La aplicación debe poseer un "backend" para recursos que no se almacene en el cliente del juego. Será un requisito poseer algún tipo de base de datos que se mantenga activa en un centro de datos. Tal centro de datos podría pertenecer a un editor o un desarrollador, o ser aportada por un servicio de alojamiento en la nube. Steam ofrece gratuitamente un Servicio de inventario que puede utilizarse como almacenamiento persistente de elementos para tu juego.
- El juego debe definir un conjunto de Id. de contexto que definen los contenedores en los que un usuario puede tener recursos.
- Cada juego debe suministrar un id. persistente de 64 bits para cada recurso que pueda ser intercambiado con otro usuario. Como mínimo, este id. de recurso debe ser único dentro del contexto que contiene el recurso.
- El juego debe proporcionar iconos de inventario para todos los recursos del juego mediante un servidor web. Estos iconos deben estar disponibles en los tamaños 96x96 y 200x200, en formato jpg, png o gif. Steam proporcionará el ancho de banda necesario para servir estas imágenes a los usuarios.
- El juego debe implementar al menos los métodos incluidos más abajo donde pone Intercambios de Steam.
- El juego también debe implementar métodos de integración de la herramienta de soporte.
Sigue leyendo solo si...
Piensas crear tu propio servicio de seguimiento de recursos. El resto de este documento describe la API de la web requerida.
De lo contrario, si planeas usar el servicio de inventario de Steam
el servicio de inventario de Steam no necesitas seguir leyendo.
Intercambios de Steam
El sistema de intercambios de Steam emplea una interfaz web para realizar intercambios y ver inventarios. Estas páginas se llenan con los resultados de
GetContexts
,
GetContextContents
,
GetAssetClass
y
GetAssetClassInfo
en la API de recursos. Una vez que ambos usuarios confirman un intercambio, se realiza una implementación de tres fases en todos los juegos afectados. Toda la lógica de implementación y reversión para este proceso de tres fases se gestiona en el servidor de economía de Steam. Hace que se produzcan cambios de propiedad en los juegos a través de los métodos
TradeSetUnowned
y
TradeSetOwned
.
GET | GetContexts/v0001 | Devuelve la lista de contextos para un usuario. |
GET | GetContextContents/v0001 | Devuelve la clase de recurso de cada uno de los recursos del usuario y la moneda para mostrar en un intercambio o en la comunidad de Steam. |
GET | GetAssetClass/v0001 | Devuelve la clase de recurso y el propietario de una lista de recursos para mostrar en un intercambio o en la comunidad de Steam. |
GET | GetAssetClass/v0001 | Devuelve la información para mostrar del usuario para una única clase de recurso. |
POST | TradeSetUnowned/v0001 | Se utiliza cuando el servidor de economía necesita que el juego elimine un recurso o alguna cantidad de moneda del usuario. |
POST | TradeSetOwned/v0001 | Se utiliza cuando el servidor de economía necesita que el juego cambie un recurso existente sin propietario para que pase a ser propiedad de un usuario. |
Integración de la herramienta de soporte
La herramienta de soporte es el sistema que los agentes de soporte de Steam utilizan para ayudar a resolver los problemas que surgen con los recursos de un usuario (y cualquier otro problema de la cuenta en Steam). La implementación de estas APIs permite que ambas formas del acceso de la herramienta de soporte a los recursos en un juego.
El acceso a la herramienta de soporte para juegos en Steam Economy se proporciona a través de dos páginas: Economía e Historial. La página de Economía interactúa con los recursos en un contexto con
GetContextContents
y
GetAssetClassInfo
. La página de Historial utiliza
GetUserHistory
,
GetHistoryCommandDetails
,
HistoryExecuteCommands
. Ambas páginas mostrarán los detalles de los recursos con los resultados de
SupportGetAssetHistory
.
ContextCommand
se usa para permitir que los agentes de soporte realicen acciones a nivel de contexto y de recursos.
Compras en la web
Se puede permitir a los usuarios adquirir desde la web artículos para un juego implementado las siguientes API.
Reembolsos de Steam
La
Política de reembolsos de Steam permite a los usuarios obtener un reembolso por las compras efectuadas dentro del juego en menos de 48 horas tras la compra, siempre que ninguno de los artículos adquiridos se haya consumido, modificado o transferido. Si se desea participar en esta política, es preciso implementar las siguientes API.
GET | QueryRefundAllowed/v0001 | Se utiliza para comprobar el estado de cada artículo en una compra integrada dentro del juego. |
POST | RefundPurchase/v0001 | Se utiliza cuando se aprueba un reembolso, ya sea automáticamente o por parte de un agente de soporte. |
Recursos foráneos
Si tu juego importa recursos de otro juego, puedes llamar a
GetExportedAssets
para extraer los recursos.
Control de versión de la interfaz
Para dar cabida a futuras versiones de la API de recursos, el servidor de economía adjunta un número de versión a todas las URL a las que llame. En este momento, todos los métodos están en la versión 1, por lo que "/v0001" se adjuntará a cada URL. Entonces, si el URL de tu servidor de recursos es
https://api.mygame.com/assetapi
entonces el método
GetContexts
se llamará como
https://api.mygame.com/assetapi/GetContexts/v0001
, seguido de los parámetros GET especificados
para ese método.
Claves de API
Si estableces una clave de API en la pestaña Economía de los detalles técnicos de tu juego, esa clave se transferirá a cada llamada realizada por el servidor de economía.
La clave estará en un parámetro GET o POST (según el tipo de solicitud) denominado "key". Debe comprobarse que la clave coincide con lo que se estableció en la pestaña Economía al recibirse una llamada, para asegurar que la llamada procede del servidor de economía.
Preguntas frecuentes
P. ¿Qué es la economía de Steam?
R. La plataforma Steam incluye características para lograr intercambios seguros y fiables, un mercado mundial con moneda real, información detallada sobre objetos fuera del juego a través de la comunidad de Steam y mucho más. Es posible incorporar cualquiera de estas características o todas ellas.
P. ¿Cuáles son las ventajas de participar en la economía de Steam?
R. Los artículos en los juegos con economía habilitada son más valiosos que los que solo se usan en ecosistemas de un juego, lo que crea clientes más satisfechos.
Los jugadores pueden incluir vínculos a artículos en los perfiles de Steam y en chats, lo que aumenta la exposición tanto del juego como de sus artículos. En el caso de juegos que admiten el intercambio, los artículos tienen valor no solo para sus actuales propietarios, sino para los demás jugadores activos y las posibles incorporaciones. Esto significa, por ejemplo, que todos los juegos que utilizan el sistema de economía de Steam se vuelven inmediatamente más interesantes y valiosos para los jugadores de los demás juegos con economía (como Team Fortress 2 y Dota 2).
Además, se puede aprovechar nuestra infraestructura existente de intercambio/transacciones de moneda y soporte, así como incorporarse gratuitamente a cualquier funcionalidad futura.
P. ¿Cuáles son los requisitos para participar?
R. R. La aplicación debe poseer un "backend" que no se almacene en el cliente del juego (también denominado servidor de artículos). Se requerirá algún tipo de base de datos que exista en un centro de datos.
Ese centro de datos podría ser propiedad de un editor o desarrollador, o podría ser proporcionado por un servicio de alojamiento en la nube. Steam ofrece gratuitamente un
Servicio de inventario que se utilizará como almacenamiento persistente de elementos para tu juego. Ese
backend debe implementar un pequeño número de Web API para que Steam pueda comunicarse con él.
P. ¿Podemos participar solo en ciertas partes de la economía o tiene que ser en todas?
R. Las Web API a las que llama Steam proporcionan una interfaz unificada a la comunidad de Steam para ver artículos, hacer intercambios entre juegos y desarrollar el Mercado de la comunidad de Steam. Es posible desactivar características de forma general (p. ej., activar todos los intercambios, pero desactivar todas las transacciones del Mercado) o detallada (p. ej., todos los artículos pueden verse en la comunidad; algunos pueden intercambiarse, pero solo algunos concretos pueden aparecer en el Mercado). Se pueden cambiar estos ajustes por cada artículo en cualquier momento.
P. ¿Dispone Valve de un backend de artículos persistente que podamos usar como parte de Steamworks?
R. El
servicio de inventario de Steam está disponible para su utilización.