본문으로 건너뛰기

안동민 개발노트

본문 시작

환경 설정의 배포 준비

프로젝트·플랫폼·코드·콘텐츠 설정을 릴리스 기준으로 최종 점검해 개발 환경과 사용자 빌드의 차이를 줄입니다.

기능 구현과 성능 점검을 마쳤다면, 이제 결과물을 실제 사용자 환경으로 옮길 준비를 할 단계입니다.

10장 배포 및 유지보수는 게임을 플레이어에게 전달한 뒤에도 안정적으로 운영하기 위한 실무 흐름을 다룹니다.

그 시작점은 환경 설정의 배포 준비이며, 개발 환경에서만 동작하던 설정을 실제 사용자 환경에서도 문제없이 재현되도록 점검하는 과정입니다.

이번 절에서는 배포 직전 확인해야 할 설정 항목과 준비 순서를 정리합니다.

이 과정을 거치면 릴리스 직후 발생하기 쉬운 실행 환경 이슈를 크게 줄일 수 있습니다.

HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/1.html

배포 준비의 중요성

배포 준비는 게임 개발의 마지막 단계이자, 플레이어에게 게임의 첫인상을 결정짓는 매우 중요한 과정입니다.

  • 안정적인 실행 보장: 개발 환경과 플레이어 환경은 다를 수 있습니다. 배포 준비는 다양한 사용자 환경에서 게임이 문제없이 실행되도록 보장합니다.
  • 최적의 성능 제공: 최종 빌드에 필요한 최적화 설정들이 올바르게 적용되었는지 확인하여, 모든 플레이어에게 쾌적한 경험을 제공합니다.
  • 파일 크기 및 로딩 시간 최적화: 불필요한 데이터를 제거하고 효율적인 패키징을 통해 게임의 설치 용량과 로딩 시간을 줄입니다.
  • 보안 및 저작권 보호: 게임 데이터를 적절히 암호화하거나 패키징하여 무단 변조 및 저작권 침해를 방지합니다.
  • 플랫폼별 요구사항 충족: PC, 모바일, 콘솔 등 각 플랫폼이 요구하는 고유한 배포 기준과 인증 절차를 충족시킵니다.

프로젝트 설정 (Project Settings) 최종 점검

HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/2.html

편집(Edit) > 프로젝트 세팅(Project Settings) 메뉴는 게임 배포를 위한 핵심적인 전역 설정들을 포함하고 있습니다.

다음 항목들을 최종 점검합니다.

프로젝트 (Project) 섹션

  • Maps & Modes (맵 및 모드)
    • Default Maps (기본 맵)
      • Editor Startup Map: 에디터 시작 시 로드될 맵 (개발용).
      • Game Default Map: 게임 시작 시 로드될 맵 (배포용). 반드시 게임의 시작 맵으로 설정합니다.
      • Transition Map: 레벨 로딩 중 표시될 맵 (선택 사항).
    • Default GameMode: 게임의 기본 GameMode 클래스가 올바르게 설정되었는지 확인합니다.
  • Packaging (패키징)
    • List of maps to include in a packaged build: 빌드에 포함할 맵 목록을 정의합니다. 게임에 사용되는 모든 맵이 여기에 포함되어야 합니다.
    • Build Configuration: Development (개발용), Shipping (최종 배포용), DebugGame (디버그 정보 포함) 중 Shipping을 선택합니다. Shipping 빌드는 최적화가 가장 잘 되어 있고 디버그 정보가 거의 포함되지 않아 가장 작고 빠릅니다.
    • Use Pak File: 일반적으로 활성화하여 게임 데이터를 .pak 파일로 압축합니다. 이는 파일 크기 감소 및 로딩 속도 향상에 도움이 됩니다.
    • For Distribution: 최종 배포를 위한 빌드임을 나타내며, 추가적인 최적화 및 보안 설정이 적용됩니다. (서명, 암호화 등)
    • Cook everything in the project content directory: 모든 콘텐츠를 쿠킹(Cook)할지 여부. 일반적으로 활성화하지만, 특정 콘텐츠만 빌드하는 경우 비활성화할 수 있습니다.
  • Descriptions (설명)
    • Project Name, Company Name, Copyright Notice: 게임의 이름, 회사명, 저작권 정보 등을 정확히 입력합니다. 이는 설치 파일이나 실행 파일 정보에 표시될 수 있습니다.
    • Project Version: 게임의 현재 버전 정보를 명시합니다.

패키징 항목은 서로 의존성이 높아 한 번에 점검해야 누락을 줄일 수 있습니다.

아래 시각자료로 Build Configuration 선택 기준과 필수 체크 항목을 함께 확인하세요.

HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/4.html

엔진 (Engine) 섹션

  • Rendering (렌더링)
    • Frame Rate: Fixed Frame Rate를 사용하지 않는 경우, Use Less CPU when in Background 등을 통해 백그라운드 성능을 조절할 수 있습니다.
    • Motion Blur, Anti-Aliasing Method, Global Illumination, Reflections 등 9장 3절에서 다룬 렌더링 품질 설정을 최종적으로 검토하고, 목표 플랫폼에 맞는 최적의 균형점을 찾습니다. (예: 저사양 플랫폼에서는 불필요한 고품질 효과 비활성화)
  • Input (입력)
    • Action MappingsAxis Mappings: 모든 게임 컨트롤이 올바르게 매핑되었는지, 중복되거나 누락된 키는 없는지 확인합니다. (특히 Escape 키 같은 기본 시스템 키와의 충돌 여부)
  • Physics (물리)
    • Framerate and Substepping: 9장 4절에서 다룬 Max Physics Delta Time, Max Substeps 등의 설정이 게임의 물리 시뮬레이션 안정성에 적합한지 확인합니다.

플랫폼별 설정 (Platform Settings) 점검

각 플랫폼(Windows, Android, iOS 등)은 고유한 배포 요구사항을 가집니다.

  • 프로젝트 세팅 > 플랫폼 (Platforms) 섹션에서 대상 플랫폼을 선택하고 다음 항목들을 점검합니다.
  • Windows
    • Executable Name: 최종 실행 파일의 이름.
    • Icons: 게임 아이콘 설정.
    • Packaging 섹션: Install Location (기본 설치 경로), Prerequisites (필요한 외부 라이브러리) 등.
  • Android / iOS
    • Package Name, Version Name, Version Code: 앱의 고유 식별자, 버전 정보.
    • Signing: 앱 서명을 위한 키스토어(Android) 또는 인증서/프로비저닝 프로파일(iOS) 설정.
    • Build: ETC2 (Android), PVRTC (iOS) 등 플랫폼별 텍스처 압축 포맷 설정.
    • Minimum SDK Version, Target SDK Version: 지원할 최소/최대 OS 버전.
    • Orientation: 화면 방향 설정 (Portrait/Landscape).
    • Architecture: 64비트 (ARM64) 아키텍처 지원 여부.
  • 콘솔 (Console)
    • 각 콘솔 제조사(Sony, Microsoft, Nintendo)의 개발자 프로그램에 등록하여 SDK 및 배포 가이드를 따릅니다. 언리얼 엔진은 해당 SDK와 연동하여 빌드를 생성합니다.

코드 및 콘텐츠 최종 점검

환경 설정 외에도 최종 빌드를 위한 코드와 콘텐츠 점검이 필요합니다.

코드 및 블루프린트 정리

  • 디버그 코드 제거: 개발 과정에서 사용했던 Print String, Draw Debug Sphere 등의 디버그 노드를 모두 제거하거나, WITH_EDITORONLY_DATA와 같은 조건부 컴파일 매크로 안에 넣어 최종 빌드에서 제외되도록 합니다.
  • 사용하지 않는 코드/블루프린트 제거: 더 이상 사용되지 않는 함수, 변수, 이벤트 그래프 노드 등은 정리합니다.
  • 주석 및 문서화: 최종 코드에 대한 주석과 문서화를 통해 향후 유지보수를 용이하게 합니다.

콘텐츠 정리 및 검토

  • 사용하지 않는 에셋 제거: 콘텐츠 브라우저에서 감사(Audit) > 참조 뷰어(Reference Viewer)를 사용하여 특정 에셋이 어디에서 사용되는지 확인하고, 사용되지 않는 에셋은 제거합니다.
  • 중복 에셋 제거: 동일한 에셋이 여러 개 복제되어 존재하지 않는지 확인하고 하나로 통일합니다.
  • LOD 및 충돌 메시 최종 확인: 9장 2절에서 다룬 LOD와 충돌 메시 최적화가 모든 메시에 올바르게 적용되었는지 재확인합니다.
  • 퀄리티 체크: 모든 텍스처, 머티리얼, 메시가 시각적 결함 없이 의도한 대로 표시되는지 최종적으로 검토합니다.

빌드 및 테스트 준비

HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/7.html

배포 준비의 마지막 단계는 실제 빌드를 생성하고 테스트하는 것입니다.

패키징 (Packaging)

  • 파일(File) > 프로젝트 패키징(Package Project) 메뉴를 사용하여 원하는 플랫폼(Windows, Android 등)으로 게임을 패키징합니다.
  • Build ConfigurationShipping 으로 설정하는 것을 잊지 마세요.
  • 패키징 과정에서 오류가 발생하면 출력 로그(Output Log) 창을 확인하여 원인을 분석하고 해결합니다. (예: 컴파일 오류, 에셋 참조 오류)

최종 테스트 (Final Testing)

  • 다양한 환경 테스트: 가능한 한 다양한 하드웨어 스펙(저사양/고성능)과 운영체제 버전에서 빌드된 게임을 테스트합니다.
  • 버그 보고 및 수정: 발견된 버그는 신속하게 보고하고 수정합니다.
  • 로딩 시간 측정: 게임의 로딩 시간이 허용 가능한 범위 내에 있는지 측정합니다.
  • 성능 측정: Stat FPS 등을 사용하여 최종 빌드에서도 목표 FPS가 달성되는지 확인합니다.
HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/3.html

배포 준비에서는 프로젝트 설정, 플랫폼 설정, 코드/콘텐츠 정리, 최종 빌드 테스트를 체크리스트로 관리해야 합니다.

이 과정은 출시 전 오류를 줄이고 플랫폼별 요구사항을 확인하는 기준이 됩니다.

아래 점검표는 개발 중 설정을 배포 가능한 설정으로 잠글 때 함께 확인해야 하는 항목을 정리합니다.

HTML 다이어그램: /docs/unrealBasic/ch10/ch10-1/5.html

언리얼 프로젝트를 배포하기 전에 확인할 환경 설정 기준을 다시 정리합니다.