패치 도중 언리얼 엔진(UE) 은 모든 포스트 쿠킹을 기존에 릴리즈된 쿠킹 콘텐츠와 비교하고, 이를 사용하여 패치에 무엇이 포함되는지 결정합니다. 콘텐츠의 가장 작은 조각은 (.ulevel 또는 .uasset 과 같은) 단일 패키지이므로 패키지에서 무언가 변경되면 전체 패키지가 패치에 포함됩니다. 패치의 PAK (.pak ) 파일을 사용자에게 제공하는 메서드는 배포 플랫폼에 따라 다르지만 이 절차를 통해 업데이트된 콘텐츠가 포함된 더 작은 PAK 파일을 생성할 수 있습니다.
버전이 지정된 릴리즈를 사용하여 이전에 릴리즈했던 프로젝트에 패치 작업을 수행할 수 있습니다. 다음과 같은 사항을 유의해야 합니다.
-
릴리즈 시점에서 시리얼라이제이션 코드 경로를 고정합니다.
-
릴리즈된 쿠킹 콘텐츠를 유지합니다. UnrealPak 툴은 이를 사용하여 패치 패키지 파일에 어떤 콘텐츠가 포함되어야 하는지 결정합니다.
-
런타임에서 두 PAK 파일을 모두 마운트하고, 패치 파일에 더 높은 우선순위를 지정하여 그 안에 있는 콘텐츠가 먼저 로드되도록 합니다.
언리얼 엔진에서 생성한 프로젝트를 패치하기 위한 몇 가지 메서드가 있습니다. 여기에서 사용하는 메서드는 플랫폼과 무관 하므로 기술적으로 어느 플랫폼에서나 사용할 수 있습니다. 하지만 이 메서드의 경우 의도적으로 Windows 와 Xbox One 이라는 2개의 플랫폼만을 사용합니다. 다른 플랫폼에는 그에 따른 패치 방법이 있습니다. 개발을 계획 중인 플랫폼에 해당하는 섹션에서 플랫폼별 메서드에 관한 문서를 찾아볼 수 있습니다.
이 메서드는 모든 이전 파일을 유지하고 게임을 존재하는 새 파일에 가리키므로 많은 데이터 스토리지를 사용합니다. 플랫폼별 메서드가 더 적은 공간을 사용하는 경우가 많습니다.
프로젝트 런처를 사용하여 패치를 생성하는 방법
이 예시에서는 UE 프로젝트에 대한 패치 생성 관련 정보를 제공합니다.
패치 테스트를 위한 실행 프로파일 생성하기
프로젝트의 베이스 빌드가 있는 경우 프로젝트 런처(Project Launcher) 에서 패치에 대한 실행 프로파일(Launch Profile) 을 생성할 수 있습니다. 패치의 테스트 버전 생성을 위한 실행 프로파일 하나를 생성하고, 실제 패치 릴리즈를 위한 다른 실행 프로파일을 생성할 수 있습니다.
-
플랫폼(Platforms) > 프로젝트 런처(Project Launcher) 를 클릭하여 프로젝트 런처 를 엽니다.
-
+추가(+Add) 버튼을 사용하여 새 커스텀 실행 프로파일 을 생성합니다. 이 첫 번째 실행 프로파일은 패치의 테스트 버전만을 대상으로 합니다. 명확하게 구분할 수 있는 이름 과 설명 을 입력합니다.
-
프로젝트 런처에는 실행 프로파일에 대해 커스터마이징할 수 있는 몇 가지 세팅이 있습니다. 고급 표시(Show Advanced) 를 클릭하여 각 세팅을 커스터마이징하고 드롭다운 메뉴를 사용하여 고급 세팅(Advanced Settings) 을 설정할 수 있습니다. 또한 쿠킹(Cook), 패키지(Package) 또는 디플로이(Deploy) 섹션의 상단에 있는 드롭다운을 클릭할 수 있으며, 선택한 사항에 따라 사용 가능한 옵션이 변경될 수 있습니다.
실행 프로파일 섹션 이름 고급 세팅의 설명 프로젝트(Project) 사용할 특정 프로젝트를 찾아보거나 아무 프로젝트(Any Project) 를 사용하여 현재 프로젝트를 패치할 수 있습니다. 빌드(Build) 옵션은 DebugGame, Development 및 Shipping 입니다. 고급 세팅(Advanced Settings) 드롭다운을 클릭하여 언리얼 자동화 툴(Unreal Automation Tool, UAT)을 패치 프로세스의 일부로 빌드합니다. 쿠킹(Cook) 드롭다운을 클릭하여 Cook by the Book 또는 Cook on the Fly 를 선택합니다. 쿠킹 않음(Do Not Cook) 을 선택할 수도 있습니다. 고급 세팅(Advanced Settings) 드롭다운을 클릭하여 변경된 콘텐츠만 쿠킹(Only Cook Modified Content) 을 선택할 수 있습니다. Cook by the Book 을 선택하면 고급 세팅(Advanced Settings) 및 릴리즈/DLC/패치(Release/DLC/Patching) 에 대한 추가 옵션이 표시됩니다. 패키지(Package) 옵션은 Package and Store Locally, Package and Store in Repository 또는 Do Not Package 입니다. 아카이브(Archive) 빌드를 아카이브하고자 하는 경우 이 섹션의 체크 박스를 선택합니다. 디플로이(Deploy) 옵션은 디바이스에 복사(Copy to Device), 저장소 복사(Copy Repository), 파일 서버(File Server) 또는 디플로이 않음(Do Not Deploy) 입니다. 실행(Launch) 옵션은 기본 롤 사용(Using Default Role), 커스텀 롤 사용(Using Custom Roles) 및 실행 않음(Do Not Launch) 입니다.
실행 프로파일 커스터마이징하기
다음 단계를 따라 새 실행 프로파일을 커스터마이징합니다.
-
프로젝트(Project) 섹션에서 드롭다운을 클릭하여 프로젝트를 찾습니다.
-
빌드(Build) 섹션에서 드롭다운을 클릭하고 Shipping 을 선택합니다. 선택사항으로 빌드 머신에 대한 패치를 생성하기 때문에 언리얼 자동화 툴(UAT) 이 패치 프로세스의 일부로 필요한 경우 고급 세팅(Advanced Settings) 을 펼칩니다.
-
쿠킹(Cook) 섹션에서 드롭다운을 클릭하고 By the Book 을 선택합니다. 쿠킹된 플랫폼(Cooked Platforms), 쿠킹된 컬처(Cooked Cultures) 및 쿠킹된 맵(Cooked Maps) 에 대한 옵션이 제공됩니다. 프로젝트의 쿠킹 세팅을 확인합니다.
쿠킹 세팅은 이 패치에서 프로젝트의 어떤 콘텐츠가 쿠킹되는지 결정하고, 해당 콘텐츠는 이후 원본 패키지 파일과 비교됩니다.
-
화살표를 클릭하여 릴리즈/DLC/패치 세팅(Release/DLC/Patching Settings) 을 펼칩니다.
-
관련된 릴리즈 버전(Release Version This is Based On) 에 릴리즈 버전을 입력합니다. 그런 다음 패치 생성(Generate Patch) 체크 박스를 선택합니다.
-
화살표를 클릭하여 고급 세팅(Advanced Settings) 을 펼칩니다. 다음 체크 박스가 선택되고, 특정 프로젝트의 배포 메서드에 따라 필요한 체크 박스가 선택되어야 합니다.
-
콘텐츠 압축(Compress Content)
-
버전 없이 패키지 저장(Save Packages Without Versions)
-
모든 콘텐츠를 하나의 파일에 저장(UnrealPak)(Store All Content in a Single File (UnrealPak))
-
-
고급 세팅(Advanced Settings) 에서 쿠커 빌드 환경설정(Cooker Build Configuration) 드롭다운을 클릭하고 Shipping 을 선택합니다.
-
패키지(Package) 섹션에서 드롭다운을 클릭하고 로컬에 패키징 & 저장(Package and Store Locally) 을 선택합니다. 로컬 디렉터리는 기본적으로 입력됩니다. 변경하고자 하는 경우 탐색(Browse) 을 클릭하고 패키지를 저장할 디렉터리를 선택합니다.
-
디플로이(Deploy) 섹션에서 드롭다운을 클릭하고 디플로이 않음(Do Not Deploy) 을 선택합니다.
디플로이 않음(Do Not Deploy) 을 선택하여 패치를 테스트합니다. 패치를 테스트해보고 출시 버전을 빌드할 준비가 되면 이 섹션의 단계를 따르고 다른 디플로이 메서드를 선택합니다.
패치의 테스트 버전 실행하기
-
오른쪽 상단에 있는 뒤로(Back) 버튼을 사용하여 메인 프로파일 창으로 돌아갑니다.
-
패치 프로파일 옆에 있는 실행 아이콘을 클릭합니다.
-
프로젝트 런처가 빌드, 쿠킹 및 패키징 프로세스를 거칩니다. 프로젝트의 복잡도에 따라 시간이 약간 소요될 수 있습니다.
-
작업이 완료되면 창을 닫거나 완료(Done) 를 클릭합니다.
패치 출시를 위한 실행 프로파일 생성 및 커스터마이징하기
-
더하기 (+) 버튼을 사용하여 새 커스텀 실행 프로파일을 생성합니다. 이 프로파일은 패치 출시를 위한 것이므로 이를 명확히 알 수 있는 이름 과 설명 을 입력합니다.
-
실행 프로파일 커스터마이징하기 섹션의 1~11단계를 따릅니다. 필요한 경우 테스트 버전이 출시하려는 것과 크게 다른 경우 커스텀 세팅을 변경합니다.
-
디플로이(Deploy) 섹션에서 드롭다운을 클릭하고 사용하고자 하는 배포 옵션을 선택합니다.
-
출시 실행 프로파일 생성을 완료하면 패치의 테스트 버전 실행하기 섹션의 단계를 따릅니다.
명령줄을 사용하여 패치를 생성하는 방법
프로젝트 런처는 플랫폼과 무관하게 프로젝트의 패치를 생성하는 데 사용하는 유일한 옵션이 아닙니다. UAT를 사용한 명령줄 인스트럭션을 사용하여 패치를 생성할 수도 있습니다.
먼저 베이스 빌드를 생성해야 합니다. 이 빌드가 출시 빌드일 것입니다. 이 빌드를 생성할 때 -Createreleaseversion=<releasenumber> 명령줄 파라미터를 사용해야 합니다. 이를 통해 프로젝트의 버전 1.0이 생성됩니다.
예시:
BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -createreleaseversion=1.0
패치 생성에 필요한 <ProjectPath>\Releases\1.0\ 디렉터리에 빌드가 저장됩니다.
숫자가 지정된 베이스 빌드가 있으면 이전 빌드를 기준으로 패치를 생성할 수 있습니다. 이 패치를 생성할 때 -basedonreleaseversion=<releasenumber> 명령줄 파라미터를 사용해야 합니다.
예시:
BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -generatepatch -basedonreleaseversion=1.0
패치 설치하기
플랫폼 무관 패치 프로세스에서는 다음 디렉터리에 PAK 파일을 생성합니다. [ProjectName]\Saved\StagedBuilds[PlatformName][ProjectName]\Content\Paks . 프로젝트가 생성되는 플랫폼에 따라 PAK 파일에는 사용자에게 배포되어야 하는 새로운 콘텐츠 또는 변경된 콘텐츠가 포함됩니다. 예를 들어 Windows에서 이 PAK파일을 원본 콘텐츠 PAK 파일 옆에 사용자의 [ProjectName]\Releases[VersionNumber][PlatformName] 폴더에 복사하는 인스톨러를 생성합니다.
패치 PAK 파일은 디바이스에 위치할 때 FPakPlatformFile::GetPakFolders 의 PAK 검색 디렉터리에 자동으로 마운트됩니다. 패치에 우선순위를 지정하기 위해 마운트 시스템은 파일 이름 끝에 _p 를 사용하여 다른 PAK 파일에 대한 우선순위를 얻습니다. 이름을 변경할 수 있지만 파일 이름 끝에 _p.pak 를 포함해야 합니다.
동일한 릴리즈 버전에서 2개의 패치를 빌드하는 경우 두 배치는 모두 전체 패치이기에 두 번째 패치를 설치하는 동안 첫 번째 패치를 제거해야 합니다.