언리얼 에디터에서 우측 패널에 있는데 solution explorer 창을 보면 실제 윈도우 탐색이에서 봤던 폴더들과 계층구조가 다를 겁니다. 이는 빌드와 관리를 용이하게 하기 위해서 가상폴더 구조를 생성하기 때문입니다.
이제 이 가상폴더 구조로 어떤 폴더가 무엇을 담는지 알아보겠습니다.
- Engine 폴더
- 언리얼 엔진 자체 소스 코드와 리소스가 담긴 곳입니다.
- 에디터 작동, 엔진 코어 관련 코드가 포함되어 있지만, 초급 단계에서는 거의 수정할 일이 없습니다.
- Games 폴더 (중요!)
- 우리가 만든 프로젝트 코드가 모두 들어 있습니다.
- 내부에는 Source, Config, .uproject 파일 등이 있으며, C++로 작성하는 게임 로직을 이 폴더에서 가장 많이 다루게 됩니다.
- Programs 폴더
- 엔진 동작에 필요한 유틸리티 프로그램이나 서버 모듈이 담겨 있습니다.
- 초급 단계에서는 거의 볼 일이 없습니다.
- Rules 폴더
- 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일들이 모여 있습니다.
- 모듈 의존성, 플러그인 활성화 여부, 빌드 대상 등을 제어합니다.
- Visualizers 폴더
- Visual Studio에서 디버깅 시 언리얼 엔진 관련 자료구조를 보기 좋게 표시하기 위한 설정 파일이 들어 있습니다.
이 중 지금은 game 폴더와 engine 폴더 정도만 정확하게 알고 있으면 됩니다.
game 폴더의 소스폴더에 우리가 구현할 로직들이 적힌 코드가 있습니다.
안을 열어보면 해당 프로젝트의 이름이 보일 것 입니다.
이 폴더가 프로젝트 루트이며 게임 개발에 필요한 모든 리소스와 설정 파일이 이곳에 모여 있습니다
이 안에서도 다양한 폴더가 존재합니다.
하나하나씩 확인해보겠습니다.
- Config 폴더
- .ini 파일을 통해 에디터와 게임의 초기 상태를 지정합니다.
- DefaultEditor.ini: 에디터 환경 설정 (뷰포트, UI 등)
- DefaultEngine.ini: 엔진 전반 설정 (렌더링, 네트워킹 등)
- DefaultGame.ini: 게임플레이 관련 설정 (게임 모드, 플레이어 컨트롤러 클래스 등)
- DefaultInput.ini: 키보드·마우스·패드 등의 기본 입력 바인딩
- .ini 파일을 통해 에디터와 게임의 초기 상태를 지정합니다.
- Source 폴더
- 실제 C++ 소스 코드(.cpp, .h)가 들어 있습니다.
- 최초 프로젝트 생성 시에는 프로젝트명.cpp, 프로젝트명.h 등 최소 파일만 있지만, 새 클래스를 만들수록 점차 늘어납니다.
- 빌드 설정 관련 주요 파일도 포함됩니다.
- 프로젝트명.Build.cs: 해당 프로젝트에 필요한 모듈, 라이브러리, 종속성 등을 정의
- 프로젝트명.Target.cs, 프로젝트명Editor.Target.cs: 각각 게임 실행용, 에디터용 빌드 방식을 정의
- 프로젝트명.uproject
- 언리얼 에디터에서 이 파일을 열면 프로젝트를 직접 실행할 수 있습니다.
- 에디터는 이 파일을 통해 “어떤 콘텐츠와 설정을 불러올지”를 판단합니다.
이제 cpp 빌드 설정에 대해 알아보겠습니다.
cpp코드를 수정했다면 이를 컴파일+링크 를 통해 라이브러리(DLL)로 만들어야합니다.
이 라이브러리가 언리얼 에디터에서 로드되어 반영됩니다.
Visual Studio 상단 툴바에는 빌드 구성 (Configuration)과 플랫폼 (Platform)을 선택하는 드롭다운이 있습니다.
- 왼쪽 - 빌드 구성 (예: DebugGame, Development Editor 등)
- 오른쪽 - 플랫폼 (Win64)
- 빌드 구성 (Configuration) 종류
- DebugGame
- 게임 로직만 디버그 정보를 포함하고, 엔진은 최적화된 상태로 빌드합니다.
- 에디터가 아닌 독립 실행 파일 환경에서 디버깅이 가능합니다.
- DebugGame Editor
- 에디터 환경에서 게임 로직을 디버그하기 편한 설정입니다.
- 에디터 플레이 중에 C++ 로직을 추적하거나 브레이크포인트를 걸어볼 수 있습니다.
- Development
- 디버그 정보를 최소화해 실행 속도를 높인 개발용 빌드입니다.
- 독립 실행 파일 환경 테스트·개발 단계에서 주로 쓰입니다.
- Development Editor
- 에디터에서도 개발·테스트를 원활히 할 수 있도록 구성된 빌드 모드입니다.
- Live Coding 사용 시나리오와 궁합이 좋고, 초·중급자들이 자주 사용합니다.
- 본 강의에서도 기본 모드로 활용합니다.
- Shipping
- 최종 사용자에게 배포할 때 사용하는 릴리스 빌드입니다.
- 디버그 정보를 제거하고, 성능 최적화가 극대화됩니다.
- DebugGame
- 플랫폼 (Platform) 설정
- 기본적으로 Win64가 선택되어 있으며, 이는 Windows 64비트 환경을 의미합니다.
- 모바일 (Android, iOS), 콘솔 (PS, Xbox 등)로 빌드하려면 해당 플랫폼용 SDK를 추가로 설치해야 합니다.
vs에서 cpp를 빌드하기 위한 방법으로는 전체 솔루션 빌드와 부분빌드가 존재합니다.
전체빌드: Ctrl + Shift + B
부분빌드:아래 사진처럼 프로젝트 우클릭 후 빌드 선택
cpp로직만 수정했다면 이방법을 쓰는 것이 효율적입니다. 하지만 이미 전체 빌드를 한 상태라면 vs에서 자동적으로 수정된 파일만 찾아서 빌드하기때문에 큰 차이는 존재하진 않습니다.
빌드 시작전에는 가급적 언리얼 에디터를 종료하고 빌드하는 것이 안전합니다.
빌드 후, 프로젝트 폴더의 Binaries/Win64 폴더 내에 UnrealEditor-프로젝트명.dll 등이 새로 생성됩니다.
빌드 후에는 Solution Explorer에서 프로젝트를 우클릭하고 set as startup(시작프로그램으로 설정)을 선택하면 디버깅 시 실행될 기본 프로젝트로 설정 되어 언리얼 에디터와 함께 실행하거나 디버깅도구를 사용할 때 편리합니다.
그렇다면 수정할때마다 빌드하고 언리얼 에디터를 껐다 켜야할까요?
이를 위해 라이브 코딩이라는 기능이 존재합니다.
- 기존 방식
- “Shift + F5 (에디터 연결 종료) → C++ 코드 수정 → Visual Studio에서 빌드 → F5 (에디터 재연결) → 결과 확인”
- Live Coding 활용 시
- “(에디터 연결 종료 안한채) C++ 코드 수정 → Live Coding으로 변경 사항만 컴파일 → 에디터에 즉시 로직 반영”
- Live Coding을 사용하면 에디터를 일일이 끄고 켜는 번거로움이 줄어듭니다.
하지만 라이브코딩을 사용할때에는 제약사항이 존재합니다.
- 간단한 코드 변경: 함수 내부 로직, 변수 값 변경, 로그 출력 변경 등은 Live Coding으로 즉시 반영됩니다.
- 적용이 안 되는 경우
- UCLASS, USTRUCT, UENUM 매크로의 추가·삭제·수정
- 새로운 C++ 클래스 (.h/.cpp) 생성
- 엔진 코어 영역 수정
- **함수 시그니처 (인자, 반환값)**나 클래스 상속 구조 변경
- 이 경우에는 전통적인 빌드 프로세스 (에디터 종료 → Visual Studio 빌드 → 에디터 재실행)가 필요합니다.
cpp코드를 수정하고 빌드를 완료했음에도 언리얼에서 반영이 안되는 경우가 있다면 이유는 다음과 같습니다.
- C++ 코드를 수정하고 빌드를 완료 하였음에도 불구하고, 언리얼 에디터에서 반영이 안 되는 경우가 있습니다.
- 빌드 캐시나 프로젝트 설정 문제, 혹은 파일 경로가 꼬여서 발생할 수 있으며, 아래와 같은 형태로 나타납니다.
- 컴파일 대상 누락: Visual Studio 혹은 엔진이 수정된 소스를 인식 못 해 빌드 대상에서 누락됨
- DLL 교체 문제: 빌드가 끝났어도 에디터가 새 DLL을 로드하지 못함
- 캐시 문제: 이전 빌드 결과물이 남아 새 빌드 결과를 덮어씌우지 못함
- 파일 경로 문제: 헤더 파일 경로나 플러그인 설정이 잘못되어 컴파일에 포함되지 않음
이를 다음과 같이 해결해보세요
- 언리얼 에디터와 Visual Studio 종료
- 실행 중인 프로세스들이 빌드 파일을 잠글 수 있으므로, 모두 끄고 새로 시작하는 것이 좋습니다.
- 프로젝트 폴더에서 Intermediate, DerivedDataCache, Saved 폴더 삭제
- 이 폴더들은 빌드 캐시 및 임시 데이터를 담고 있습니다.
- 삭제 후 다시 빌드하면 새로 생성되어, 잘못된 캐시로 인한 오류를 해결할 수 있습니다.
- .uproject 파일을 우클릭 → “Generate Visual Studio project files”
- 솔루션(.sln) 파일과 프로젝트 설정을 재생성하여, 누락되었거나 꼬인 구성을 복구합니다.
- Visual Studio에서 클린 빌드
- 새로 생성된 솔루션을 열고,
- Build → Clean Solution으로 기존 빌드 산출물을 정리
- Build → Build Solution으로 프로젝트 재빌드
- 에러가 난다면 Output 창과 Error List를 확인해 원인을 파악하고 수정합니다.
- 새로 생성된 솔루션을 열고,
- 언리얼 에디터 다시 실행
- 에디터를 다시 실행해 코드 변경 사항이 반영되었는지 확인합니다.
- 여전히 문제가 계속된다면,
- Saved/Logs 폴더의 로그를 확인해 구체적인 에러를 찾고,
- 엔진 버전이나 프로젝트 설정을 점검해 보세요.