Steamworks 문서
Steam 창작마당 구현 가이드

개요

Steam 창작마당은 게임이나 애플리케이션 콘텐츠를 간편하게 저장, 정리, 분류, 평가, 다운로드할 수 있게 해주는 백 엔드 저장소와 프런트 엔드 웹 페이지입니다.

이 페이지에는 게임에 Steam 창작마당을 구현하기 위한 기술 세부 사항이 포함되어 있습니다. 게임에 Steam 창작마당을 통합하기에 앞서, Steam 창작마당 개요에서 활용할 수 있는 다양한 종류의 창작마당에 관한 정보 및 정의와 Steam에서 제공하는 도구를 최대한 활용하는 방법을 확인하시기 바랍니다.

일반적으로 고객은 게임을 구매할 때 귀하가 제공한 도구를 이용하여 모드 또는 전혀 새로운 콘텐츠를 제작할 것입니다. 그리고 제작한 콘텐츠를 귀하의 도구에 내장된 형태로 Steam 창작마당에 제출할 것입니다. 그러면 Steam 커뮤니티의 Steam 창작마당을 통해 다른 고객들도 해당 아이템을 탐색, 분류, 평가하고 자신의 게임에 추가할 아이템으로 구독할 수 있습니다. 이러한 아이템은 마지막으로 Steam을 통해 다운로드됩니다. 게임 안에서 ISteamUGC::ItemInstalled_t 콜백을 등록했다면, ISteamUGC::GetItemInstallInfo를 호출하여 설치 경로를 불러온 다음 해당 폴더에서 바로 데이터를 읽을 수 있습니다. 게임은 새 콘텐츠를 게임과 콘텐츠 결과물에 대해 적절한 한도 내에서 인식하게 됩니다.

Steam 창작마당의 종류, 수익, 모범 사례

Steam 창작마당에서 활용할 수 있는 다양한 종류의 창작마당에 관한 정보 및 정의와 Steam에서 제공하는 도구를 최대한 활용하는 방법을 확인하시기 바랍니다.

Steam 창작마당 표시 관리

Steam 창작마당은 Steam이 호스팅하는 웹사이트로서 공유 콘텐츠를 열거하고, 커뮤니티를 통해 보여지는 콘텐츠에 사용자가 투표하거나 의견을 제시할 수 있게 합니다. 기본적으로 애플리케이션은 창작마당에 공개되지 않도록 설정되어 있습니다. 이는 창작마당을 공개로 설정하지 않는 이상 Steam 창작마당 포털을 통해 공유할 예정이 없는 콘텐츠가 공개되는 것을 예방합니다.
창작마당의 표시 상태를 설정하려면 다음 단계를 따르세요.
  1. Steamworks 웹사이트의 애플리케이션 랜딩 페이지로 이동하세요.
  2. Steamworks 설정 편집하기를 클릭하세요.
  3. 창작마당 탭에서 일반을 선택하세요.
  4. 페이지 우측에서 표시 상태 섹션을 찾으세요.
  5. 라디오 버튼을 사용해 개발자 전용, 개발자 및 테스터, 고객 및 개발자, 모두에게 공개 중에서 원하는 표시 수준을 선택하세요.
  6. 게시 탭에서 게시 준비를 클릭합니다.
  7. Steam에 게시를 클릭한 후 프로세스를 완료하여 변경 사항을 게시하세요.
참고: 표시 상태를 모두에게 공개로 변경하려면 로고, 제목, 설명, 콘텐츠를 공개할 하나 이상의 아이템을 포함한 창작마당 체크리스트를 작성해야 합니다.

기술 개요

사용자 생성 콘텐츠의 공유 및 사용 과정은 Steamworks SDK에 있는 ISteamUGC API에 내장되어 있습니다. 이 메서드로 Steam 창작마당이나 앱 내에 있는 창작마당 아이템 콘텐츠를 공유할 수 있습니다.

창작마당 API는 반드시 SteamUGC()에서 반환된 포인터를 통해 액세스해야 합니다.

예시:
SteamAPICall_t hSteamAPICall = SteamUGC()->CreateItem( SteamUtils()->GetAppID(), k_EWorkshopFileTypeMicrotransaction );

게임 혹은 애플리케이션을 위한 IStreamUGC 활성화

창작마당 아이템을 Steamworks 백엔드에 업로드하려면 먼저 Steam Cloud 할당 및 ISteamUGC API 활성화에 해당하는 두 가지 구성을 설정해야 합니다.

Steam Cloud 기능은 창작마당 아이템과 연관된 미리 보기 이미지의 저장에 사용됩니다. Steam Cloud 할당은 다음 단계를 통해 구성할 수 있습니다.
  1. 앱 관리자 패널의 Steam Cloud 설정 페이지로 이동합니다.
  2. 미리 보기 이미지 저장을 위해 사용자당 할당 바이트사용자당 허용 파일 수를 적절한 값으로 설정하세요.
  3. 저장 클릭하기
  4. 게시 탭에서 게시 준비를 클릭합니다.
  5. Steam에 게시를 클릭한 후 프로세스를 완료하여 변경 사항을 게시하세요.

다음 단계를 진행하면 ISteamUGC API를 활성화할 수 있습니다.
  1. 앱 관리자 패널의 Steam 창작마당 구성 페이지로 이동합니다.
  2. 추가 구성 옵션 섹션을 찾습니다.
  3. 파일 전송에 ISteamUGC 사용을 확인하세요.
  4. 저장을 클릭하세요.
  5. 게시 탭에서 게시 준비를 클릭합니다.
  6. Steam에 게시를 클릭한 후 프로세스를 완료하여 변경 사항을 게시하세요.
설정이 완료되면 API를 통해 창작마당 콘텐츠를 업로드할 수 있습니다.

콘텐츠 생성 및 업로드

창작마당 콘텐츠를 생성하고 업로드하는 절차는 아래의 순서도와 같이 간단하고 반복적입니다.

ISteamUGCFlow-CreateUpload-Web2.png

창작마당 아이템 생성

  1. 모든 창작마당 아이템은 ISteamUGC::CreateItem을 호출해 생성할 수 있습니다.
    • nConsumerAppId 변수에는 게임이나 애플리케이션의 앱 ID가 있어야 합니다. 별도의 앱 ID인 경우 창작마당 아이템 생성 도구의 앱 ID를 전달하면 안 됩니다.
    • EWorkshopFileType은 공유 파일이 커뮤니티에서 공유되는 방법을 정의하는 열거 유형입니다. 유효값은 다음과 같습니다.
      • k_EWorkshopFileTypeCommunity - 이 파일 유형은 사용자가 업로드한 파일을 설명하는 데 사용되며 커뮤니티에서 누구나 다운로드 가능합니다. 주로 사용자가 생성한 모드를 공유하는 데 사용됩니다.
      • k_EWorkshopFileTypeMicrotransaction - 이 파일 유형은 사용자가 업로드한 파일을 설명하는 데 사용되지만, 공식 콘텐츠를 추가할 게임에만 사용할 수 있습니다. 이 파일은 사용자가 창작마당에서 다운로드할 수 없으나 커뮤니티에서 평가할 수 있도록 게시됩니다.
        이것이 팀 포트리스 2가 사용하는 구현 방법입니다.
  2. CreateItemResult_t의 호출 결과 핸들러를 등록합니다.
  3. 먼저 m_eResult를 통해 아이템이 성공적으로 생성되었는지 확인하세요.
  4. Call Result 핸들러가 실행되면 m_nPublishedFileId 값을 읽고 향후 업데이트를 위해 창작마당 아이템에 저장하세요(예: 생성 도구와 연관된 프로젝트 파일).
  5. m_bUserNeedsToAcceptWorkshopLegalAgreement 변수도 확인해야 하며, 이것이 true인 경우 사용권 계약에 동의하도록 사용자를 리디렉션해야 합니다. 자세한 내용은 창작마당 사용권 계약 섹션을 확인해보시기 바랍니다.

창작마당 아이템 업로드

  1. 창작마당 아이템이 생성되고 PublishedFileId_t 값이 반환되면 창작마당 아이템의 콘텐츠를 Steam 창작마당에 업로드할 수 있습니다.
  2. 아이템 업데이트는 ISteamUGC::StartItemUpdate 호출로 시작됩니다.
  3. ISteamUGC::StartItemUpdate에서 반환된 UGCUpdateHandle_t를 이용해 제목, 설명, 표시 유형, 태그, 아이템, 콘텐츠, 아이템 미리 보기 이미지가 ISteamUGC::SetItem[...] 메서드를 통해 업데이트되도록 호출할 수 있습니다.
  4. 업데이트 호출을 완료한 후 ISteamUGC::SubmitItemUpdate를 호출하면 Steam 창작마당에 업로드하는 프로세스가 시작됩니다.
    • SubmitItemUpdateResult_t의 호출 결과 핸들러를 등록합니다.
    • 호출 결과 핸들러가 실행되면 m_eResult를 확인하여 업로드가 성공적으로 진행되었는지 확인합니다.
    • 참고: 호출한 후에는 아이템 업데이트나 업로드를 취소할 수 없습니다.
  5. ISteamUGC::GetItemUpdateProgress를 사용하면 업로드 진행을 파악할 수 있습니다.
    • EItemUpdateStatus는 업로드와 업데이트 진행 상황을 나타냅니다.
    • punBytesProcessedpunBytesTotal은 진행 상황 막대와 같이 사용자 인터페이스를 제어하는 입력을 통해 업로드의 진행 상황을 나타냅니다.
    • punBytesTotal은 아이템의 업데이트 단계에 따라 업로드가 진행되는 동안 업데이트될 수 있습니다.
  6. 창작마당 아이템을 생성하는 방법과 마찬가지로, 사용자가 사용권 계약에 동의했는지 확인하세요. 이는 사용자가 아이템을 생성하지는 않았으나 기존 아이템을 편집하는 경우에 반드시 필요합니다.

추가 사항

  • 창작마당 아이템은 이전에는 단독 파일로 지정되었습니다. ISteamUGC에서 창작마당 아이템은 파일 폴더로 나타납니다.
  • 창작마당 아이템에 소비자 애플리케이션에서 사용할 추가 메타데이터가 필요한 경우 ISteamUGC::SetItemMetadata 호출을 이용해 아이템에 메타데이터를 붙일 수 있습니다. 메타데이터는 아이템 콘텐츠를 다운로드하거나 설치하지 않아도 쿼리에 반환됩니다.
    Steam은 이전에 메타데이터를 창작마당 아이템 폴더 안의 파일에 저장할 것을 권고했고 지금도 그렇게 하실 수 있습니다.

콘텐츠 사용

창작마당 콘텐츠 사용은 아이템 구독과 아이템 설치의 두 가지 카테고리로 나뉩니다.

아이템 구독

창작마당 아이템의 구독은 대부분 Steam 창작마당 포털을 통해 이루어집니다. 사용자들은 모든 게임과 애플리케이션에 잘 알려진 창작마당 사이트에서 정기적으로 아이템을 구독하고 발견할 수 있습니다.

ISteamUGC는 창작마당 아이템을 프로그래밍 방식으로 구독하고 구독 해지하는 두 가지 메서드를 제공하여 게임 내 아이템의 구독 관리를 지원합니다.
  • ISteamUGC::SubscribeItem - 창작마당 아이템을 구독합니다. 아이템이 신속하게 다운로드되고 설치됩니다.
  • ISteamUGC::UnsubscribeItem - 창작마당 아이템을 구독 해제합니다. 게임이 종료되면 아이템이 삭제됩니다.

사용자의 구독 아이템을 통해 열거되는 두 개의 메서드가 더 있습니다.

외부 구독 작업에 대한 알림 수신

게임 내 알림은 사용자가 다양한 매커니즘(예:ISteamUGC, Steam 창작마당 웹사이트)을 통해 파일을 구독 또는 구독 해지한 경우에 수신할 수 있습니다.

아이템 설치

아이템 구독 정보가 알려지면 남은 소비 메서드를 활용할 수 있습니다. 이 메서드는 아이템 다운로드 및 설치 상태에 대한 정보를 게임에 제공합니다. 창작마당 아이템 다운로드는 Steam 클라이언트를 통해 실행되고 다음 규정에 따라 자동으로 이행됩니다.
  1. Steam 클라이언트에서 게임이나 애플리케이션 출시를 알리면 업데이트된 모든 앱 디포가 다운로드 및 설치됩니다
  2. 기존에 설치된 창작마당 아이템은 필요한 경우 업데이트됩니다.
  3. 게임 또는 애플리케이션이 출시됩니다.
  4. 새로 구독한 창작마당 아이템 중 다운로드되지 않은 아이템은 백그라운드에서 다운로드 및 설치됩니다.
    • 구독하는 파일은 구독한 순서대로 클라이언트에 다운로드될 것입니다.
    • Steam 다운로드 페이지는 전용 배너와 함께 창작마당 아이템 다운로드로 표시되어 창작마당 아이템 다운로드가 진행 중임을 알려줍니다.
참고: Steam 클라이언트의 게임 파일 무결성 확인 기능도 창작마당 아이템을 다운로드합니다.

게임은 새로 구독한 콘텐츠가 다운로드 및 설치되기 전에 시작되므로 나머지 소비 메서드는 설치 과정의 모니터링 및 관리를 지원하기 위한 것입니다. 설치 상태를 실시간으로 확인하기 위해 게임 내 아이템을 구독하는 데도 이용할 수 있습니다.

창작마당 아이템의 상태

창작마당 아이템의 다운로드 진행 상황

창작마당 아이템 다운로드에 우선순위를 부여하거나 우선순위를 높입니다.

  • ISteamUGC::DownloadItem
    • 기존에 진행하던 다운로드를 일시 정지하고 이 아이템의 다운로드를 즉시 시작하려면 bHighPrioritytrue로 설정하세요.
    • 반환값이 true일 경우, 등록 후 ISteamUGC::GetItemInstallInfo를 호출하거나 디스크에 있는 창작마당 아이템에 액세스하기 전에 ISteamUGC::DownloadItemResult_t 콜백을 기다리세요.
    • 사용자가 구독 중인 아이템이 없는 경우(예: 익명으로 게임 서버에 로그인) 창작마당 아이템을 다운로드하여 임시로 캐시합니다.
    • 만약 창작마당 아이템에 k_EItemStateNeedsUpdateISteamUGC::EItemState가 있다면 ISteamUGC::DownloadItem을 호출하여 업데이트를 시작할 수 있습니다. ISteamUGC::DownloadItemResult_t 콜백을 호출하기 전에는 창작마당 아이템에 접근하지 마세요.
    • 이 메서드는 ISteamUGC로 생성한 창작마당 아이템에만 사용 가능합니다. 레거시 ISteamRemoteStorage 창작마당 아이템에는 사용할 수 없습니다.
    • ISteamUGC::DownloadItemResult_t 콜백 구조에는 창작마당 아이템과 연관된 애플리케이션 ID(m_unAppID)가 포함되어 있습니다. 실행 중인 애플리케이션과 관계없이 모든 아이템 다운로드에 핸들러가 호출되므로, 실행 중인 애플리케이션 ID와 비교해야 합니다.

창작마당 아이템의 로컬 사본 관련 정보 불러오기

창작마당 아이템이 설치되거나 업데이트될 때 알림

콘텐츠 쿼리

ISteamUGC 인터페이스는 Steam 안의 다양한 UGC(예: 창작마당 아이템, 스크린샷, 동영상 및 기타)를 열거하는 유동적인 수단을 제공합니다.

ISteamUGCFlows-QueryingContent-web2.png

  1. SteamUGCQueryCompleted_t의 호출 결과 핸들러를 등록합니다.
  2. 쿼리를 생성하는 방법은 사용자와 연관된 콘텐츠로 쿼리하거나, 모든 콘텐츠를 쿼리하거나, ID를 보유한 콘텐츠에 관한 세부 정보를 가져오는 등 상황에 따라 여러 가지 메서드가 있습니다.
  3. 옵션 설정 메서드를 호출하여 쿼리를 적절히 사용자 설정하세요.
    • 사용자 UGC에 대해 쿼리하는 경우
    • 모든 UGC에 대해 쿼리하는 경우
      • ISteamUGC::SetMatchAnyTag - 창작마당 아이템에 하나 이상의 일치하는 태그가 있을 때 반환할지 혹은 모든 태그가 보류 중인 UGC 쿼리와 매치해야 할지를 설정합니다.
      • ISteamUGC::SetSearchText - 보류 중인 UGC 쿼리의 제목 또는 설명과 일치해야 하는 아이템에 스트링을 설정합니다.
      • ISteamUGC::SetRankedByTrendDays - 결과의 순서를 아이템의 순위로 할지 혹은 UGC 쿼리에서 보류된 시간으로 할지를 설정합니다.
    • 모든 종류의 UGC에 대해 쿼리할 때
      • ISteamUGC::AddRequiredTag - 보류 중인 UGC 쿼리에 필요한 태그를 추가합니다. 이렇게 하면 특정 태그가 있는 UGC만 반환됩니다.
      • ISteamUGC::AddExcludedTag - 보류 중인 UGC 쿼리에 제외할 태그를 추가합니다. 이렇게 하면 특정 태그가 없는 UGC만 반환됩니다.
      • ISteamUGC::AddRequiredKeyValueTag - 보류 중인 UGC 쿼리에 필요한 키값 태그를 추가합니다. 이렇게 하면 키 = [param]pKey[/param]이고 값 = [param]pValue[/param]인 창작마당 아이템만 반환됩니다.
      • ISteamUGC::SetReturnOnlyIDs - 보류 중인 UGC 쿼리에 ID만 반환할지 또는 모든 세부 정보를 반환할지를 설정합니다. 모든 정보가 필요하지는 않을 때 유용합니다(예: 사용자가 즐겨찾기 목록에 담은 아이템의 ID만 가져오고 싶을 때).
      • ISteamUGC::SetReturnKeyValueTags - 보류 중인 UGC 쿼리에 아이템의 키값 태그를 반환할지를 설정합니다.
      • ISteamUGC::SetReturnLongDescription - 보류 중인 UGC 쿼리에 아이템의 전체 설명을 반환할지를 설정합니다.
      • ISteamUGC::SetReturnMetadata - 보류 중인 UGC 쿼리에 아이템의 개발자 지정 메타데이터를 반환할지를 설정합니다.
      • ISteamUGC::SetReturnChildren - 보류 중인 UGC 쿼리에 아이템의 하위 아이템 ID를 반환할지를 설정합니다.
      • ISteamUGC::SetReturnAdditionalPreviews - 보류 중인 UGC 쿼리에 아이템에 첨부된 모든 추가 이미지/동영상을 반환할지를 설정합니다.
      • ISteamUGC::SetReturnTotalOnly - 보류 중인 UGC 쿼리에 일치하는 아이템의 전체 수만 반환할지를 설정합니다. -- ISteamUGC::SteamUGCQueryCompleted_t가 호출되면 실제 아이템이 반환되지 않습니다.
      • ISteamUGC::SetLanguage - 보류 중인 UGC 쿼리로 반환될 아이템의 제목 및 설명에 사용할 언어를 설정합니다.
      • ISteamUGC::SetAllowCachedResponse - 보류 중인 UGC 쿼리에 특정 기간이 지난 캐시의 결과를 강제 반환할지를 설정합니다.
  4. ISteamUGC::SendQueryUGCRequest를 사용하여 Steam에 쿼리를 전송하면 1단계에서 등록한 ISteamUGC::SteamUGCQueryCompleted_t 호출 결과 핸들러가 호출됩니다.
  5. ISteamUGC::SteamUGCQueryCompleted_t 호출 결과 핸들러에서 ISteamUGC::GetQueryUGCResult를 호출하여, 반환된 각 아이템의 세부 정보를 가져옵니다.

  6. 이 기능을 호출하여 각 아이템의 추가 정보를 가져올 수 있습니다(일부 데이터는 기본값으로 반환되지 않으므로 적절히 쿼리를 구성할 필요가 있음).
  7. ISteamUGC::ReleaseQueryUGCRequest를 호출하여 쿼리 또는 결과를 수신하기 위해 할당된 메모리를 모두 삭제하세요.

결과 페이징

각 쿼리마다 최대 50개의 결과가 반환됩니다. 더 많은 결과를 페이징하려면 unPage 매개변수(1에서 시작)가 증가하는 쿼리를 생성하세요.

플레이타임 트래킹

창작마당 아이템의 플레이 시간을 트래킹하려면 트래킹하려는 아이템의 ID와 함께 ISteamUGC::StartPlaytimeTracking을 호출하면 됩니다. 플레이에서 아이템이 제거되면 트래킹을 중지할 아이템의 ID와 함께 ISteamUGC::StopPlaytimeTracking을 호출하거나 ISteamUGC::StopPlaytimeTrackingForAllItems를 호출하여 모든 아이템의 플레이타임 트래킹 중지할 수 있습니다.
앱이 종료되면 플레이타임 트래킹이 자동으로 중지됩니다.

ISteamUGC::CreateQueryAllUGCRequest 쿼리의 다양한 플레이타임 트래킹을 통해 아이템을 정리할 수 있습니다. 다음은 사용 가능한 플레이타임 기반의 쿼리입니다.

창작마당 아이템 콘텐츠 삭제

ISteamUGC::DeleteItem을 호출하여 창작마당 아이템을 삭제할 수 있습니다. 사용자에게 확인 안내가 없으며 되돌릴 수 없으니 주의하시기 바랍니다.

Steamworks 예시 – SpaceWar 통합

Steamworks SDK와 함께 실행되는 Steamworks API Example Application (SpaceWar)ISteamUGC API의 하위 집합을 보여줍니다.
  • CSpaceWarClient::LoadWorkshopItem은 창작마당 아이템이 디스크에 다운로드 및 설치되었는지를 확인하고 ISteamRemoteStorage::PublishedFileId_t로 창작마당 아이템에 대한 정보를 요청하는 작업을 시연합니다.
  • CSpaceWarClient::LoadWorkshopItems는 SpaceWar 애플리케이션의 현재 사용자들이 구독 중인 창작마당 아이템 목록을 가져오는 것을 시연합니다.
  • CSpaceWarClient::OnWorkshopItemInstalledISteamUGC::ItemInstalled_t를 위한 콜백 핸들러를 시연합니다.

창작마당 사용 약관

창작마당 아이템은 기여자가 Steam 창작마당 사용권 약관에 동의할 때까지 기본적으로 숨겨져 있습니다. 기여자가 아이템을 간편하게 게시하도록 지원하려면 다음의 절차를 따르세요.
  1. 창작마당의 아이템 제출 버튼 옆에 다음 텍스트와 함께 링크를 포함하여 넣습니다. '아이템을 제출하면 창작마당 약관에 동의하게 됩니다.'
  2. 사용자가 아이템을 제출하면 steam://url/CommunityFilePage/<PublishedFileId_t>로 설정한 pchURLISteamFriends::ActivateGameOverlayToWebPage를 호출하여 <PublishedFileId_t&gt를 창작마당 아이템 ID로 대체합니다.
이렇게 하면 작성자가 창작마당 페이지로 이동하여 아이템을 확인하고 필요한 경우 추가로 구성할 수 있는 이점이 있으며 사용자가 Steam 창작마당 사용 약관을 편하게 읽고 수락할 수 있습니다.

웹 API

이러한 메서드와 더불어 유사한 기능을 제공하는 웹 API 인터페이스 또는 커뮤니티 기반의 필터링 API로 모든 공용 콘텐츠를 열거할 수 있습니다. 웹 API 목록에 있는 ISteamRemoteStorage 인터페이스에 대한 문서를 참조하시기 바랍니다.

전용 게임 서버

게임 서버로 아이템을 다운로드 및 설치할 수 있습니다.
  • 게임 서버가 창작마당 아이템을 요청하려면 PublishedFileId_t를 알고 있어야 하며 이는 게임 클라이언트를 통해 제공되거나 서버 운영자가 설정할 수 있습니다. 이후ISteamUGC::DownloadItem을 호출해 임시 창작마당 아이템을 가져옵니다.
  • 이후 ISteamUGC::GetItemInstallInfo를 호출해 창작마당 아이템을 찾아서 이용하기 위한 정보를 가져옵니다.
  • 이 API 메서드에 대한 자세한 내용은 상단의 아이템 설치 섹션을 참조하시기 바랍니다.

SteamCmd 통합

ISteamUGC API와 함께 steamcmd.exe 명령줄 도구를 이용하면 창작마당 아이템을 테스트용으로 생성 및 업데이트할 수 있습니다. 이 방법은 이 도구에서 사용자가 자신의 Steam 로그인 정보를 입력해야 하므로(권장하지 않음) 오직 테스트 목적으로만 사용해야 합니다.

Steamcmd.exe로 새 Steam 창작마당 아이템을 생성하려면 먼저 VDF 파일을 생성해야 합니다. VDF는 다음의 키를 포함한 일반 텍스트 파일입니다.
"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" }

참고:
  • 키는 다양한 ISteamUGC::SetItem[...] 메서드와 매핑됩니다. 자세한 내용은 상단의 문서를 참조하시기 바랍니다.
  • 나타난 값들은 예시일 뿐이며 적절하게 업데이트해서 적용해야 합니다.
  • 새 아이템을 생성하려면 appid를 설정하고 publishedfileid를 설정 해제하거나 0으로 설정해야 합니다.
  • 기존 아이템을 업데이트하려면 appidpublishedfileid를 모두 설정해야 합니다.
  • 키를 업데이트할 경우 나머지 키/값을 VDF에 포함해야 합니다.
일단 VDF가 생성되면 steamcmd.exe를 workshop_build_item <build config filename> 파일 매개변수와 함께 실행할 수 있습니다. 예시:
steamcmd.exe +login myLoginName myPassword +workshop_build_item workshop_green_hat.vdf +quit
명령이 성공하면 VDF의 publishedfileid값이 창작마당 아이템의 ID를 포함하도록 자동으로 업데이트됩니다. 이러한 방법으로 동일한 VDF에 steamcmd.exe로 순차 호출을 하게 되면 새 아이템 생성이 아닌 업데이트가 실행됩니다.

오류와 로깅

대부분의 ISteamUGC 메서드는 부울 값을 반환합니다. 특정 오류에 대한 추가 정보는 다음 여러 위치에서 검토할 수 있습니다.

자주 묻는 질문

질문: 다른 애플리케이션에서 내 게임의 창작마당에 콘텐츠를 게시할 수 있나요?

예. 다른 애플리케이션의 편집 또는 게시 도구를 기본 애플리케이션의 창작마당으로 구성하여 해당 편집 애플리케이션의 콘텐츠를 수락할 수 있습니다.

이를 구성하려면 창작마당 구성 섹션의 기본 애플리케이션으로 이동하여 페이지 맨 아래로 스크롤하세요. 다른 애플리케이션의 앱 ID를 '앱 게시 권한' 아래의 필드에 입력한 후 '추가'를 클릭하세요.

SteamWorks 설정이 게시되면 편집 애플리케이션에서 기본 애플리케이션의 창작마당에 콘텐츠를 게시할 수 있습니다.