icon안동민 개발노트

기본 레벨 생성 및 구조 설정


 언리얼 엔진에서 효과적인 레벨 구조 설정은 게임 개발의 핵심 단계입니다.

 이 가이드에서는 새로운 레벨을 생성하고 기본 구조를 설정하는 방법을 상세히 살펴보겠습니다.

레벨 생성 옵션

  1. 빈 레벨 생성
  • File > New Level > Empty Level
  • 완전히 빈 캔버스에서 시작
  1. 템플릿 사용
  • File > New Level > 원하는 템플릿 선택
  • 기본 구성요소가 포함된 레벨로 시작

 예시 템플릿

  • Basic : 기본 라이팅과 큐브 포함
  • TimeOfDay : 낮/밤 주기 시스템 포함
  • VR-Basic : VR 프로젝트를 위한 기본 설정

레벨 세팅 구성

  1. World Settings 열기
  • Window > World Settings
  1. 주요 설정 항목
  • Game Mode: 레벨의 기본 게임 모드 설정
  • Gravity: 중력 값 조정 (기본값 : -980)
  • Global Illumination: 전역 조명 방식 선택

 예시 설정

Game Mode: BP_MyGameMode
Gravity: -490 (달 표면 중력)
Global Illumination: Lumen

월드 세팅 조정

  1. Project Settings 열기
  • Edit > Project Settings
  1. 주요 조정 항목
  • Maps & Modes : 기본 맵 및 게임 모드 설정
  • World Settings : 전역 물리 및 렌더링 설정

 예시

Default Maps:
  Game Default Map: /Game/Maps/MainMenu
  Editor Startup Map: /Game/Maps/TestLevel
 
World Settings:
  Enable World Composition: True (대규모 레벨용)

서브레벨 사용법

  1. 서브레벨 생성
  • Levels 패널 > Add New Level > Empty Level
  1. 서브레벨 관리
  • Levels 패널에서 서브레벨 표시 / 숨기기
  • 서브레벨 간 에셋 이동: 드래그 앤 드롭
  1. 퍼시스턴트 레벨 개념
  • 메인 레벨로, 항상 로드되어 있음
  • 서브레벨 관리 및 전역 설정 포함

효율적인 레벨 구성 Best Practices

  1. 모듈식 설계
  • 재사용 가능한 레벨 청크 생성
  • 에셋 인스턴싱으로 메모리 사용 최적화
  1. 명확한 명명 규칙
  • 레벨명: L_[용도]_[세부정보]
  • 예 : L_Dungeon_Entrance, L_City_Downtown
  1. 레벨 스트리밍 고려
  • 대규모 맵을 작은 스트리밍 가능한 섹션으로 분할
  • Level Streaming Volume 활용

게임 장르별 레벨 구조 설계

  1. FPS 게임
  • 중앙 퍼시스턴트 레벨 + 전투 구역 서브레벨
  • 각 전투 구역을 독립적으로 디자인 및 최적화
  1. 오픈 월드 RPG
  • 대규모 지형 레벨 + 세부 지역 서브레벨
  • World Composition 시스템 활용
  1. 레이싱 게임
  • 트랙 레벨 + 환경 디테일 서브레벨
  • 트랙 부분을 모듈식으로 설계하여 다양한 조합 가능

대규모 오픈 월드 레벨 관리

  1. World Composition 활성화
  • World Settings > Enable World Composition: True
  1. 타일 기반 레벨 디자인
  • 전체 맵을 그리드 형태의 타일로 분할
  • 각 타일을 개별 레벨로 관리
  1. 거리 기반 스트리밍
  • World Composition Settings에서 스트리밍 거리 설정
  • 플레이어 주변 타일만 로드하여 성능 최적화

레벨 스트리밍 기본 설정

  1. Level Streaming Volume 추가
  • Place Actors 패널 > Volumes > Level Streaming Volume
  1. 스트리밍 레벨 연결
  • World Settings > Levels
  • Add Level 버튼으로 스트리밍할 레벨 추가
  1. 스트리밍 방식 설정
  • Always Loaded: 항상 메모리에 로드
  • Blueprint: 블루프린트로 로드/언로드 제어

 예시 블루프린트 코드

Load Stream Level:
  Level Name: "SubLevel_City"
  Make Visible After Load: True
  Should Block on Load: True

레벨 구조가 성능과 워크플로우에 미치는 영향

  1. 성능 영향
  • 적절한 레벨 분할로 메모리 사용 최적화
  • 스트리밍을 통한 로딩 시간 단축 및 프레임 레이트 향상
  1. 개발 워크플로우 영향
  • 팀 협업 용이성: 각 팀원이 독립적인 서브레벨 작업 가능
  • 반복 작업 감소: 모듈식 레벨 디자인으로 재사용성 증가
  • 버전 관리 효율성: 작은 단위의 레벨로 충돌 감소
  1. 유지보수 용이성
  • 문제 발생 시 특정 서브레벨만 수정 가능
    • 게임 업데이트 시 부분적 콘텐츠 교체 용이

 효과적인 레벨 구조 설정은 게임 개발의 근간을 이루는 중요한 과정입니다. 잘 설계된 레벨 구조는 게임의 성능을 최적화하고, 개발 팀의 생산성을 크게 향상시킬 수 있습니다. 특히 대규모 프로젝트에서는 초기 단계부터 확장성을 고려한 레벨 구조 설계가 필수적입니다.

 레벨 구조 설정 시 항상 게임의 최종 규모와 복잡도를 염두에 두어야 합니다. 초기에는 단순해 보이더라도, 개발이 진행됨에 따라 레벨이 복잡해질 수 있으므로, 유연성과 확장성을 갖춘 구조를 설계하는 것이 중요합니다. 또한, 팀 내에서 레벨 구조에 대한 명확한 가이드라인을 수립하고 공유하여, 모든 팀원이 일관된 방식으로 작업할 수 있도록 해야 합니다.

 마지막으로, 레벨 구조는 정적인 것이 아니라 프로젝트의 진행에 따라 지속적으로 발전하고 최적화되어야 합니다. 정기적인 성능 테스트와 팀 피드백을 통해 레벨 구조를 개선하고, 변화하는 프로젝트 요구사항에 맞춰 조정해 나가는 것이 중요합니다. 이러한 체계적인 접근을 통해 효율적이고 확장 가능한 게임 월드를 구축할 수 있습니다.