ChunkDownloader에 대한 매니페스트 및 에셋 호스팅

로컬 호스트 웹사이트를 구성합니다.

Choose your operating system:

Windows

macOS

Linux

필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

언리얼 엔진ChunkDownloader 패치 솔루션의 경우 패키징 파일을 웹 서버로 배포하고 매니페스트 파일 을 빌드해야 합니다. 매니페스트 파일이란 사용자가 다운로드해야 하는 모든 파일의 목록과 각각의 예상 파일 크기가 포함된 텍스트 파일입니다.

패치 프로세스가 시작되면 ChunkDownloader가 매니페스트 파일을 가장 먼저 사용자의 디바이스에 다운로드합니다. ChunkDownloader는 매니페스트 파일의 정보를 사용하여 각 패키징 파일을 하나씩 요청 및 다운로드합니다. 예상 파일 크기를 통해 시스템에서 각 파일의 진행 상황을 인식할 수 있습니다.

1. 필수 구성

이 가이드에서는 ChunkDownloader 플러그인 구성하기에셋 청킹 준비하기의 프로젝트를 사용합니다.

레퍼런스 가이드에 설명된 대로 다음 단계를 따라야 합니다.

  1. 기본 템플릿(Blank template) 을 기반으로 하는 C++ 프로젝트 를 생성합니다. 이 프로젝트의 이름을 PatchingDemo 로 설정합니다.

  2. 플러그인(Plugins) 메뉴에서 ChunkDownloader 플러그인을 활성화합니다.

  3. 프로젝트 세팅(Project Settings) > 프로젝트(Project) > 패키징(Packaging) 에서 Pak 파일 사용(Use Pak File)청크 생성(Generate Chunks) 을 활성화합니다.

  4. Visual Studio 에서 프로젝트의 [프로젝트 이름]Build.cs 파일을 편집합니다.

  5. Visual Studio 프로젝트 파일을 생성합니다.

  6. Visual Studio에서 프로젝트를 빌드합니다.

  7. 이 프로젝트에 ParagonBoris, Crunch, Khaimera 에셋을 추가합니다.

  8. 추가된 에셋마다 프라이머리 에셋 라벨 을 기준으로 데이터 에셋 을 조정합니다.

2. 매니페스트 파일 빌드하기

다음 단계를 따라 매니페스트 파일을 빌드합니다.

  1. 프로젝트의 베이스 디렉터리 내에 PatchingDemoKey 라는 폴더를 생성합니다. 이 예시에서 이 폴더의 경로는 PatchingDemo/PatchingDemoKey 입니다.

  2. BuildManifest-Windows.txt 라는 새 파일을 생성합니다.

    ManifestFileWindows.png

  3. 텍스트 에디터에서 이 파일을 엽니다. $NUM_ENTRIES 필드가 포함된 첫 번째 줄을 추가하고, 추적하는 패키징 파일의 수와 동일하게 값을 설정합니다. 이 예시에서는 9 와 동일합니다.

    BuildManifest-Windows.txt

    $NUM_ENTRIES = 9
  4. $BUILD_ID 필드가 포함된 새 줄을 추가하고 PatchingDemoKey 로 값을 설정합니다. 이 값은 매니페스트 파일을 배치한 폴더 이름과 일치해야 합니다.

    BuildManifest-Windows.txt

    $BUILD_ID = PatchingDemoKey
  5. 모든 다음 줄은 다운로드해야 하는 패키징 파일에 관한 정보가 있어야 합니다. 각 줄은 각 패키징 파일을 설명하며, 다음과 같은 정보가 포함되어 있습니다.

    • 파일 이름

    • 파일 크기(바이트). 해당 정보를 찾으려면 패키징 파일을 우클릭하고 프로퍼티(Properties) 를 확인합니다.

      pakproperties.png

      디스크상의 크기 가 아닌 파일 크기 를 사용해야 합니다.

    • 버전 임의의 스트링에 설정할 수 있습니다.

    • 인덱스 프라이머리 에셋 라벨에 사용하는 청크 인덱스 값과 일치해야 합니다.

    • 매니페스트 파일이 배치되는 위치에 대해 상대적인 파일 경로

    각 필드는 동일한 줄에 있고 탭으로 구분되어야 합니다. 그렇지 않은 경우 올바르게 구문 분석되지 않습니다. 예를 들어 pakchunk1001에 대한 줄은 다음과 같습니다.

    BuildManifest-Windows.txt

    pakchunk1001-Windows.ucas   462081824   ver01   1001    /Windows/pakchunk1001-Windows.ucas
  6. /Windows/PatchingDemo/Content/Paks/ 에서 PatchingDemoKey 폴더로 패키징 파일을 복사하고 매니페스트 파일은 Windows 라는 하위 폴더 내에 함께 복사합니다.

    PatchingDemoKeyFolder.png

프로젝트를 패키징하거나 사용자에게 제공할 파일을 변경하고자 할 때마다 이 프로세스를 실시해야 합니다. 예시에서 최종 매니페스트 파일은 다음과 같습니다.

BuildManifest-Windows.txt

$NUM_ENTRIES = 9
$BUILD_ID = PatchingDemoKey
pakchunk1001-Windows.ucas   462081824   ver01   1001    /Windows/pakchunk1001-Windows.ucas
pakchunk1002-Windows.ucas   928512432   ver01   1002    /Windows/pakchunk1002-Windows.ucas
pakchunk1003-Windows.ucas   944181856   ver01   1003    /Windows/pakchunk1003-Windows.ucas
pakchunk1001-Windows.utoc   426692  ver01   1001    /Windows/pakchunk1001-Windows.utoc
pakchunk1002-Windows.utoc   606278  ver01   1002    /Windows/pakchunk1002-Windows.utoc
pakchunk1003-Windows.utoc   581683  ver01   1003    /Windows/pakchunk1003-Windows.utoc
pakchunk1001-Windows.pak    339 ver01   1001    /Windows/pakchunk1001-Windows.pak
pakchunk1002-Windows.pak    339 ver01   1002    /Windows/pakchunk1002-Windows.pak
pakchunk1003-Windows.pak    339 ver01   1003    /Windows/pakchunk1003-Windows.pak

청크 인덱스가 0 인 파일도 [빌드 폴더]/Windows/PatchingDemo/Content/Paks 에 위치합니다. 이 파일에 대한 정보를 매니페스트 파일에 추가하고 PatchingDemoKey 로 복사할 필요는 없습니다.

3. 로컬 테스트 서버에 파일 호스팅

파일을 패키징했으므로 이제 게임에서 다운로드할 수 있도록 서버에 호스팅하고 ChunkDownloader에 서버의 위치를 알려야 합니다. 시연을 위해 이 예시에서는 간단한 로컬 웹 사이트 구성 방법을 보여드리겠습니다.

  1. Windows 탐색기에서 시작 메뉴(Start Menu) 를 열고, Windows 기능 켜기/끄기(Turn Windows Features on or off) 를 검색하여 엽니다.

    StartMenuWindowsFeatures.png

  2. Windows 기능(Windows Features) 메뉴에서 인터넷 정보 서비스(Internet Information Services) 를 활성화하고 확인(OK) 을 클릭합니다.

    WindowsInternetInformationServices.png

  3. 인터넷 정보 서비스 관리자(IIS Manager) 를 열고 디렉터리 검색(Directory Browsing) 을 활성화합니다.

    WindowsDirectoryBrowsing.png

  4. 창 좌측의 연결(Connections) 메뉴에서 PC-[사용자] 를 클릭합니다.

    ConnectionsDefaultWebSite.png

  5. PC-[사용자] 메뉴에서 MIME 형식(MIME Types) 을 더블클릭합니다.

    IISMimeTypes.png

  6. MIME 형식(MIME Types) 메뉴에서 추가(Add) 를 클릭합니다.

    AddMimeType.png

  7. MIME 형식 추가(Add MIME Type) 창에서 파일 이름 확장명(File Name extension).pak 로 설정하고, MIME 형식(MIME type)application/octet-stream 을 입력합니다. .ucas.utoc 에도 동일한 작업을 수행합니다.

    AddMimeType2.png

    이렇게 하면 IIS에서 요청 시 파일을 간단하게 다운로드합니다.

    AddMimeType3.png

  8. Default Web Site 폴더로 이동합니다. 기본적으로 이 폴더의 경로는 C:\inetpub\wwwroot 입니다. PatchingDemoCDN 이라는 폴더를 생성합니다.

    DefaultWebSiteFolder.png

  9. PatchingDemoKey 폴더를 PatchingDemoCDN 에 복사합니다.

    CopyPatchingDemoKey.png

  10. 프로젝트의 DefaultGame.ini 파일을 열고 다음 정보를 추가하여 CDN 베이스 URL 을 정의합니다.

    DefaultGame.ini

    [/Script/Plugins.ChunkDownloader PatchingDemoLive]
    +CdnBaseUrls=127.0.0.1/PatchingDemoCDN

    이 URL은 ChunkDownloader로 파일이 있는 웹 사이트를 가리킵니다. PatchingDemoLive 한정자를 통해 타깃 플랫폼에 따라 여러 CDN 배포 구성을 사용할 수 있습니다.

이 예시에서 사용된 URL은 이전 단계에서 설정한 로컬 웹 사이트만을 가리킵니다. 로컬 영역 네트워크 또는 원격 CDN으로 서버에 연결하려는 경우 추가 환경설정 및 보안이 필요합니다.

최종 결과

에셋을 패키징 파일로 나누고 로컬 웹 사이트에 스테이징했으므로 이제 언리얼 엔진의 패치 솔루션을 사용하여 액세스할 수 있습니다.