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 : 에디터용 빌드 방식 정의
- Config: .ini 파일을 통해 에디터와 게임의 초기 상태 지정
- Programs
- 엔진 동작에 필요한 유틸리티 프로그램이나 서버 모듈 존재
- Rules
- 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일 존재
- Visualizers
- 디버깅 시 언리얼 엔진 관련 자료구조를 보기 좋게 표시하기 위한 설정 파일 존재
2-2. 빌드 구성 및 플랫폼
- C++ 코드를 수정했다면,,
- 컴파일 + 링크 이후
- DLL로 만들기
- 이후 DLL이 언리얼 에디터에서 로드되어 새로 작성한 코드가 게임내에 반영되는 것이다.
- 빌드 구성
- DebugGame
- 게임 로직만 디버그 정보를 포함하고, 엔진은 최적화된 상태로 빌드
- 에디터가 아닌 독립 실행 파일 환경에서 디버깅 가능
- .exe 파일 형태로 게임을 하면서 디버깅
- DebugGame Editor
- 에디터 환경에서 게임 로직을 디버깅
- 에디터 플레이 중에 C++로직 추적 및 브레이크 포인트 걸 수 있다.
- Development
- 개발용 빌드, 디버깅 기능을 최소화
- 독립 실행 파일 환경 테스트, 개발 단계에서 사용
- Development Editor
- 현재 default 설정
- 에디터에서도 개발 및 테스트 가능한 빌드 모드
- live coding 과 잘 맞음
- Shipping
- 배포 단계시 사용하는 릴리스 빌드
- 디버그 정보 제거, 성능 최적화
- DebugGame
- 플랫폼 설정
- win64 : window 64 비트
- 만약 다른 플랫폼 (콘솔, ios 등) 을 빌드할때 SDK 설치 필요
2-3. VS로 C++ 빌드하기
- 부분 빌드
- 게임 폴더에 존재하는, 우리가 이름 지은 프로젝트 선택 -> 우클릭 -> 빌드
- 엔진이나 다른 모듈을 제외하고 게임 프로젝트 코드만 빌드한다.
- 빌드 할 때의 유의점
- 언리얼 에디터는 종료하고 빌드하기 (에디터가 실행중이면, DLL을 교체하지 못 할 수 있다)
- 빌드 진행 시 오류 목록을 확인할 때 "빌드 전용" 으로 바꿔서 확인하기 (아래 사진 참고)
- 빌드 후 실행 대상 설정
- 우리가 이름 지은 프로젝트 선택 -> 우클릭 -> 시작 프로젝트로 설정
- 빌드 후 F5를 눌러서 실행하기를 추천! (uproject 더블클릭이나, 런처에서 실행하는 방법 말고)
- C++ 코드 수정 -> VS 빌드 -> F5 -> 에디터에서 확인
- 이 방식으로 빌드하는 것이 모든 것이 잘 반영되는 방식이다.
- 라이브 코딩
- C++ 코드 수정 -> LiveCoding 실행 -> 에디터에서 확인
- 라이브 코딩 제약 사항
- 간단한 코드 변경에 있어서 쓰면 좋지만, 실패하는 경우도 있으니, 실패하면 위의 빌드 방식을 쓰기
- 적용 안되는 경우
- 매크로 추가 삭제 수정 (UCLASS, UFUNCTION 등)
- 새로운 C++ 클래스 생성
- 엔진의 코어 영역 수정
- 함수 시그니처나 상속 구조 변경
2-4. 빌드 문제 복구하기
- C++ 코드를 수정하고, 빌드를 성공했지만 언리얼 에디터에 반영되지 않는 경우 해결책
- 언리얼 에디터와 VS 종료
- 프로젝트 폴더로 가서 Intermediate, DerivedDataCache, Saved 폴더 삭제
- .uproject 파일 우클릭 -> Generate visual studio project files 선택
- 솔루션 파일 열기 -> 빌드 -> 솔루션 정리 -> 솔루션 빌드
'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 |