본문 바로가기
개인 성장 일지/언리얼 엔진

언리얼 엔진 프로젝트 패키징

by 류 진 2024. 8. 9.
728x90

프로젝트 패키징이란?

언리얼 엔진에서의 프로젝트 패키징은 게임 개발 과정에서 완성된 게임을 배포하기 위해 필요한 중요한 단계다.

 

패키징은 개발이 완료된 게임을 최종적으로 사용자에게 배포할 수 있는 형태로 변환하는 과정이다.

 

이 과정에서 게임의 모든 자산과 코드가 하나의 실행 파일로 묶인다.

 

또한 패키징을 통해 모든 코드와 콘텐츠가 최신인지, 타깃 플랫폼에서 실행하기에 적합한 포맷으로 되어있는지를 확인할 수 있다.

 

가볍게 설명하자면 사용자가 게임을 쉽게 설치하고 실행할 수 있게 하기 위해서 완성한 게임을 배포하기 위해 실행 파일로 묶어내는 것이다.

 

패키징의 진행 과정을 크게 나누면 아래와 같다.

소스 코드 컴파일
프로젝트의 소스 코드를 먼저 컴파일한다.

 

쿠킹
해당 게임의 모든 콘텐츠(텍스처, 모델, 사운드 등)를 타깃 플랫폼에 사용 가능한 포맷으로 변환(최적화)하여 패키징한다.

이를 통해 게임의 성능을 향상시키고 로드 시간을 단축하는 데 도움을 준다.

※ 타깃 플랫폼에 대한 이야기는 '프로젝트 패키징 방법'에서 소개한다.

 

고급 세팅
Edit - Project Settings - Packaging
패키징 고급 설정을 통해 패키징 기능에 대한 여러 고급 환경설정 옵션을 확인할 수 있고, 변경할 수 있다.

 

서명 및 암호화
프로젝트를 출시할 때 특정 파일을 서명하거나 암호화하여 데이터 추출이나 부당 변경을 방지할 수 있다.
Edit - Project - Encryption

프로젝트의 암호화 세팅을 조정하려면 프로젝트 세팅 메뉴의 Encryption(암호화) 섹션을 참고한다.


배포할 게임의 보안을 위해 서명 및 암호화 과정을 거쳐 게임의 무결성을 보장한다.

 

패키징 완료 및 파일 생성
컴파일된 코드와 쿠킹된 콘텐츠를 묶어 Window용 인스톨러와 같은 배포가 가능한 파일로 만든다.

생성된 파일을 사용하여 게임을 배포하여 설치하고 실행할 수 있게 한다.

프로젝트 패키징 방법

패키징의 타깃 플랫폼 설정

자신이 완성된 게임을 어떤 플랫폼으로 배포할 것인지 지정할 수 있다.

Platforms → CONTENTS/SDK/DEVICE MANAGEMENT를 통해 패키징을 진행할 수 있다.

언리얼 엔진에서 해당 위치를 통해 패키징의 타깃 플랫폼을 지정할 수 있다.

 

위의 사진을 자세히 보면 Android, IOS, Linux 등의 플랫폼은 패키징이 불가능하다고 에러 이미지가 표시되어 있다.

해당 SDK가 없기 때문에 없기 때문이므로, 각자 원하는 타깃 플랫폼에 따라 SDK 파일을 설치할 수 있도록 한다.


Binary Configuration

패키징 목적에 따라 빌드 구성이 달라진다.

Use Project Setting (Development)
프로젝트에 세팅된 빌드 구성을 따른다.

기본 빌드 구성은 Development 빌드 구성을 따른다.

 

DebugGame
게임 실행 중에 C++ 코드 테스트가 가능한 상태로 빌드한다.

단, 블루프린트 전용 프로젝트의 경우 선택이 불가능하다.

 

Development
가장 시간이 많이 걸리는 엔진 및 게임 코드 최적화를 제외한 모든 최적화를 진행한다.

개발 및 성능 측면에서 개발자들이 실전 테스트용으로 사용하기에 이상적인 구조다.

Development 구성을 사용하여 프로젝트를 컴파일하면 프로젝트에 적용된 코드 변경 사항이 편집기에 반영되는 것을 볼 수 있다.

 

Shipping
외부 배포용으로 최종적으로 패키징하기 위한 버전.
최적의 성능과 게임 배송을 위한 구성으로 콘솔 명령, 통계 및 프로파일링 도구를 제거한다.