Steamworks 문서
Steam 클라우드

Steam 클라우드 개요

Steam 클라우드는 게임을 위한 간편하고 투명한 원격 저장소 시스템을 제공합니다. 자동 클라우드 환경 설정에서 지정한 파일이나, 클라우드 API를 사용하여 디스크에 작성, 생성, 수정, 삭제한 파일은 게임 종료 후 자동으로 Steam 서버에 복제됩니다.

사용자가 다른 컴퓨터를 사용하면 게임이 실행되기 전에 해당 파일이 자동으로 새 컴퓨터에 다운로드됩니다. 다운로드가 완료되면 게임은 클라우드 API를 통해 파일을 읽거나 평소처럼 디스크에서 바로 읽어 파일에 접근할 수 있습니다. 이때 비디오 설정과 같은 시스템별 구성은 사용하지 않는 것이 좋습니다.

Steam 클라이언트는 사용자의 모든 컴퓨터에서 파일의 동기화를 유지하기 위한 작업을 수행합니다.

클라우드 동기화를 비활성화하려면 Steam 설정에 있는 클라우드에서 ‘동기화를 지원하는 애플리케이션에 대해 Steam 클라우드 동기화 사용’을 선택 해제하세요.

또한, 각 게임의 속성에서 게임별로 클라우드 동기화를 비활성화할 수 있습니다.

Spacewar_Cloud_Properties.png

최초 설정

Steam 클라우드를 설정하려면 Steamworks 앱 관리자 패널의 Steam 클라우드 설정 페이지에서 Byte quota per userNumber of files allowed per user 옵션을 설정해야 합니다.

이 할당량은 클라우드를 지원하는 게임에 사용자 및 게임별로 적용됩니다. 귀사의 게임 타이틀에 알맞은 값을 설정하는 것이 좋습니다.

참고: 업데이트된 설정을 공개하기 전에 먼저 페이지 맨 아래에 있는 저장 버튼을 누르는 것을 잊지 마세요. 공개가 완료되면 해당 게임을 소유한 사용자의 Steam 클라이언트에 클라우드 아이콘이 표시됩니다.

게임이 이미 일반에 출시된 경우에는 Enable cloud support for developers only로 표시된 확인란을 선택할 수 있습니다. 개발자 전용 모드가 활성화된 상태라면, 해당 타이틀의 ‘개발자 기본’ 라이선스를 가진 Steam 계정만 클라우드 아이콘을 보고 Steam 클라우드를 사용할 수 있게 됩니다. 이 방법으로 일반 사용자에게 영향을 주지 않고 Steam 클라우드 통합을 안전하게 테스트할 수 있습니다. 이 방법은 또한 미출시 제품에는 영향을 주지 않습니다. 게임을 소유한 사용자가 아무도 없으므로 해당 앱 ID의 클라우드 저장소를 보거나 접근할 수 없기 때문입니다.

Shared cloud APP ID 필드를 작성하면 두 개의 앱 ID로 클라우드 저장소를 공유할 수 있습니다. 이 방법은 보통 저장된 게임을 데모 버전과 정식 버전에서 공유할 때 쓰입니다. 이 기능을 비활성화하려면 값을 0으로 설정하세요.

Steam 클라우드 API 및 Steam 자동 클라우드

Steam에서 Steam 클라우드를 활용하는 방법은 두 가지가 있습니다. 이 두 가지 방법이 어떻게 다른지 살펴보고 귀사의 애플리케이션에 가장 알맞은 방법을 선택하세요.

첫 번째 방법은 Steam 클라우드 API입니다.
클라우드 API는 게임에 Steam 클라우드를 직접 통합할 수 있게 하는 일련의 기능을 제공합니다. 클라우드 API는 Steam 사용자의 개인별 파일을 상호 격리하며 Steam 클라우드에 대한 더욱 강력한 통제 기능을 제공합니다.

Steam 클라우드 API는 ISteamRemoteStorage API 인터페이스를 통해 노출되고, 사용 예시는 Steamworks API Example Application (SpaceWar) 프로젝트에서 확인할 수 있습니다.

두 번째 방법은 Steam 자동 클라우드입니다.
Steam 자동 클라우드는 Steam 클라우드 API를 쉽게 통합할 수 없는 레거시 게임을 위해 설계되었습니다. Steam 자동 클라우드는 빠르고 쉽게 시작할 수 있지만, Steam 클라우드 API보다 성능이나 유연성이 떨어집니다.

클라우드 API를 사용하면 더 깊이 있는 통합과 맞춤 설정이 가능하므로 가급적이면 클라우드 API를 사용하는 것이 좋습니다. 이를 통해 Steam 사용자가 Steam 클라우드에 기대하는 최고의 품질을 제공할 수 있습니다.

Steam 자동 클라우드

Steam 자동 클라우드는 Steam 클라우드 API 대신 사용되는 것으로, 앱이 Steam 클라우드를 사용하도록 하기 위해 코드를 작성하거나 게임을 변형할 필요 없이, 클라우드에 유지할 파일 그룹을 지정하기만 하면 됩니다. 그러면, 애플리케이션이 시작 및 종료될 때 Steam이 해당 파일 그룹을 자동으로 동기화합니다. 이때 비디오 품질과 같은 시스템별 구성은 사용하지 않는 것이 좋습니다.

설정

최초 설정 작업을 완료하면 Steam 클라우드 설정 페이지의 Steam 자동 클라우드 구성 섹션이 잠금 해제됩니다.

루트 경로는 Steam 클라우드에 유지할 파일 그룹을 가리킵니다. 각 루트 경로는 하나의 파일을 지정해도 되고, 주어진 하위 폴더에 속한 모든 파일과 같이 넓게 지정해도 됩니다. 각 파일 그룹의 동기화를 위한 새로운 경로를 지정하세요.

루트 경로는 5가지 부분으로 구성됩니다.
  1. 루트

    게임 내용이 저장되는 위치를 나타내는 경로 목록으로, 미리 정해져 있습니다.
    루트지원되는 OS대응 경로
    앱 설치 디렉터리모두[Steam Install]\SteamApps\common\[Game Folder]\
    SteamCloudDocuments모두플랫폼별로 다른 경로. Linux의 경우: ~/.SteamCloud/[username]/[Game Folder]/
    WinMyDocumentsWindows%USERPROFILE%\My Documents\
    WinAppDataLocalWindows%USERPROFILE%\AppData\Local\
    WinAppDataLocalLowWindows%USERPROFILE%\AppData\LocalLow\
    WinAppDataRoamingWindows%USERPROFILE%\AppData\Roaming\
    WinSavedGamesWindows%USERPROFILE%\Saved Games\
    MacHomemacOS~/
    MacAppSupportmacOS~/Library/Application Support/
    MacDocumentsmacOS~/Documents/
    LinuxHomeLinux~/
    LinuxXdgDataHomeLinux$XDG\_DATA\_HOME/
  2. 하위 디렉터리

    루트와 관련하여 클라우드화된 파일의 하위 디렉터리 경로. 하위 디렉터리가 없으면 `.`을 사용하세요.

    자동 클라우드 특수 경로 값
    자동 클라우드는 Subdirectory 경로에서 Steam 사용자의 고유 식별자 사용을 허용합니다. 이를 통해 각 사용자의 저장 파일을 컴퓨터에 개별적으로 보관할 수 있습니다. 게임에서 ISteamUser::GetSteamID를 사용하면 저장하거나 읽기 위해 현재 사용자의 SteamID 또는 AccountID를 가져올 수 있습니다.
    • {64BitSteamID} - Steam 경로에 이 변수를 사용해 사용자의 64비트 Steam ID를 삽입하세요. 64비트 Steam ID의 예: 76561198027391269
    • {Steam3AccountID} - Steam 경로에 이 변수를 사용해 사용자의 Steam 3 계정 ID를 삽입하세요. 계정 ID의 예: 67125541
    예: SavesDir/{64BitSteamID}
  3. 패턴

    일치를 위한 파일 마스크 패턴. * 기호를 와일드카드로 사용할 수 있습니다. 디렉터리에 있는 모든 파일을 원하는 경우, * 기호를 사용하면 됩니다.

    예: *.sav
  4. OS

    파일과 동기화할 OS를 설정합니다. 이 작업은 파일의 OS가 서로 다른 경우에만 필요하며, 이러한 작업이 필요 없는 편이 더 좋습니다.
  5. 반복

    일치하는 파일을 검색할 때 하위 디렉터리를 포함합니다. 이 방법은 하위 디렉터리의 이름이 Steam 사용자 이름이나 Steam ID가 아닌 불명확한 이름일 경우에 유용합니다. 하위 디렉터리가 Steam ID를 사용할 경우에는 하위 디렉터리 필드에 특수 경로를 사용할 것을 강력 추천합니다.

루트 재정의

애플리케이션이 여러 플랫폼을 지원하고 각 OS에 다른 디렉터리를 요구하는 경우에 필요합니다. 루트 재정의 기능을 사용하면 위에서 설정한 루트 경로를 재정의하도록 지정할 수 있습니다.

위에서 지정한 루트 경로는 다른 OS에서 다른 경로에 대응하는 것으로 재정의할 수 있습니다. 루트 재정의를 사용할 경우, 위의 루트 OS 드롭다운에서 [All OSes]를 지정해야 합니다.

루트 재정의는 5가지 부분으로 구성됩니다.
  1. 기본 루트

    기본 루트는 위에서 설정한 루트 중 하나에 해당합니다.
  2. OS

    재정의를 적용할 OS입니다.
  3. 새 루트

    지정된 OS에서 기본 루트가 매핑하는 새로운 위치입니다.
  4. 경로 추가 및 교체

    새 루트와 기본 하위 디렉터리 사이에 하위 디렉터리를 추가할 수 있게 해줍니다.
  5. 경로 교체

    활성화할 경우, ‘원래 하위 디렉터리를 경로 추가 및 교체’에서 지정한 경로로 완전히 교체합니다.

예: Unity 애플리케이션의 자동 클라우드 구성

다음은 OS별로 값이 다른 Application.persistentDataPath 속성 및 Unity와 함께 사용할 자동 클라우드 설치의 예시입니다. Windows 버전은 Unity에서 회사를 DefaultCompany로 설정하여 AutocloudSample이라는 프로젝트의 루트 경로로 구성했습니다. MacOS 및 Linux/SteamOS에서는 ‘경로 추가 및 교체’ 필드에 Application.persistentDataPath와 다른 경로가 설정되어 있고 ‘경로 교체’가 활성화되어 있습니다.

이 설정을 사용하면 자동 클라우드 파일이 미리 보기 예에 나타난 것처럼 세 개의 폴더에서 동기화됩니다.

Cloud_Unity_Auto-Cloud_Example.png

출시 전 테스트

이미 출시된 게임에 Steam 자동 클라우드를 추가하려는 경우 최초 설정에서 개발자 전용 모드를 활성화했다면, 기능을 테스트하기 위해 몇 가지 단계를 추가로 완료해야 합니다.
  1. 테스트하려는 앱의 Developer Comp 라이선스를 가진 계정으로 Steam에 로그인하세요.
  2. 브라우저에서 steam://open/console로 이동하여 Steam 콘솔을 여세요.
  3. 콘솔에 테스트하고자 하는 앱 ID를 testappcloudpaths <AppId>의 형식으로 입력하세요. 예: testappcloudpaths 480
  4. 콘솔에 set_spew_level 4 4를 입력하세요.
  5. Steam에서 앱을 실행하세요.
  6. 콘솔 활동을 확인하세요. 파일이 자동 클라우드 경로에 이미 존재하는 경우 해당 파일이 업로드되는 것을 확인할 수 있습니다. 그렇지 않은 경우, 앱에서 파일 몇 개를 저장한 후 콘솔을 닫아 동기화가 시작되도록 하세요.
  7. 다른 컴퓨터로 위 단계를 반복하여 Steam 자동 클라우드에서 파일을 다운로드하는 테스트를 진행하세요.
  8. 지원되는 모든 시스템에서 테스트해 보세요.
  9. 종료하려면 testcloudapppaths 0set_spew_level 0 0을 설정하세요. 콘솔 탭을 없애려면 Steam 클라이언트를 다시 시작하세요.

테스트를 마친 후에는 개발자 전용 모드를 비활성화하고 변경 사항을 공개하는 것을 잊지 마세요.

디버깅

먼저, 변경 사항을 항상 Steam 파트너 웹사이트에 공개하도록 하세요. 10분 정도 기다린 후 Steam 클라이언트를 다시 시작하면 공개된 변경 사항을 받아볼 수 있습니다.

Steam 클라우드와 관련하여 문제가 있는 경우, %Steam Install%\logs\cloud_log.txt에 있는 로그 파일을 확인해 보세요.

자세한 내용은 Steamworks API 디버깅 디버깅 문서를 참조하세요.