무관련자

문서 및 도움말
Steamworks 문서
Steam 클라우드

Steam 클라우드 개요

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

사용자가 다른 컴퓨터를 사용하면 게임이 실행되기 전에 해당 파일이 자동으로 새 컴퓨터에 다운로드됩니다. 다운로드가 끝나면 게임은 클라우드 API를 통해 파일을 읽거나 평소처럼 디스크에서 직접 파일을 읽어 파일에 접근할 수 있습니다. 비디오 설정과 같은 기기 전용 구성은 피하세요.

Steam 클라이언트는 해당 파일이 사용자가 사용하는 모든 컴퓨터에서 동기화가 유지될 수 있도록 하는 작업을 합니다.

사용자가 모든 애플리케이션에서 클라우드 동기화를 비활성화하려면 Steam 설정의 클라우드에서 '지원하는 애플리케이션에 대해 Steam 클라우드 동기화 사용'을 선택 해제하면 됩니다.

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

Spacewar_Cloud_Properties.png

초기화 설정

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

이 할당량은 클라우드가 활성화된 게임에 사용자 및 게임별로 적용됩니다. 귀사의 게임 타이틀에 알맞게 값을 설정하는 것을 권장합니다.

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

귀사의 게임이 이미 일반에 출시된 상태인 경우에는 Enable cloud support for developers only 표시가 된 체크박스를 선택할 수 있습니다. 개발자 전용 모드가 활성화된 상태라면 'Developer Comp' 라이선스를 가진 해당 타이틀 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를 사용하는 것을 보통 추천합니다. 또한, 클라우드 API는 Steam 사용자가 Steam 클라우드에서 기대하는 최상의 품질 경험을 제공합니다.

Steam 자동 클라우드

Steam 자동 클라우드는 Steam 클라우드 API 대신 사용되는 것으로 코드를 작성하거나 게임을 변형하지 않고 앱이 Steam 클라우드를 사용할 수 있도록 해줍니다. 클라우드에 어떤 파일 그룹을 지속형으로 할 것인지 지정하기만 하면 됩니다. 해당 애플리케이션이 실행되고 종료될 때 Steam이 해당 파일 그룹을 자동으로 동기화합니다. 비디오 품질과 같은 기기 전용 구성은 피하세요.

설치

초기화 설정을 마친 후 Steam 자동 클라우드 구성 섹션이 Steam 클라우드 설정 페이지에서 잠금해제됩니다.

루트 경로는 Steam 클라우드에 지속형으로 할 파일 그룹을 설명합니다. 각 루트 경로는 하나의 파일을 지정해도 되고 주어진 하위 폴더에 속한 모든 파일과 같이 넓게 지정해도 됩니다. 동기화할 때 각 파일 그룹에 대한 새로운 경로를 사용하세요.

루트 경로는 다섯 부분으로 구성됩니다.
  1. 루트

    이것은 게임 내용이 보통 저장되는 위치를 나타내는 경로 목록이며 미리 정해져 있습니다.
    루트지원되는 운영체제해당 경로
    앱 설치 디렉터리모두[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. 하위 디렉터리

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

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

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

    예: *.sav
  4. 운영체제

    이러한 파일이 서로 동기화될 수 있도록 운영체제를 설정하세요. 해당 파일이 운영체제별로 다를 때만 이 작업이 필요합니다. 이 작업이 필요없기를 바랍니다.
  5. 모든 클래스

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

루트 재정의

귀사의 애플리케이션이 플랫폼 간 사용 가능하고 각 운영체제에서 다른 디렉터리가 요구되는 경우 필요합니다. 루트 재정의 기능을 사용해 위에서 설정한 루트 경로를 재정의하도록 지정할 수 있습니다.

위에서 지정된 루트 경로는 다른 운영체제에서 다른 경로에 일치시키기 위해 재정의될 수 있습니다. 루트 재정의를 사용할 경우, 위의 루트 운영체제 드롭다운에서 [All OSes]를 지정해야 합니다.

루트 재정의는 다섯 부분으로 구성됩니다.
  1. 원래 루트

    원래 루트는 위에서 설정한 루트 중 하나와 일치합니다.
  2. 운영체제

    재정의를 적용하기 위한 운영 체제입니다.
  3. 새 루트

    지정된 운영체제에서 원래 루트가 맵핑하는 새로운 위치입니다.
  4. 경로 추가 또는 바꾸기

    새 루트와 원래 하위 디렉터리에 삽입되는 하위 디렉터리를 추가할 수 있는 옵션을 허용합니다.
  5. 경로 바꾸기

    활성화할 경우, '경로 추가 또는 바꾸기'에서 지정된 경로가 원래 하위 디렉터리를 완전히 대체합니다.

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

다음은 운영체제별로 값이 다른 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 클라우드와 관련해 문제가 있는 경우 the log file located at %Steam Install%\\logs\\cloud_log.txt에 위치한 로그 파일을 확인해 보세요.

자세한 정보는 Steamworks API 디버깅 문서를 참고해 주세요.