환경 설정의 배포 준비
프로젝트·플랫폼·코드·콘텐츠 설정을 릴리스 기준으로 최종 점검해 개발 환경과 사용자 빌드의 차이를 줄입니다.
기능 구현과 성능 점검을 마쳤다면, 이제 결과물을 실제 사용자 환경으로 옮길 준비를 할 단계입니다.
10장 배포 및 유지보수는 게임을 플레이어에게 전달한 뒤에도 안정적으로 운영하기 위한 실무 흐름을 다룹니다.
그 시작점은 환경 설정의 배포 준비이며, 개발 환경에서만 동작하던 설정을 실제 사용자 환경에서도 문제없이 재현되도록 점검하는 과정입니다.
이번 절에서는 배포 직전 확인해야 할 설정 항목과 준비 순서를 정리합니다.
이 과정을 거치면 릴리스 직후 발생하기 쉬운 실행 환경 이슈를 크게 줄일 수 있습니다.
배포 준비의 중요성
배포 준비는 게임 개발의 마지막 단계이자, 플레이어에게 게임의 첫인상을 결정짓는 매우 중요한 과정입니다.
- 실행 호환성 확인: 개발 환경과 플레이어 환경은 다를 수 있습니다. 배포 준비는 지원할 사용자 환경에서 실행되는지 검증합니다.
- 최적의 성능 제공: 최종 빌드에 필요한 최적화 설정들이 올바르게 적용되었는지 확인하여, 지원 사양에서 목표 성능을 확인합니다.
- 파일 크기 및 로딩 시간 최적화: 불필요한 데이터를 제거하고 효율적인 패키징을 통해 게임의 설치 용량과 로딩 시간을 줄입니다.
- 보안 및 저작권 보호: 게임 데이터를 적절히 암호화하거나 패키징하여 데이터 추출·변조 비용을 높입니다. 패키징 자체가 무단 변조나 복제를 막는 보장은 아닙니다.
- 플랫폼별 요구사항 충족: PC, 모바일, 콘솔 등 각 플랫폼이 요구하는 고유한 배포 기준과 인증 절차를 충족시킵니다.
프로젝트 설정 (Project Settings) 최종 점검
편집(Edit) > 프로젝트 세팅(Project Settings) 메뉴는 게임 배포를 위한 핵심적인 전역 설정들을 포함하고 있습니다.
다음 항목들을 최종 점검합니다.
프로젝트 (Project) 섹션
-
Maps & Modes (맵 및 모드)
-
Default Maps (기본 맵)
Editor Startup Map: 에디터 시작 시 로드될 맵 (개발용).Game Default Map: 게임 시작 시 로드될 맵 (배포용). 반드시 게임의 시작 맵으로 설정합니다.Transition Map: seamless travel의 전환에 사용하는 맵으로, 일반적인 로딩 화면과는 구분합니다.
- Default GameMode: 게임의 기본
GameMode클래스가 올바르게 설정되었는지 확인합니다.
-
Default Maps (기본 맵)
-
Packaging (패키징)
List of maps to include in a packaged build: 빌드에 포함할 맵 목록을 정의합니다. 필요한 맵이 쿠킹되는지 확인합니다. 이 목록 외에도 Asset Manager·명령행 등 쿠킹 규칙이 영향을 줍니다.Build Configuration:Development(개발용),Shipping(최종 배포용),DebugGame(디버그 정보 포함) 중Shipping을 선택합니다. Shipping은 출시용 최적화와 콘솔·통계 제한을 적용합니다. 심볼 생성·보관과 패키지 포함 여부는 별도로 관리합니다.Use Pak File: 쿠킹된 콘텐츠를 하나 이상의.pak에 묶습니다. 압축은 별도 옵션이고, Io Store를 사용하면.utoc/.ucas컨테이너도 확인합니다.For Distribution: 앱 스토어 등 대상 플랫폼의 배포 구성을 선택합니다. 인증서·서명·암호화 설정이 자동 완성되는 것은 아닙니다.Cook everything in the project content directory: 모든 콘텐츠를 쿠킹(Cook)할지 여부. 모든 콘텐츠가 필요할 때 사용합니다. 크기를 제한하려면 필요한 맵·참조·동적 로드 에셋을 명시하고 누락을 테스트합니다.
-
Descriptions (설명)
Project Name,Company Name,Copyright Notice: 게임의 이름, 회사명, 저작권 정보 등을 정확히 입력합니다. 이는 설치 파일이나 실행 파일 정보에 표시될 수 있습니다.Project Version: 게임의 현재 버전 정보를 명시합니다.
엔진 (Engine) 섹션
-
Rendering (렌더링)
- 프레임 정책: 프레임 제한·동기화·백그라운드 동작을 실제 패키지에서 확인합니다.
Use Less CPU when in Background는 에디터 환경 설정이므로 배포 게임의 정책으로 간주하지 않습니다. Motion Blur,Anti-Aliasing Method,Global Illumination,Reflections등 9장 3절에서 다룬 렌더링 품질 설정을 최종적으로 검토하고, 목표 플랫폼에 맞는 최적의 균형점을 찾습니다. (예: 저사양 플랫폼에서는 불필요한 고품질 효과 비활성화)
- 프레임 정책: 프레임 제한·동기화·백그라운드 동작을 실제 패키지에서 확인합니다.
-
Input (입력)
- 기존 입력의
Action Mappings/Axis Mappings또는 Enhanced Input의 Input Action/Mapping Context: 모든 게임 컨트롤이 올바르게 매핑되었는지, 중복되거나 누락된 키는 없는지 확인합니다. (특히Escape키 같은 기본 시스템 키와의 충돌 여부)
- 기존 입력의
-
Physics (물리)
Framerate and Substepping: 9장 4절에서 다룬Max Physics Delta Time,Max Substeps등의 설정이 게임의 물리 시뮬레이션 안정성에 적합한지 확인합니다.
플랫폼별 설정 (Platform Settings) 점검
각 플랫폼(Windows, Android, iOS 등)은 고유한 배포 요구사항을 가집니다.
프로젝트 세팅 > 플랫폼 (Platforms)섹션에서 대상 플랫폼을 선택하고 다음 항목들을 점검합니다.-
Windows
- 게임 아이콘과 실제 패키지 실행 파일 이름을 확인합니다.
- 필수 런타임의 포함 여부는 Packaging의 Prerequisites에서, 설치 위치는 별도 설치 프로그램·스토어 설정에서 확인합니다.
-
Android / iOS
- Android Package Name/버전 코드와 iOS Bundle Identifier/버전·빌드 번호 등 플랫폼별 식별 정보.
Signing: 앱 서명을 위한 키스토어(Android) 또는 인증서/프로비저닝 프로파일(iOS) 설정.Build: ASTC·ETC2 등 엔진 버전과 대상 기기가 지원하는 텍스처 압축 포맷 확인.Minimum SDK Version,Target SDK Version: Android 최소 실행 API와 대상 API 수준. Target SDK는 지원 가능한 최대 OS 버전을 뜻하지 않습니다. iOS 최소 지원 버전은 별도 설정합니다.Orientation: 화면 방향 설정 (Portrait/Landscape).Architecture: 64비트 (ARM64) 아키텍처 지원 여부.
-
콘솔 (Console)
- 각 콘솔 제조사(Sony, Microsoft, Nintendo)의 개발자 프로그램에 등록하여 SDK 및 배포 가이드를 따릅니다. 언리얼 엔진은 해당 SDK와 연동하여 빌드를 생성합니다.
코드 및 콘텐츠 최종 점검
환경 설정 외에도 최종 빌드를 위한 코드와 콘텐츠 점검이 필요합니다.
코드 및 블루프린트 정리
- 디버그 코드 제거: 개발 과정에서 사용했던
Print String,Draw Debug Sphere의 Development Only 성격과 사용자 정의 디버그 경로를 확인합니다. C++의 에디터 전용 코드는WITH_EDITOR, Shipping 분기는UE_BUILD_SHIPPING등 용도에 맞게 구분하며WITH_EDITORONLY_DATA를 실행 코드용 일반 스위치로 쓰지 않습니다. - 사용하지 않는 코드/블루프린트 제거: 더 이상 사용되지 않는 함수, 변수, 이벤트 그래프 노드 등은 정리합니다.
- 주석 및 문서화: 최종 코드에 대한 주석과 문서화를 통해 향후 유지보수를 용이하게 합니다.
콘텐츠 정리 및 검토
- 사용하지 않는 에셋 제거:
콘텐츠 브라우저에서 에셋의Reference Viewer를 사용하여 특정 에셋이 어디에서 사용되는지 확인하고, 동적 로드·Asset Manager 규칙까지 확인한 뒤 미사용 에셋만 제거합니다. - 중복 에셋 제거: 동일한 에셋이 여러 개 복제되어 존재하지 않는지 확인하고 하나로 통일합니다.
- LOD 및 충돌 메시 최종 확인: 9장 2절에서 다룬 LOD와 충돌 메시 최적화가 모든 메시에 올바르게 적용되었는지 재확인합니다.
- 퀄리티 체크: 모든 텍스처, 머티리얼, 메시가 시각적 결함 없이 의도한 대로 표시되는지 최종적으로 검토합니다.
빌드 및 테스트 준비
배포 준비의 마지막 단계는 실제 빌드를 생성하고 테스트하는 것입니다.
패키징 (Packaging)
- UE5 상단
Platforms > [대상 플랫폼] > Package Project를 사용하여 원하는 플랫폼(Windows,Android등)으로 게임을 패키징합니다. Build Configuration은Shipping으로 설정하는 것을 잊지 마세요.- 패키징 과정에서 오류가 발생하면
출력 로그(Output Log)창을 확인하여 원인을 분석하고 해결합니다. (예: 컴파일 오류, 에셋 참조 오류)
최종 테스트 (Final Testing)
-
다양한 환경 테스트: 가능한 한 다양한 하드웨어 스펙(저사양/고성능)과 운영체제 버전에서 빌드된 게임을 테스트합니다.
-
버그 보고 및 수정: 발견된 버그는 신속하게 보고하고 수정합니다.
-
로딩 시간 측정: 게임의 로딩 시간이 허용 가능한 범위 내에 있는지 측정합니다.
-
성능 측정: Development/Test의 통계로 원인을 분석하고, 콘솔·Stat이 제한되는 Shipping은 플랫폼 측정 도구나 프로젝트에 준비한 계측으로 목표 성능을 확인합니다.
-
엔진이 설치되지 않은 지원 장치에서 설치·첫 시작·저장·종료·재실행을 확인합니다.
-
빌드 번호, 설정, 필수 런타임과 측정 결과를 함께 보관합니다. 에디터의 성공만으로 패키지의 성공을 판단하지 않습니다.