Steamworks Belgeleri
Steam Envanter Hizmeti
Steam Envanter Servisi, kullanıcıları veya öğeleri yönetmek için özel bir sunucuya ihtiyaç duymadan bir oyunun oyunculara kalıcı envanter sahibi olması olanağı veren bir dizi özellikten ibarettir.

Lütfen bizlere geri bildirimlerinizi veya sorularınızı Steamworks Geliştiricileri grubu içerisindeki Steam Envanter Tartışmaları içerisinden iletebilirsiniz.

Açıklama

Envanter Hizmeti iki yol ile kullanılabilir. Sunucusuz bir şekilde veya oyunun durumunu bilen güvenilir bir sunucu ile birlikte.

Bir oyun sunucusu olmadan, oyun istemcisi direkt olarak Steam hizmeti ile iletişime geçerek kullanıcıların envanter içeriklerini alabilir, öğeleri değiştirebilir veya tüketebilir ve oynanış süresinin bir etkisi olarak kazanılan yeni öğeleri alabilir. Kullanıcılar ayrıca öğeleri, Öğe Mağazasından direkt olarak satın alabilirler veya Steam topluluğu içerisindeki pazarlarda takaslayabilir veya değiştirebilirler.

Fakat, istemcinin güvenilebilir olmamasından ötürü (ve bir istemcideki anahtarların her zaman bir saldırgan tarafından ele geçirilebileceğinden ötürü) bu şema içerisinde kullanıcılara özel öğeler veremezsiniz. Bunun yerine düşürülebilecek belirli öğeleri seçebilir ve düşme sıklığını ayarlayabilirsiniz. Uygun vakitlerde oyun istemcisi ISteamInventory::TriggerItemDrop çağrısını çağırır. Steam sunucuları oynanış süresini ve oyuncu başına düşme sıklığını kontrol eder. Bu API'lar güvenilmez olduğu varsayılan bir iç "İstemci API Anahtarı" kullanılarak çağrılırlar.

Eğer güvenilir bir sunucunuz var ise o zaman öncelikli Steam API anahtarını o sunucuda kullanabilir ve uygun durumlar için özel öğeler sağlayabilirsiniz. Kendi istemcilerinize güvenemeyeceğiniz durumunu unutmamanız oldukça önemlidir. Bu yüzden bu eylemi sadece sunucu oyun durumu konusunda yetkili olduğu zamanlarda yapabilirsiniz.

Son olarak, Envanter Hizmeti ile birlikte bireysel bir öğeyi veya bir sepet dolusu öğeyi oyun içerisinden veya web tabanlı bir mağazadan satabilirsiniz.

Steam Geliştirici Günleri 2016'dan olan uygulama genel bakışı hakkında olan bu sunuma bir göz atın. Envanter Hizmetinin geliştiriciler için olan spesifik sorunları nasıl çözdüğünü detaylıca gösterirken, hali hazırda bu sistemi kullanan partnerlerin müşterilerine bu hizmet ile nasıl hizmet ettiklerini anlatıyor.

https://www.youtube.com/watch?v=jDfhPTSOLis

Uygulama Genel Bakış

  1. Öğe Tanımları Oluşturun
    Bazı öğe tanımlarını (ItemDefs) oluşturarak ve onları yükleyerek başlamanız gerekli.
    Bunlar oyununuz içerisindeki olası öğe setlerini açıklar. Bunları oyununuzda kullanmanız gerekmez ancak Steam envanteri doğru göstermek için onlara ihtiyaç duyar. ItemDefs oluşturmak için Steamworks yapılandırma alanınızdaki Steam Envanter bölümüne gidin. Bunları oradan ayarlayabilirsiniz: https://partner.steamgames.com/apps/inventoryservice/
  2. Enable Inventory Service
    Once you have item definitions, turn on the Inventory Service by checking "Enable Inventory Service" on the page you uploaded your item definitions. Note that while your item visibility is set to Private, only accounts in your Steamworks Partner group will be able to access your items in-game.
  3. Varlık Sunucusu Anahtarını Ayarlayın
    İlk olarak uygulamanız için bir Yayıncı Web API anahtarı oluşturun (yönergeler: Creating a Publisher Web API Key) ve Steam Ekonomi Ayarları içerisinde yer alan alana Varlık Sunucu Anahtarını girin.
  4. Kullanıcıların Envanterini İndirin
    ISteamInventory::GetAllItems çağrısı ile oyun istemcinizin kullanıcıların envanterlerini indirmesini sağlayın.
    Bu eylemi periyodik olarak gerçekleştirmeniz genellikle iyi bir seçenektir. Kullanıcılar satın alarak veya takas yolu ile yeni öğeler eklemiş olabilirler.
    Oyununuza bağlı olarak oyunun veya bölümün her başlangıcında yapılacak bir kontrol uygun olabilir.
  5. Test Öğeleri Sağlayın
    ISteamInventory::GenerateItems çağrısını kullanarak geliştirme amaçları doğrultusunda mevcut oyuncu hesaplarına belirli öğeleri verin.
  6. Kullanıcıya bir Oynanış Süresi Öğe Düşürmesi Sağlayın (isteğe bağlı)
    Uygun vakitlerde (maçların veya aşamaların sonu genellikle iyi bir tercihtir) ISteamInventory::TriggerItemDrop çağrısı ile kullanıcının yeni bir öğe düşürmüş olup olmadığını kontrol edebilirsiniz.
  7. Öğelerin Satışı (isteğe bağlı)
    Mikrohareket desteği eklemek için itemdefs değerleriniz içinde fiyatları belirleyin. Daha sonra kullanıcıların satın alabilmesi için birkaç farklı yol olacaktır:

API'lar

Steam Envanter API'ları için olan belgelendirmeler API Referansında erişilebilir:ISteamInventory

Web API'ları

Steam Envanter Web API'ları için olan belgelendirmeler API Referansında erişilebilir:ISteamInventory

Web İşlevleri

Bunlar, kullanıcıyı yönlendirebileceğiniz yapılandırılmış web sayfalarıdır.
  • ItemCart - Steam aracılığı ile satın alınabilecek öğe dolu bir sepeti göndermek için kullanılır.
  • BuyItem - Steam aracılığı ile satın alınabilecek tek bir öğeyi satın almak için kullanılır.