
패치 도중 엔진은 모든 포스트 쿠킹을 기존에 릴리즈된 쿠킹 콘텐츠와 비교하고, 이를 사용하여 패치에 무엇이 포함되는지 결정합니다. 콘텐츠의 가장 작은 조각은 (.ulevel 또는 .uasset과 같은) 단일 패키지이므로 패키지에서 무언가 변경되면 전체 패키지가 패치에 포함됩니다. 패치의 PAK(.pak) 파일을 사용자에게 제공하는 메서드는 배포 플랫폼에 따라 다르지만 이 절차를 통해 업데이트된 콘텐츠가 포함된 더 작은 PAK 파일을 생성할 수 있습니다.
버전이 지정된 릴리즈를 사용하여 이전에 릴리즈했던 프로젝트에 패치 작업을 수행할 수 있습니다. 다음과 같은 사항을 유의해야 합니다.
-
릴리즈 시점에서 시리얼라이제이션 코드 경로를 고정합니다.
-
릴리즈된 쿠킹 콘텐츠를 유지합니다. UnrealPak 툴은 이를 사용하여 패치 패키지 파일에 어떤 콘텐츠가 포함되어야 하는지 결정합니다.
-
런타임에서 두 PAK 파일을 모두 마운트하고, 패치 파일에 더 높은 우선순위를 지정하여 그 안에 있는 콘텐츠가 먼저 로드되도록 합니다.
언리얼 엔진 4(UE4)에서 생성한 프로젝트를 패치하기 위한 몇 가지 메서드가 있습니다. 여기에서 사용하는 메서드는 플랫폼과 무관하므로 기술적으로 어느 플랫폼에서나 사용할 수 있습니다. 하지만 이 메서드의 경우 의도적으로 Windows와 Xbox One이라는 2개의 플랫폼만을 사용합니다. 다른 플랫폼에는 그에 따른 패치 방법이 있습니다. 개발을 계획 중인 플랫폼에 해당하는 섹션에서 플랫폼별 메서드에 관한 문서를 찾아볼 수 있습니다.
이 메서드는 모든 이전 파일을 유지하고 게임을 존재하는 새 파일에 가리키므로 많은 데이터 스토리지를 사용합니다. 플랫폼별 메서드가 더 적은 공간을 사용하는 경우가 많습니다.
프로젝트 런처를 사용하여 패치를 생성하는 방법
이 예시에서는 샘플 Shooter Game의 패치를 생성합니다. 이 패치는 무기의 기능과 탄창 크기를 변경합니다. 이 예시를 따라하고 학습용으로 사용하고자 하는 경우, 실제 릴리즈 빌드를 사용하는 대신 다음을 수행합니다.
-
샘플 Shooter Game 을 다운로드합니다. 에픽게임즈 런처 의 학습(Learn) 탭으로 이동하고 게임(Games) 섹션으로 스크롤을 내립니다. Shooter Game 아이콘을 클릭하고 지침에 따라 다운로드합니다.
-
프로젝트 패키징 페이지의 지침을 따르고, 다운로드한 Shooter Game 프로젝트를 사용합니다. 이를 통해 샘플 게임의 출시 릴리즈 빌드를 얻을 수 있습니다.
예시를 변경하려면 다음 단계를 따릅니다.
-
툴바에서 블루프린트 아이콘을 클릭하고 블루프린트 클래스 열기(Open Blueprint Class) 를 선택한 다음 검색 필드에 WeapGun 의 처음 몇 글자를 입력합니다. WeapGun이 목록에 표시되면 클릭하여 클래스를 엽니다.
-
환경설정(Config) 섹션을 찾아 펼칩니다. 다음 값을 변경합니다.
파라미터 | 초기 값 | 변경된 값 |
---|---|---|
Max Ammo | 250 | 50 |
Ammo Per Clip | 500 | 100 |
- 저장(Save) 버튼을 클릭하고 WeapGun 클래스를 닫습니다.
패치 테스트를 위한 실행 프로파일 생성하기
베이스 빌드가 있으므로 프로젝트 런처에서 패치의 실행 프로파일을 생성합니다. 패치의 테스트 버전 생성을 위한 실행 프로파일 하나를 생성하고, 실제 패치 릴리즈를 위한 다른 실행 프로파일을 생성할 수 있습니다.
-
창(Windows) > 프로젝트 런처(Project Launcher) 를 클릭하여 프로젝트 런처 를 엽니다.
-
더하기 (+) 버튼을 사용하여 새 커스텀 실행 프로파일 을 생성합니다. 이 첫 번째 실행 프로파일은 패치의 테스트 버전만을 대상으로 합니다. 명확하게 구분할 수 있는 이름 과 설명 을 입력합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
- 프로젝트 런처에는 실행 프로파일에 대해 커스터마이징할 수 있는 몇 가지 세팅이 있습니다. 고급 세팅(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 을 선택합니다. 선택 사항으로 빌드 머신에 대한 패치를 생성하기 때문에 언리얼 자동화 툴이 패치 프로세스의 일부로 필요한 경우 고급 세팅(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개의 패치를 빌드하는 경우 두 배치는 모두 전체 패치이기에 두 번째 패치를 설치하는 동안 첫 번째 패치를 제거해야 합니다.