Steamworks Belgeleri
Steam Atölyesi Entegrasyon Rehberi

Giriş

Steam Atölyesi oyununuza veya uygulamanıza ait içeriklerin kolayca depolanmasını, düzenlenmesini, sıralanmasını ve bunların indirilebilmesine olanak tanıyan arka uç depolaması ve ön uç internet sayfalarından oluşan bir sistemdir.

Bu sayfada Steam Atölyesi'ni ürününüze nasıl entegre edebileceğinize dair teknik detaylar verilmektedir. Steam Atölyesi'ni oyununuza entegre etmeye başlamadan evvel, kullanabileceğiniz Atölye entegrasyonun farklı türleriyle ilgili bilgi ve tanımlamalar için ve Steam tarafından sağlanan araçlardan en fazla faydayı nasıl alabileceğinizle ilgili bilgiler için Steam Atölyesi Genel Bakışı belgesine bir göz atın.

Sizin tarafınızdan sağlanan araçlara oyununuzun müşterileri, genellikle, oyunu satın aldıktan sonra oyununuzla ilgili değişiklikler ve tamamen yeni içerikler oluşturmak için erişir. Bu müşteriler ardından içeriklerini Steam Atölyesi aracında dâhili olarak yer alan bir form aracılığıyla gönderir. Ardından diğer müşteriler de Steam Topluluğu'nda bulunan Steam Atölyesi'ne giderek oyunlarına eklemek istedikleri içeriklere göz atar, sıralar, oylar ve abone olur. Bu öğeler Steam aracılığıyla indirilir. Eğer oyununuzda ISteamUGC::ItemInstalled_t geri çağrısına kayıt olduysanız yüklü konumu almak ve bu klasördeki verileri doğrudan okumak için ISteamUGC::GetItemInstallInfo'yu çağırabilirsiniz. Ardından bu yeni içerik oyun tarafından oyununuz tarafından tanınır ve içerik oluşturulmuş olur.

Steam Atölyesi Türleri, Ücretlendirme ve En İyi Yöntemler

Kullanabileceğiniz Atölye entegrasyonun farklı türleriyle ilgili bilgi ve tanımlamalar için ve Steam tarafından sağlanan araçlardan en fazla faydayı nasıl alabileceğinizle ilgili bilgiler için Steam Atölyesi belgesine bir göz atın.

Steam Atölyesi Görünürlüğünü Yönetmek

Steam Atölyesi, Steam üzerinde barındırılan, paylaşılan içerikleri sıralamaya yarayan ve kullanıcılara Topluluk üzerinde görünür olan içerikler için oy verme ve yorumda bulunma imkânı tanıyan bir internet sitesidir. Varsayılan olarak, uygulamalar Atölye'de herkese görünür değildir. Bu, Steam Atölyesi portalı aracılığıyla herkese açık şekilde paylaşılmak istenmeyen içeriklerin görünmemesini sağlar (herkese görünür hâle getirilmediği müddetçe).
Atölye'nizin görünürlüğünü aşağıdaki adımları takip ederek ayarlayın:
  1. Steamworks sitesinden uygulamanın açılış sayfasına gidin
  2. Steamworks Ayarlarını Düzenle'ye tıklayın
  3. Atölye sekmesinden Genel'i seçin
  4. Sayfanın sağında yer alan Görünürlük Durumu kısmını bulun
  5. Sadece Geliştiriciler, Geliştiriciler ve Test Edenler, Geliştiriciler ve Herkes seçeneklerinin olduğu görünürlük seviyelerinden birini seçmek için radyo butonlarını kullanın
  6. Yayınla sekmesinde Yayına Hazırla'ya tıklayın
  7. Steam'e Yayınla'ya tıklayın ve değişiklikleri yayınlama sürecini tamamlayın
Not: Görünürlük durumunu Herkes olarak değiştirebilmeniz için markalama, ad, açıklama ve içeriğin en azından birisi herkese görünür olmasını gerektiren Atölye yapılacaklar listesi tamamlanmış olmalıdır.

Teknik Genel Bakışı

Kullanıcılar tarafından üretilen içeriklerin paylaşılması ve tüketilmesi Steamworks SDK'de yer alan ISteamUGC API'ı kullanılarak gerçekleştirilir. Anlatılan bu yöntemler Atölye öğe içeriklerinin paylaşımına imkân tanıyabileceğiniz bir yol sunar ve bu sayede bu içerikler de Steam Atölyesi aracılığıyla veya uygulama içinden keşfedilir hâle gelir.

Atölye API'ına SteamUGC()'den döndürülen işaretçi üzerinden erişilmelidir.

Örneğin:
SteamAPICall_t hSteamAPICall = SteamUGC()->CreateItem( SteamUtils()->GetAppID(), k_EWorkshopFileTypeMicrotransaction );

Oyun veya Uygulama için ISteamUGC'yi Etkinleştirmek

Atölye öğelerinin Steamworks arka ucuna yüklenebilmesi için yapılması gereken iki yapılandırma ayarı vardır; "Steam Cloud Kotalarının Yapılandırılması" ve ISteamUGC API'ının etkileştirilmesi.

Steam Cloud özelliği atölye öğeleriyle ilişkili görsel önizlemelerin saklanması için kullanılır. Steam Cloud kotasını yapılandırmak için aşağıdaki adımları takip edin:
  1. Uygulama Yöneticisi panelinden Steam Cloud Ayarları sayfasına gidin
  2. Kullanıcı başına bayt kotası ve Kullanıcı başına izin verilen dosya sayısı kısımlarına önizleme görseli depolaması için uygun değerler verin.
  3. Kaydet'e tıklayın
  4. Yayınla sekmesinde Yayına Hazırla'ya tıklayın
  5. Steam'e Yayınla'ya tıklayın ve değişiklikleri yayınlama sürecini tamamlayın

ISteamUGC API'ını etkinleştirmek için aşağıdaki adımları takip edin:
  1. Uygulama Yöneticisi panelinden Steam Atölyesi Yapılandırması sayfasına gidin
  2. Ek Yapılandırma Seçenekleri kısmını bulun.
  3. Dosya transferi için ISteamUGC'yi etkinleştir kutucuğunu işaretleyin.
  4. Kaydet'e tıklayın.
  5. Yayınla sekmesinde Yayına Hazırla'ya tıklayın.
  6. Steam'e Yayınla'ya tıklayın ve değişiklikleri yayınlama sürecini tamamlayın
Bu ayarlar yapıldıktan sonra Atölye içeriği API aracılığıyla yüklenmeye başlayabilir.

İçerik Oluşturmak ve Yüklemek

Bir atölye içeriği oluşturmak ve yüklemek oldukça basit ve tekrar edilebilir bir süreçtir, aşağıdaki akış şemasında detaylı olarak süreç gösterilmektedir.

ISteamUGCFlow-CreateUpload-Web2.png

Bir Atölye Öğesi Oluşturmak

  1. Bütün atölye öğelerinin oluşturma sürecindeki ilk adımı ISteamUGC::CreateItem'a yapılan bir çağrıyla başlar.
    • nConsumerAppId değişkeni oyun veya uygulamanın AppID'sini içermelidir. Eğer farklı bir App ID'ye sahip olan öğe oluşturma aracı kullanıyorsanız bunun App ID'sini aktarmayın.
    • EWorkshopFileType, paylaşılan dosyanın toplulukla nasıl paylaşılacağını tanımlayan bir sıralandırma türüdür. Geçerli değerler:
      • k_EWorkshopFileTypeCommunity - Bu dosya türü kullanıcılar tarafından yüklenen ve topluluktaki herkes tarafından indirilebilen dosyaları tanımlamak için kullanılır. Bunun en yaygın kullanımı kullanıcılar tarafından oluşturulan modların paylaşımındadır.
      • k_EWorkshopFileTypeMicrotransaction - Bu dosya türü kullanıcılar tarafından yüklenen ama yüklenen bu içeriğin o oyunda resmî içerik olarak kullanılmasının talep edildiği dosyaları tanımlamak için kullanılır. Bu dosyalar Atölye aracılığıyla indirilemez ancak bunlar için toplulukta oy kullanılabilir.
        Team Fortress 2 bu entegrasyonu kullanır.
  2. CreateItemResult_t çağrısı için bir çağrı sonuç işleyicisi kaydedin
  3. Öğenin oluşturulup oluşturulmadığını kontrol etmek için öncelikle m_eResult'ı kontrol edin.
  4. Çağrı sonucu işleyicisi uygulandıktan sonra m_nPublishedFileId değerini okuyun ve atölye öğesine ileride yapılabilecek güncellemeler için bunu saklayın (ör. oluşturma aracıyla ilişkili bir proje dosyasında).
  5. m_bUserNeedsToAcceptWorkshopLegalAgreement değişkeni de kontrol edilmelidir ve eğer true'ysa kullanıcı yasal sözleşmeyi kabul etmek üzere tekrar yönlendirilmelidir. Daha detaylı bilgi için Workshop Legal Agreement kısmına göz atın.

Bir Atölye Öğesi Yüklemek

  1. Bir atölye öğesi oluşturulduğunda ve PublishedFileId_t değeri döndüğünde, atölye öğesinin içeriği doldurulabilir ve Steam Atölyesi'ne yüklenebilir.
  2. Bir öğe güncelleştirme bir ISteamUGC::StartItemUpdate çağrısı ile başlar
  3. ISteamUGC::StartItemUpdate çağrısından gelen UGCUpdateHandle_t'yi kullanarak Başlık, Açıklama, Görünürlük, Etiketler, Öğe İçeriği ve Öğe Önizleme Görseli'ni güncellemek için çeşitli ISteamUGC::SetItem[...] yöntemleri ile güncellemek için çağrılar yapılabilir.
  4. Güncelleme çağrıları tamamlandıktan sonra ISteamUGC::SubmitItemUpdate çağrısını yapmak Steam Atölyesi'ne yükleme işlemini başlatır.
    • SubmitItemUpdateResult_t çağrısı için bir çağrı sonuç işleyicisi kaydedin
    • Çağrı sonuç tanıtıcısı uygulandıktan sonra m_eResult değerini kontrol ederek yüklemenin başarı ile tamamlandığını kontrol edin.
    • Not: Çağrı yapıldıktan sonra bir öğe güncelleme ve yükleme işlemini iptal etmek için bir yöntem yoktur.
  5. Eğer istenirse, yükleme ilerlemesi ISteamUGC::GetItemUpdateProgress kullanılarak izlenebilir
    • EItemUpdateStatus yükleme ve güncelleme ilerlemesini tanımlar.
    • punBytesProcessed ve punBytesTotal, yüklemenin ilerlemesini gösterecek bir ilerleme çubuğu gibi bir kullanıcı arayüzü kontrolü için girdi olarak kullanılabilir.
    • Öğe güncellemesinin durumuna göre yükleme sürecinde punBytesTotal güncellenebilir.
  6. Bir Atölye Öğesi Oluşturmak kısmında bahsedildiği gibi, kullanıcının yasal sözleşmeyi kabul ettiğini onaylayın. Kullanıcının ilk olarak öğeyi oluşturmadığı ancak var olan bir öğeyi düzenlediği zamanlar için gereklidir.

Ek Notlar

  • Atölye öğeleri daha önceden tek dosya olarak belirlenmiştir. ISteamUGC ile birlikte bir atölye öğesi bir dosyalar klasörünün bir temsilidir.
  • Eğer bir atölye öğesi, onu kullanan uygulama tarafından kullanılmak üzere ek üstveriye ihtiyaç duyarsa, ISteamUGC::SetItemMetadata çağrısını kullanarak öğenize üstveri ekleyebilirsiniz. Üstveri asıl içeriğin indirilip yüklenmesine gerek kalmadan sorgulardan döndürülebilir.
    Daha önceden bu üstveriyi, atölye öğesinin klasörü içerisindeki bir dosyada saklamanızı önermiştik. Bunu hâlâ yapmaya devam edebilirsiniz.

İçeriğin Kullanımı

Atölye içeriğinin kullanımı iki kategoriye ayrılabilir. Öğe Aboneliği ve Öğelerin Yüklemesi.

Öğe Aboneliği

Atölye öğesi aboneliklerinin çoğunluğu Steam Atölyesi portalı üzerinden gerçekleşir. Atölye bütün oyunlara ve uygulamalara açık ve bilinen bir konum olduğu için kullanıcılar da Atölye sitesi üzerinden burada yer alan öğeleri bulur ve bunlara abone olurlar.

Ancak, ISteamUGC oyun içi öğe aboneliği yönetimine destek olabilmek adına abone olma ve abonelikten çıkmak için programlanabilir iki yöntem sağlar.
  • ISteamUGC::SubscribeItem - Bir atölye öğesine abone olunur. Abone olunan öğe en kısa sürede indirilip kurulur.
  • ISteamUGC::UnsubscribeItem - Bir atölye öğesine olan aboneliği kaldırır. Bu, oyundan çıkıldıktan sonra öğenin kaldırılması ile sonuçlanır.

Bir kullanıcının abone olduğu öğeleri sıralamak için iki ek yöntem vardır.

Harici Abonelik Eylemleri için Bildirim Almak

Oyun içi abonelikler bir kullanıcı herhangi bir mekanizma (ör. ISteamUGC, Steam Workshop internet sitesi) aracılığıyla bir dosyaya abone olduğunda veya abonelikten çıktığında alınabilir:

Öğelerin Yüklemesi

Öğe aboneliği bilgisi öğrenildikten sonra kalan kullanım yöntemleri kullanılabilir. Bu yöntemler oyuna, öğenin indirilme ve yüklenme durumuyla ilgili bilgi sağlar. Atölye öğesi indirmeleri Steam istemcisi aracılığıyla aşağıdaki kurallar çerçevesinde uygulanır ve otomatik olarak gerçekleşir:
  1. Steam istemcisi bir oyun veya uygulamanın başlatılacağını belirttiği zaman güncellenmiş bütün uygulama depoları indirilir ve yüklenir.
  2. Eğer gerek varsa, yüklü atölye öğeleri de güncellenir.
  3. Ardından oyun veya uygulama başlatılır.
  4. Yeni abone olunan ve henüz indirilmemiş atölye öğeleri arka planda indirilir ve yüklenir.
    • Abone olunan dosyalar istemciye, abone olma sırasına göre indirilir.
    • Steam indirme sayfası atölye öğesi indirmelerini farklı bir işaretle göstererek yapılan indirmenin bir atölye öğesi olduğunu gösterir.
Not: Steam istemcisindeki "Oyun Dosyalarının Bütünlüğünü Doğrula" özelliğinin kullanılması da aynı şekilde atölye öğelerinin indirilmesine yol açar.

Oyun başlatılırken yeni abone olunan içerik indirilir ve yüklenir, diğer kullanım yöntemlerinin var olma amacı yükleme sürecini izlemek ve yönetmektir. Öğelere oyun içinden abone olunduğu zaman yükleme sürecinin gerçek zamanlı durumunu göstermek için de bunlar kullanılabilir.

Bir Atölye Öğesinin Durumu

Bir Atölye Öğesinin İndirilme Durumu

Bir Atölye Öğesinin İndirme Önceliğini Yükseltmek veya İndirmeyi Başlatmak

  • ISteamUGC::DownloadItem
    • Devam eden indirmelerin durdurulması ve bu atölye öğesinin hemen indirilmeye başlamasını sağlamak için bHighPriority'yi true olarak ayarlayın.
    • Eğer dönen değer true'ysa kaydedin ve ISteamUGC::GetItemInstallInfo'yu çağırmadan veya diskteki atölye öğesine erişmeden önce ISteamUGC::DownloadItemResult_t geri çağrısını bekleyin.
    • Eğer kullanıcı öğeye abone değilse (ör. anonim giriş kullanan bir oyun sunucusu) atölye öğesi indirilir ve geçici olarak önbelleğe alınır.
    • Eğer atölye öğesi k_EItemStateNeedsUpdate'in ISteamUGC::EItemState'ine sahipse güncellemeyi başlatmak için ISteamUGC::DownloadItem çağrılabilir. ISteamUGC::DownloadItemResult_t geri çağrısı çağrılana kadar diskteki atölye öğesine erişmeyin.
    • Bu yöntem sadece ISteamUGC ile oluşturulmuş atölye öğelerinde işe yarar. Eski ISteamRemoteStorage atölye öğelerinde işe yaramaz.
    • ISteamUGC::DownloadItemResult_t geri çağrısının yapısı, atölye öğesiyle ilişkili uygulama ID'sini (m_unAppID) içerir. Tanıtıcı çalışan uygulamanın ne olduğuna bakılmaksızın bütün öğe indirmeleri için çağrılacağından ötürü bu, çalışan uygulamanın ID'siyle karşılaştırılmalıdır.

Atölye Öğesinin Yerel Kopyasıyla İlgili Bilgi Almak

Atölye Öğesinin Yüklenmesi veya Güncellenmesiyle İlgili Bildirim

İçerik Sorgulama

ISteamUGC arayüzü, Steam'deki çeşitli UGC'leri (kullanıcılar tarafından üretilen içeriği) (ör. Atölye öğeleri, ekran görüntüleri, videolar, vb.) sıralamak için esnek bir yol sağlar.

ISteamUGCFlows-QueryingContent-web2.png

  1. SteamUGCQueryCompleted_t çağrısı için bir çağrı sonuç işleyicisi kaydedin.
  2. Gereksinim duyulan bağlama göre bir sorgu oluşturmanın birkaç yöntemi vardır. Bunlar, bir kullanıcıyla ilişkili içeriği sorgulama veya bütün içeriği sorgulama ya da ID'lerine sahip olduğunuz içeriğin detaylarını almaktır.
  3. Seçenek ayarları yöntemlerini çağırarak sorguyu uygun şekilde özelleştirin:
    • Kullanıcı UGC sorgularken
    • Bütün UGC'yi sorgularken
      • ISteamUGC::SetMatchAnyTag - Bekleyen bir UGC sorgusu sonucu döndürülecek atölye öğelerinin etiketlerinin, belirlenen etiketlerin tamamıyla mı yoksa bir veya daha fazla etiketle mi uyuşması gerektiğini ayarlar.
      • ISteamUGC::SetSearchText - Bekleyen bir UGC sorgusundaki öğelerin başlık veya açıklamalarıyla eşleşmesi gereken bir dizeyi ayarlar.
      • ISteamUGC::SetRankedByTrendDays - Bekleyen bir UGC sorgusundaki sonuçların sıralamasının öğelerin belirli bir gün periyodu aralığındaki sıralamalarına göre yapılıp yapılmayacağını ayarlar.
    • Herhangi bir tür UGC'yi sorgularken
      • ISteamUGC::AddRequiredTag - Bekleyen UGC sorgusuna mecburi bir etiket ekler. Bu, sadece belirtilen mecburi etikete sahip UGC'yi döndürür.
      • ISteamUGC::AddExcludedTag - Bekleyen UGC sorgusuna dışarıda tutulacak bir etiket ekler. Bu, sadece belirtilen etikete sahip olmayan UGC'yi döndürür.
      • ISteamUGC::AddRequiredKeyValueTag - Bekleyen UGC sorgusuna mecburi bir anahtar değer etiketi ekler. Bu sadece şu anahtara = [param]pKey[/param] ve değere = [param]pValue[/param] sahip olan atölye öğelerini döndürür.
      • ISteamUGC::SetReturnOnlyIDs - Bekleyen UGC sorgusunun bütün detaylar yerine sadece ID'leri döndürüp döndürmeyeceğini ayarlar. Bütün bilgilere (ör. belki sadece bir kullanıcının favoriler listesine eklediği öğelerin ID'lerini istiyorsunuzdur) ihtiyacınız yoksa bu gayet işe yarardır.
      • ISteamUGC::SetReturnKeyValueTags - Bekleyen UGC sorgusu sonucu öğelerin anahtar değeri etiketlerini döndürüp döndürmeyeceğini ayarlar.
      • ISteamUGC::SetReturnLongDescription - Bekleyen UGC sorgusu sonucu öğelerin tam açıklamalarını döndürüp döndürmeyeceğini ayarlar.
      • ISteamUGC::SetReturnMetadata - Bekleyen UGC sorgusu sonucu öğelerin üstverilerini döndürüp döndürmeyeceğini ayarlar.
      • ISteamUGC::SetReturnChildren - Bekleyen UGC sorgusu sonucu öğelerin alt öğelerinin ID'lerini döndürüp döndürmeyeceğini ayarlar.
      • ISteamUGC::SetReturnAdditionalPreviews - Bekleyen UGC sorgusu sonucu öğelerle ilgili ek görüntüleri/videoları döndürüp döndürmeyeceğini ayarlar.
      • ISteamUGC::SetReturnTotalOnly - Bekleyen UGC sorgusundan sadece eşleşen öğelerin toplam sayısını döndürüp döndürmeyeceğini ayarlar. -- ISteamUGC::SteamUGCQueryCompleted_t çağrıldığı zaman öğelerin kendisi döndürülmez.
      • ISteamUGC::SetLanguage - Bekleyen UGC sorgusu sonucu döndürülecek öğelerin başlıklarının ve açıklamalarının dilini ayarlar.
      • ISteamUGC::SetAllowCachedResponse - Bekleyen UGC sorgusu sonucu döndürülecek belirli süre aralığı sonuçlarının arabellekten gelip gelmeyeceğini ayarlar.
  4. Sorguyu Steam'e, 1. adımda kaydedilen çağrı sonuç işleyicisi olan ISteamUGC::SteamUGCQueryCompleted_t'yi tetikleyecek ISteamUGC::SendQueryUGCRequest'i kullanarak gönderin.
  5. Döndürlen her öğenin detayını almak istiyorsanız, ISteamUGC::SteamUGCQueryCompleted_t için olan çağrı sonuç işleyicisinden ISteamUGC::GetQueryUGCResult'ı çağırın.

  6. Her bir öğeyle ilgili ilave bilgi almak için aşağıdaki işlevleri de kullanabilirsiniz (bu verilerin bazıları varsayılan olarak döndürülmediği için sorgunuzu buna göre yapılandırmalısınız):
  7. Sorgulama esnasında veya sonuç alma esnasında ayrılmış olabilecek belleği boşa çıkartmak için ISteamUGC::ReleaseQueryUGCRequest'i çağırın.

Sonuçların Sayfalanması

Her sorgu sonucu 50 sonuç döner. unPage parametresini (başlangıçta 1 olarak başlamalıdır) artıran bir sorgu oluşturarak daha fazla sonuç sayfalaması yapılabilir.

Oynama Süresi Takibi

Atölye öğelerinin oynama sürelerini takip etmek için takip etmek istediğiniz öğelerin ID'leriyle birlikte ISteamUGC::StartPlaytimeTracking'i çağırın. Öğeler oynanmadığı zaman da takip etmeyi bırakmak istediğiniz öğelerin ID'leriyle birlikte l ISteamUGC::StopPlaytimeTracking'i veya bütün öğelerin oynama süresi takibini yapmayı bırakmak için ISteamUGC::StopPlaytimeTrackingForAllItems'ı çağırın.
Uygulamanız kapandığında oynama süresi takibi de otomatik olarak bırakılır.

ISteamUGC::CreateQueryAllUGCRequest sorgularında öğeleri çeşitli oynama süresi ölçümlerine göre sıralayabileceksiniz. Kullanabileceğiniz oynama süresi temelli sorgu türleri şunlardır:

Atölye Öğesi İçeriğini Silmek

Bir Atölye öğesini silmek için ISteamUGC::DeleteItem'ı çağırabilirsiniz. Bunun kullanıcıya bir bilgi vermediğini ve geri alınamadığını unutmayın.

Steamworks Örnek - SpaceWar Entegrasyonu

Steamworks SDK'in beraberinde gelen Steamworks API Example Application (SpaceWar), ISteamUGC API'ının alt kümesini gösterir.
  • CSpaceWarClient::LoadWorkshopItem, bir atölye öğesinin diske indirilip indirilmediğini kontrol etmeyi ve ISteamRemoteStorage::PublishedFileId_t aracılığıyla atölye öğesi hakkında bilgi talep etmeyi gösterir
  • CSpaceWarClient::LoadWorkshopItems, mevcut SpaceWar uygulamasını kullanıcısının bu uygulama için abone olduğu atölye öğelerinin bir listesini almayı gösterir
  • CSpaceWarClient::OnWorkshopItemInstalled, ISteamUGC::ItemInstalled_t için olan bir geri çağrı işleyicisini gösterir

Atölye Yasal Sözleşmesi

Atölye öğeleri, katılımcı Steam Atölyesi Yasal Sözleşmesi'ni imzalayana kadar varsayılan olarak gizlidir. Katılımcıların öğelerini daha kolay bir şekilde görünür yapabilmeleri için lütfen aşağıdaki adımları takip edin.
  1. Atölye'ye öğe göndermek için basılan butonun yanına şuna benzer bir metin ekleyin: "Bu öğeyi göndererek Atölye Hizmet Koşulları'nı kabul ettiğinizi beyan edersiniz" (bağlantıyla birlikte).
  2. Bir kullanıcı öğesini gönderdikten sonra; pchURL'i steam://url/CommunityFilePage/<PublishedFileId_t> (<PublishedFileId_t> atölye öğesi ID'si ile değiştirilmeli) şeklinde ayarlanmış bir biçimde ISteamFriends::ActivateGameOverlayToWebPage'i çağırarak Steam Atölyesi sayfasının yer aldığı bir tarayıcı penceresini açın.
Bu sayede gönderdiği öğeyi görebilmesi ve eğer gerekliyse gerekli yapılandırmaları yapabilmek üzere öğenin yaratıcısını Atölye sayfasına yönlendirmiş olursunuz. Bu sayede ayrıca kullanıcının Steam Atölyesi Yasal Sözleşmesi'ni okumasını ve kabul etmesini daha kolay bir hâle getirmiş olursunuz.

Web API

Bu yöntemlere ek olarak, benzer işlevsellik sağlayan bir dizi Web API arayüzü ve paylaşılan bütün içeriklerin listelenebileceği topluluk temelli filtreleme API'ları da vardır. Web API listesi belgesine giderek ISteamRemoteStorage arayüzü ile ilgili daha fzla bilgi edinebilirsiniz.

Özel Oyun Sunucuları

Oyun sunucuları da öğeleri indirip yükleyebilir.
  • Oyun sunucusu bir atçlye öğesi talebi yapabilmek için PublishedFileId_t'yi bilmelidir, bu bilgi oyun istemcileri ya da sunucu operatörleri tarafından sağlanabilir. Ardından atölye öğesinin geçici bir kopyasını almak için ISteamUGC::DownloadItem'ı çağırın.
  • Bundan sonra da atölye öğesini bulmak ve kullanmakla ilgili gerekli bilgileri almak için ISteamUGC::GetItemInstallInfo'ya çağrı yapılabilir.
  • Bu API yöntemleriyle ilgili daha fazla bilgi edinmek için yukarıda yer alan Öğe Yüklenmesi kısmını okuyun.

SteamCmd Entegrasyonu

Test amaçlı atölye öğeleri oluşturmak ve güncellemek için steamcmd.exe komut satırı aracı ISteamUGC API'ı ile birlikte kullanılabilir. Araç kullanıcının Steam giriş bilgilerini girmesini istediği için (bu, müşterilerin yapmak zorunda kalmalarını istemediğimiz bir şey) bu araç sadece test amaçlı kullanılmalıdır.

steamcmd.exe ile yeni bir Steam Atölye öğesi oluşturmak için öncelikle bir VDF dosyası oluşturulmalıdır. VDF, aşağıdaki anahtarları içermesi gereken düz bir metin dosyasıdır.
"workshopitem" { "appid" "480" "publishedfileid" "5674" "contentfolder" "D:\\Content\\workshopitem" "previewfile" "D:\\Content\\preview.jpg" "visibility" "0" "title" "Team Fortress Green Hat" "description" "A green hat for Team Fortress" "changenote" "Version 1.2" }

Notlar:
  • Anahtarlar çeşitli ISteamUGC::SetItem[...] yöntemlerine atanır. Daha fazla detay için yukarıdaki belgelendirmeye bakın.
  • Gösterilen değerler sadece örnektir ve uygun bir şekilde güncellenmemelidir.
  • Yeni bir öğe oluşturmak için appid ayarlanmalı ve publishedfileid ayarlanmamış vaziyette ya da 0 olacak şekilde ayarlanmış olmalıdır.
  • Mevcut bir öğeyi güncellemek için hem appid hem de publishedfileid ayarlanmış olmalıdır.
  • Geriye kalan anahtar/değer çiftleri, anahtarın güncellenme ihtimaline karşın VDF dosyasında yer almalıdır.
VDF oluşturulduktan sonra steamcmd.exe workshop_build_item <build config filename> dosya parametresi ile çalıştırılabilir. Örneğin:
steamcmd.exe +login myLoginName myPassword +workshop_build_item workshop_green_hat.vdf +quit
Eğer komut başarılıysa VDF'teki publishedfileid değeri otomatik olarak atölye öğesinin ID'sini içerek şekilde güncellenecektir. Bu şekilde aynı VDF dosyasına steamcmd.exe ile yapılacak sonraki çağrılar yeni bir öğe oluşturulmasının yerine güncellemeye neden olur.

Hatalar ve Günlük Kaydı

ISteamUGC yöntemlerinin çok büyük bir kısmı Boole değerlerini döndürür. Belirli hatalar hakkında daha fazla bilgi almak için bakabileceğiniz birçok yer vardır:

Sıkça Sorulan Sorular

S: Farklı bir uygulama benim oyunumun Atölye'sine içerik gönderebilir mi?

Evet. Düzenleme ve yayınlama araçları için olan farklı bir uygulama, temel uygulamanın atölyesi bu düzenleme uygulamasından gelecek içerikleri kabul edecek şekilde yapılandırılabilir.

Bunu yapılandırmak için ana uygulamanın Atölye Yapılandırması kısmına gidin ve sayfanın en altına inin. Farklı uygulamanın uygulama ID'sini "Uygulama Yayınlama İzinleri"nin altında yer alan kutuya girin ve "Ekle"ye tıklayın.

Steamworks ayarları yayınlandıktan sonra bu düzenleme uygulaması ana uygulamanın atölyesine içerik gönderebilecek bir vaziyete gelir.