개요
개발자는 언리얼 엔진을 사용하여 모바일 디바이스용 게임을 개발할 때 하이엔드 렌더링과 고급 툴, 확장 가능한 워크플로를 이용할 수 있습니다. 모바일 하드웨어에서 고퀄리티를 제공하려면 개발 전반에 걸쳐 계획을 신중하게 세우고 일관되게 퍼포먼스를 최적화해야 합니다.
이 페이지에서는 언리얼 엔진에서 멀티 플랫폼 프로젝트 빌드하기 페이지에서 소개한 개념을 기반으로 모바일 플랫폼에서의 프로젝트 개발, 최적화 및 디플로이를 중점적으로 다루고 있습니다.
언리얼 엔진으로 Apple 및 Android 빌드 지원 설치하기
컴퓨터에 언리얼 엔진을 설치할 때 옵션(Options) 버튼을 클릭하여 다양한 설치 옵션을 선택할 수 있습니다. 옵션 메뉴의 타깃 플랫폼(Target Platforms) 목록을 사용하여 언리얼 엔진과 함께 각 모바일 플랫폼에 필요한 바이너리를 설치할 수 있습니다.
바이너리는 타깃 플랫폼용 프로젝트 개발에 필요한 요구 사항을 제공합니다. 이 페이지의 패키징(Packaging) 섹션에서 다루는 소프트웨어 개발 키트(SDK) 및 네이티브 개발 키트(NDK)는 프로젝트를 타깃 플랫폼에 패키징하는 데 필요한 요구 사항을 제공합니다.
개발하려는 타깃 플랫폼을 활성화한 후, 이 페이지의 패키징 섹션에서 게임 패키징에 필요한 SDK 및 NDK에 액세스할 수 있습니다.
언리얼 엔진 설치 시 이러한 선택적 타깃 플랫폼을 설치하는 방법에 대한 자세한 내용은 언리얼 엔진 설치 페이지를 참조하세요.
패키징
언리얼 엔진에서 빌드 작업(Build Operations)의 일부인 모바일 디바이스용 패키징에는 특정 요구 사항이 수반됩니다. 각 모바일 플랫폼에는 게임을 패키징하고 대상 디바이스에 디플로이하는 데 필요한 특정 필수 구성 요소와 컴포넌트가 있습니다. 이러한 필수 구성 요소가 설치되면 빌드 작업은 비슷한 방식으로 작동합니다.
사과
Apple 디바이스(iOS, tvOS, iPadOS)에 패키징하려면 서명된 빌드를 패키징하기 위해 Xcode가 설치된 Mac이 필요하며, 개발자는 Apple 개발자 페이지에서 인증서 서명 및 프로비저닝 프로세스를 거쳐야 합니다. 이에 대한 자세한 내용은 iOS 프로젝트 패키징하기 페이지에서 확인할 수 있습니다.
Windows 사용자는 특별한 워크플로를 통해 원격으로 Mac에 연결하여 빌드를 디플로이하고 콘텐츠를 쿠킹할 수 있습니다. 원격 Mac 빌드 페이지에는 Windows에서 Apple 디바이스용 원격 빌드 파이프라인을 구성하는 데 필요한 단계가 간략하게 설명되어 있습니다. Apple의 Metal API용 셰이더를 컴파일하는 방법은 Windows Metal Shader 컴파일러 페이지에서 확인할 수 있습니다.
Android
Android 디바이스에 패키징하려면 특정 Android NDK 및 SDK 요구 사항을 충족하는 Android Studio가 필요합니다.
언리얼 엔진 사용자는 턴키를 사용하여 구성 프로세스를 자동화할 수 있습니다. Android SDK 및 NDK 구성에 대한 자세한 내용은 턴키 구성 페이지를 참조하세요.
시스템에 Android Studio나 Android SDK가 이미 설치되어 있거나 충돌하는 경우, 수동 구성 프로세스를 따라 진행해야 할 수도 있습니다.
Android 디바이스는 GPU 제품군에 따라 다릅니다. 일부는 Android Vulkan 렌더링 레벨을 지원하지만, 일부는 OpenGL ES 3.2로 예비 전환됩니다.
Android 스토어도 다양합니다. 타깃 스토어의 가이드라인과 요구 사항을 확인하여 허용되는 애플리케이션 크기를 타기팅하고 있는지 확인하세요. Google Play Store를 사용한다면, Android App Bundles을 사용할 수 있습니다.
렌더링 기능
대부분의 모바일 디바이스는 데스크톱 및 게임 콘솔 하드웨어에 비해 하드웨어 제약이 많기 때문에 언리얼 엔진에는 디바이스 하드웨어 사양과 지원 기능에 따라 다양한 모바일 디바이스용 렌더링 경로가 포함되어 있습니다. 이러한 렌더링 경로는 라이팅과 텍스처 같은 언리얼 엔진의 많은 렌더링 기능에 대해 퍼포먼스 지향 모델을 사용하며, 지원되지 않는 포스트 프로세스는 제거합니다.
언리얼 엔진에서는 모바일 디바이스에서 사용하기 적합한 포워드(forward) 및 디퍼드(deferred) 셰이딩 모드를 모두 제공하며, 데스크톱 렌더러(desktop renderer)도 지원합니다. 셰이딩 모드와 그 활용법에 대한 자세한 내용은 렌더링 및 셰이딩 모드 페이지에서 확인할 수 있습니다.
대부분의 모바일 디바이스는 디퍼드 셰이딩을 지원하는데, 이는 특히 다이내믹 라이팅, 리얼타임 글로벌 일루미네이션, 다이내믹 섀도와 같은 디바이스 필드 기반 이펙트를 사용하는 프로젝트에 대해 향상된 라이팅 이펙트를 제공하고, 머티리얼 인스트럭션이 감소하여 더 효율적인 경우가 많습니다.
모바일 디바이스의 디퍼드 셰이딩에 대한 자세한 내용은 렌더링 및 셰이딩 모드 페이지의 모바일 디퍼드 셰이딩 섹션에서 확인할 수 있습니다. 포워드 셰이딩은 프리컴퓨티드 라이팅을 사용하는 프로젝트에 유용할 수 있습니다.
모바일 디바이스를 위한 전반적인 렌더링 기능에 대해서는 모바일 렌더링 기능 페이지에서 자세하게 확인할 수 있습니다.
최적화
최적화는 모든 프로젝트에서 중요하며, 특히 모바일 플랫폼에서 개발할 때 더 중요한데, 왜냐하면 모바일 플랫폼이 하드웨어 제한으로 인해 일반적으로 PC 및 콘솔 디바이스보다 성능이 낮기 때문입니다. 따라서 최적화를 개발 프로세스에 포함하여 최적화를 초기부터 시작하고 자주 수행하는 것이 중요합니다.
디바이스 프로파일(Device Profiles) 및 엔진 퀄리티(Scalability) 세팅을 사용하여 하드웨어별로 렌더링 세팅을 커스터마이징할 수 있습니다.
엔진 퀄리티 세팅은 섀도, 폴리지 및 메시 디테일과 같은 개별 피처의 퀄리티 레벨을 정의하는 데 사용됩니다. 디바이스 프로파일은 이러한 세팅을 호환되는 디바이스에 매핑합니다. 디바이스 프로파일과 설정 방법에 대한 자세한 내용은 디바이스 프로파일 설정 페이지에서 확인할 수 있습니다. 엔진 퀄리티 세팅 페이지에서 다양한 옵션에 대해 자세히 알아볼 수 있습니다.
자세한 내용은 Android용 디바이스 프로파일 및 엔진 퀄리티 커스터마이징 페이지를 참조하세요.
언리얼 엔진의 많은 기능 개발이 플러그인을 통해 이루어집니다. 기본적으로 이러한 플러그인 중 다수는 활성화되어 있으며 플러그인(Plugins) 창(편집(Edit) > 플러그인(Plugins))에서 찾을 수 있습니다. 모바일 프로젝트의 경우, 모바일 개발에 영향이 없는 많은 플러그인을 비활성화할 수 있습니다. 일반적인 모바일 최적화 단계에 대한 자세한 내용은 모바일 최적화 가이드 페이지를 참조하세요.
Application Size
애플리케이션 크기는 게임 디플로이에 있어 중요한 요소입니다. 스토어에는 무선으로 전송할 수 있는 크기에 제한이 있는 경우가 많습니다. 몇 가지 주요 최적화를 통해 애플리케이션 크기를 제한할 수 있습니다.
청킹(Chunking)을 사용하여 프로젝트를 여러 개의 .pak 파일로 분할할 수 있습니다. 이를 통해 콘텐츠를 더 효율적으로 구성하고 전달할 수 있습니다.
iOS 프로젝트의 경우, iOS 빌드 최적화 방법에 대한 자세한 내용은 iOS 패키지로 만든 게임 크기 페이지에서 확인할 수 있습니다. Android 프로젝트의 경우, Android 빌드 최적화 방법에 대한 자세한 내용은 Android 바이너리 크기 줄이기 페이지에서 확인할 수 있습니다.
온디맨드 콘텐츠 전송은 필수적이지 않은 에셋을 분리하여 필요할 때만 전송할 수 있는 시스템입니다.
ChunkDownloader는 언리얼 엔진의 패치 솔루션으로, 원격 서버에서 런타임에 콘텐츠를 다운로드하고 마운트할 수 있게 해 줍니다. ChunkDownloader를 사용하면 온디맨드 방식으로 콘텐츠를 전송할 수 있으므로 모든 에셋을 프로젝트와 함께 패키징할 필요가 없어 애플리케이션의 파일 크기가 줄어듭니다. 자세한 내용은 패치에 ChunkDownloader 사용하기 페이지에서 확인할 수 있습니다.
Google Play Asset Delivery(GooglePAD)는 모든 콘텐츠를 초기 앱 패키지와 함께 번들로 제공하는 대신, 모델, 텍스처, 사운드 같은 대용량 에셋 파일을 Android 앱 설치 후에 제공하는 솔루션입니다. 이렇게 하면 애플리케이션의 파일 크기가 줄어듭니다.
디버깅
모바일 디바이스에서 디버깅하려면 일련의 툴과 워크플로를 사용해야 하며, 그중에는 플랫폼마다 고유한 툴이나 워크플로도 있습니다. 이러한 툴을 사용하여 게임의 문제를 파악하고 모바일 디바이스에서 게임이 원활하게 실행되도록 할 수 있습니다.
사과
Apple 디바이스에서 프로젝트를 디버깅하려면 Apple의 통합 개발 환경인 Xcode를 사용해야 합니다. Xcode는 iOS, iPadOS 및 tvOS 디바이스에서 문제를 식별하고 해결하는 데 필요한 툴을 제공합니다. 지원되는 워크플로에 대한 일반적인 세부 사항은 최신 Xcode 워크플로 페이지에서 확인할 수 있습니다.
Xcode로 iOS 프로젝트 디버깅하기 페이지에는 Apple 디바이스에서 프로젝트를 디버깅하는 단계별 지침이 포함되어 있습니다. 또한 Xcode iOS 시뮬레이터 사용하기 페이지에서 실제 디바이스 없이 다양한 iOS 디바이스에서 프로젝트를 테스트하는 방법에 대한 자세한 내용을 확인할 수 있습니다.
Android
Android 디바이스에서는 Android Studio 또는 Visual Studio를 사용하여 프로젝트를 디버깅할 수 있습니다. 두 툴 모두 Android 디바이스에서 실행되는 게임의 문제를 식별하고 해결하는 데 필요한 기능을 제공합니다.
Android 프로젝트 디버깅하기 페이지에 시작하는 방법에 대한 단계별 지침이 포함되어 있습니다. Android Studio는 실제 디바이스 없이도 다양한 Android 디바이스에서 프로젝트를 테스트할 수 있는 Android 에뮬레이터(Android Emulator)를 제공합니다.
Visual Studio를 사용하면 Android 게임 개발 확장 프로그램(Android Game Development Extension, AGDE)을 사용하여 디버깅할 수 있습니다.
ADGE와 관련된 Google의 라이선스 약관에 대한 최신 정보는 AGDE 개요 페이지에서 참조할 수 있습니다.
Android Debug Bridge(ADB)를 사용하여 Android 디바이스에서 애플리케이션과 상호작용할 수도 있고, 언리얼 엔진 애플리케이션 작업에 더 특화된 언리얼 Android 파일 툴(Unreal Android File Tool, UAFT)을 사용할 수도 있습니다.
모바일 프리뷰어
모바일 프리뷰어(Mobile Previewer)는 다양한 모바일 디바이스와 다양한 모바일 렌더링 경로에서 보이는 레벨의 모습을 레벨 뷰포트에서 직접 프리뷰하는 데 유용합니다. 프로젝트의 기본적인 모습을 파악하는 데 좋지만, 실제 디바이스에서 테스트하는 것만큼 정확하게 재현되지는 않을 수 있습니다.
Unity 개발자라면 Unity의 Device Simulator가 익숙할 것입니다. 언리얼의 모바일 프리뷰어는 Device Simulator와 동일한 기능을 제공하며, 선택한 디바이스와 가까운 에뮬레이트된 렌더링 환경에서 게임을 프리뷰할 수 있는 등의 추가 기능도 있습니다.
다양한 프리뷰 렌더링 레벨을 활성화하면 씬의 머티리얼이 리컴파일되어 선택한 렌더러 프리뷰의 모습과 기능 세트를 에뮬레이트합니다. 모바일 프리뷰어를 사용하면 에디터를 재시작할 필요 없이 렌더링 레벨 사이를 원활하게 전환할 수 있습니다.
특정 디바이스에서 렌더링을 사용하고 테스트하는 방법에 대한 자세한 내용은 모바일 프리뷰어를 참조하세요.