Documentazione di Steamworks
ID di contesto dell'Economia di Steam
Ogni risorsa dell'Economia di Steam può essere identificata in modo univoco dalla combinazione di tre numeri: l'ID dell'applicazione, l'ID di contesto e l'ID della risorsa. Il gioco determina il significato dell'ID di contesto a 64 bit in relazione alle rispettive risorse. A seconda dello stile del gioco, il significato assumerà probabilmente forme diverse. In ogni caso, per Steam non è rilevante la natura effettiva dei valori di un ID di contesto. L'unico requisito è che vi sia coerenza con il contesto logico (server, personaggio, contenitore ecc.) in modo da garantire l'accuratezza continua dei registri degli audit e il funzionamento di GetAssetDetails per tali risorse.

Steam riserva al proprio uso esclusivo i due bit superiori di ogni ID di contesto. Gli ID di contesto restituiti dal server di una risorsa devono presentare un valore pari a zero nei due bit superiori.

Tutti i contesti definiti dal server della risorsa devono avere anche un ID di contesto diverso da zero. Le API che restituiscono ID di contesto non devono specificare un valore pari a zero.

Inventario basato sul gioco

In alcuni giochi è presente un unico inventario per ciascun utente e non vi è l'idea di un personaggio persistente distinto dall'account del giocatore. Tali giochi potrebbero disporre di un solo contesto per rappresentare tutti gli oggetti posseduti da ciascun account. Potrebbero inoltre dichiarare alcuni contesti contenenti altri tipi di risorse o contesti non visibili all'utente, con l'unica finalità di esporre alcuni dati interni nello strumento di supporto.

economy_simple_contexts.png

Inventario basato sul personaggio

In alcuni giochi ogni account può scegliere più personaggi e ciascuno di questi può avere a sua volta più inventari. Una delle strategie per il contesto degli oggetti che può essere utilizzata in tali giochi consiste nel partizionare l'ID di contesto in un ID del personaggio a 32 bit (con due riservati) e in un ID contenitore a 32 bit interno al personaggio. Se il tuo gioco presenta ID dei personaggi globali univoci a 32 bit, puoi utilizzarli direttamente per l'ID di contesto.

economy_simple_contexts.png

Personaggi su una partizione

In alcuni giochi i personaggi sono vincolati a un server specifico e sono previsti più inventari per ciascun personaggio. Questo modello è comune tra i giochi di tipo MMO. Un modo per partizionare gli ID di contesto per questo tipo di configurazione consiste nell'utilizzare i 16 bit superiori (con due riservati) per l'ID del server, 32 bit per l'ID del personaggio e 16 bit per l'ID del contenitore. Gli zeri sono stati omessi dal diagramma per motivi di sintesi.

economy_shard_contexts.png