Documentación de Steamworks
Id. de contexto de la economía de Steam
Cada activo en Steam Economy se puede identificar de forma única mediante la combinación de tres números: id. de la aplicación, id. del contexto e id. del activo. De cada juego depende determinar qué significa el id. de contexto de 64 bits para sus recursos. Dependiendo del estilo del juego, probablemente adopte una de las formas diferentes. En cualquier caso, a Steam no le importa cuáles son los valores de un id. de contexto. El único requisito es que permanezca igual para el mismo contexto lógico (servidor, carácter, contenedor, etc.) para que los registros de auditoría sigan siendo precisos y, por lo tanto, GetAssetDetails continuará trabajando para esos recursos.

Steam reserva los dos bits superiores de cada id. de contexto para usos propios. Los id. de contexto devueltos por un servidor de recursos deben ser cero en sus dos bits superiores.

Todos los contextos definidos por el servidor de recursos deben tener también un id. de contexto distinto de cero. Las API que devuelven un id. de contexto no deben especificar un valor de cero.

Inventario por juego

Algunos juegos disponen de un solo inventario por usuario y no existe el concepto de personaje persistente, distinto de la cuenta de usuario. En estos juegos solo puede haber un contexto por cuenta para representar todos los artículos que la cuenta posee. También pueden declarar algunos contextos que contengan otros tipos de recursos o contextos no visibles por el usuario y que sirvan para exponer algunos datos internos en la herramienta de soporte.

economy_simple_contexts.png

Inventario por personaje

En algunos juegos, cada cuenta puede tener varios personajes; y cada personaje, varios inventarios. Un esquema de artículos de contexto que puede usarse en estos juegos es dividir dentro del personaje el id. de contexto en un id. de personaje de 32 bits (con dos bits reservados) y un id. de contenedor de 32 bits. Si el juego maneja internamente identificadores de personaje de 32 bits únicos a nivel global, puede utilizarlos directamente en el id. de contexto.

economy_simple_contexts.png

Personajes en un fragmento

Algunos juegos tienen personajes vinculados a un servidor específico y luego varios inventarios por personaje. Es un patrón común en los MMO. Un modo de separar los id. de contexto para esta clase de configuración sería usar los 16 bits altos (con dos bits reservados) para el id. de servidor, 32 bits para el id. de personaje y 16 bits para el id. de contenedor. (Por brevedad, se han omitido los ceros en el diagrama).

economy_shard_contexts.png