Unreal Engine - 개발 환경 세팅 및 빌드 프로세스

2025. 1. 21. 13:04·Unreal Engine

1. 개발 환경 세팅

1-1. 코드 편집기 세팅

  • 편집 -> 에디터 개인설정 -> 일반 -> 소스코드 -> 소스 코드 에디터 설정

1-2. 프로젝트 내의 주요 파일

  • .sln 파일 (솔루션 파일)
    • C++ 소스코드와 빌드 설정이 연결된 파일
  • .uproject 파일
    • 언리얼 에디터가 프로젝트 설정(content, map, plugin)을 불러올 때 사용하는 파일
  • .vsconfig 파일
    • visual studio 프로젝트에서 사용되는 특정 설정과 구성 요소 설치 요구 사항 정의

1-3. 프로젝트 내의 주요 폴더

  • .vs
    • 디버깅, 솔루션 설정 관련 파일
  • Binaries
    • C++ 코드를 빌드하면 생성되는 실행 파일이 저장 (.exe, .dll)
  • Config
    • 게임플레이, 렌더링, 입력 등의 설정을 담은 .ini 파일이 존재
  • Content 
    • 언리얼 에디터의 contents browser와 연결되어있고, 게임 내의 에셋이 존재
  • DerivedDataCache
    • 에셋, 쉐이더 등을 빠르게 처리하기 위한 캐시 파일 존재
  • Intermediate
    • C++를 컴파일할 때 생성되는 임시 파일 저장
  • Saved 
    • 자동 저장 파일, 로그, 크래시 덤프 등 포함
    • 게임이 비정상적으로 종료되었을 때, 로그 파일을 확인해서 문제 진단 가능
  • Source
    • C++소스코드가 존재, 실제 게임 로직 작성

2. 빌드 프로세스

2-1. 솔루션 구조 내의 주요 폴더

  • Engine
    • 언리얼 엔진 자체 소스코드와 리소스 존재
  • Games
    • 우리가 만든 프로젝트의 코드가 존재
    • C++로 작성하는 게임 로직이 포함된 폴더
    • 내부 구조
      • Config: .ini 파일을 통해 에디터와 게임의 초기 상태 지정
        • DefaultEditor.ini : 에디터 환경 설정 (뷰포트, UI 등)
        • DefaultEngine.ini : 엔진 설정 (렌더링, 네트워킹 등)
        • DefaultGame.ini : 게임플레이 관련 설정 (게임 모드, 플레이어 컨트롤 등)
        • DefaultInput.ini : 키보드, 마우스 등의 기본 입력 바인딩
      • Source
        • 실제 C++ 소스코드 존재
        • 빌드 설정 관련 파일
          • Build.cs :  프로젝트에 필요한 모듈, 라이브러리, 종속성 등 정의
          • Target.cs : 게임용 빌드 방식 정의
          • Editor.Target.cs : 에디터용 빌드 방식 정의
  • Programs
    • 엔진 동작에 필요한 유틸리티 프로그램이나 서버 모듈 존재
  • Rules
    • 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일 존재
  • Visualizers
    • 디버깅 시 언리얼 엔진 관련 자료구조를 보기 좋게 표시하기 위한 설정 파일 존재

2-2. 빌드 구성 및 플랫폼

  • C++ 코드를 수정했다면,,
    • 컴파일 + 링크 이후
    • DLL로 만들기
    • 이후 DLL이 언리얼 에디터에서 로드되어 새로 작성한 코드가 게임내에 반영되는 것이다.
  • 빌드 구성
    • DebugGame
      • 게임 로직만 디버그 정보를 포함하고, 엔진은 최적화된 상태로 빌드
      • 에디터가 아닌 독립 실행 파일 환경에서 디버깅 가능
      • .exe 파일 형태로 게임을 하면서 디버깅
    • DebugGame Editor
      • 에디터 환경에서 게임 로직을 디버깅
      • 에디터 플레이 중에 C++로직 추적 및 브레이크 포인트 걸 수 있다.
    • Development
      • 개발용 빌드, 디버깅 기능을 최소화
      • 독립 실행 파일 환경 테스트, 개발 단계에서 사용
    • Development Editor
      • 현재 default 설정 
      • 에디터에서도 개발 및 테스트 가능한 빌드 모드
      • live coding 과 잘 맞음
    • Shipping
      • 배포 단계시 사용하는 릴리스 빌드
      • 디버그 정보 제거, 성능 최적화
  • 플랫폼 설정
    • win64 : window 64 비트
    • 만약 다른 플랫폼 (콘솔, ios 등) 을 빌드할때 SDK 설치 필요

2-3. VS로 C++ 빌드하기

    • 부분 빌드
      • 게임 폴더에 존재하는, 우리가 이름 지은 프로젝트 선택 -> 우클릭 -> 빌드
      • 엔진이나 다른 모듈을 제외하고 게임 프로젝트 코드만 빌드한다.
    • 빌드 할 때의 유의점
      • 언리얼 에디터는 종료하고 빌드하기 (에디터가 실행중이면, DLL을 교체하지 못 할 수 있다)
      • 빌드 진행 시 오류 목록을 확인할 때 "빌드 전용" 으로 바꿔서 확인하기 (아래 사진 참고)

  • 빌드 후 실행 대상 설정
    • 우리가 이름 지은 프로젝트 선택 -> 우클릭 -> 시작 프로젝트로 설정
    • 빌드 후 F5를 눌러서 실행하기를 추천! (uproject 더블클릭이나, 런처에서 실행하는 방법 말고)
      • C++ 코드 수정 -> VS 빌드 -> F5 -> 에디터에서 확인
      • 이 방식으로 빌드하는 것이 모든 것이 잘 반영되는 방식이다.
  • 라이브 코딩
    • C++ 코드 수정 -> LiveCoding 실행 -> 에디터에서 확인
    • 라이브 코딩 제약 사항
      • 간단한 코드 변경에 있어서 쓰면 좋지만, 실패하는 경우도 있으니, 실패하면 위의 빌드 방식을 쓰기
      • 적용 안되는 경우
        • 매크로 추가 삭제 수정 (UCLASS, UFUNCTION 등)
        • 새로운 C++ 클래스 생성
        • 엔진의 코어 영역 수정
        • 함수 시그니처나 상속 구조 변경

2-4. 빌드 문제 복구하기

  • C++ 코드를 수정하고, 빌드를 성공했지만 언리얼 에디터에 반영되지 않는 경우 해결책
    1. 언리얼 에디터와 VS 종료
    2. 프로젝트 폴더로 가서 Intermediate, DerivedDataCache, Saved 폴더 삭제
    3. .uproject 파일 우클릭 -> Generate visual studio project files 선택
    4. 솔루션 파일 열기 -> 빌드 -> 솔루션 정리 -> 솔루션 빌드

'Unreal Engine' 카테고리의 다른 글

Unreal Engine - 클래스와 변수의 리플렉션 (매크로 지정자 위주)  (0) 2025.01.22
Unreal Engine - Actor의 생성과 응용  (0) 2025.01.21
Unreal Engine Dedicated Server  (3) 2025.01.13
Unreal Engine Garbage Collection  (1) 2025.01.13
Unreal Property System (Reflection)  (0) 2025.01.13
'Unreal Engine' 카테고리의 다른 글
  • Unreal Engine - 클래스와 변수의 리플렉션 (매크로 지정자 위주)
  • Unreal Engine - Actor의 생성과 응용
  • Unreal Engine Dedicated Server
  • Unreal Engine Garbage Collection
gbleem
gbleem
gbleem 님의 블로그 입니다.
  • gbleem
    gbleem 님의 블로그
    gbleem
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Unreal Engine (73)
      • C++ (19)
      • 알고리즘(코딩테스트) (27)
      • TIL (60)
      • CS (4)
      • 툴 (1)
  • 블로그 메뉴

    • 홈
    • 카테고리
  • 링크

    • 과제용 깃허브
    • 깃허브
    • velog
  • 공지사항

  • 인기 글

  • 태그

    싱글턴
    템플릿
    DP
    const
    addonscreendebugmessage
    상속
    character animation
    gamestate
    C++
    motion matching
    매크로 지정자
    map을 vector로 복사
    actor 클래스
    enhanced input system
    Vector
    blend pose
    cin함수
    additive animation
    applydamage
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gbleem
Unreal Engine - 개발 환경 세팅 및 빌드 프로세스
상단으로

티스토리툴바