C++와 Unreal Engine으로 3D 게임 개발

C++와 Unreal Engine으로 3D 게임 개발 1-2

jh009 2026. 6. 5. 14:26

1-2. 언리얼 엔진 C++ 빌드 프로세스 이해하기

Visual Studio → Solution Explorer 확인

Visual Studio 상에 보이는 파일 구조 → Solution 구조

 

Engine 폴더

  • 언리얼 엔진 자체 소스 코드와 리소스가 담긴 곳
  • 에디터 작동, 엔진 코어 관련 코드가 포함되어 있음

Games 폴더

  • 만들었던 프로젝트 코드가 모두 들어 있음
  • 내부에 Source, Config, .uproject 파일 등이 있으며, C++로 작성하는 게임 로직을 이 폴더에서 가장 많이 다루게 됨

Programs 폴더

  • 엔진 동작에 필요한 유틸리티 프로그램이나 서버 모듈

Rules 폴더

  • 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일이 있음
  • 모듈 의존성, 플러그인 활성화 여부, 빌드 대상 등을 제어

Visualizers 폴더

  • Visual Studio 디버거에서 언리얼 엔진의 복잡한 자료구조 (FVector, FString) 를 보다 읽기 쉽게 도와주는 설정 파일

프로젝트 루트 폴더 (Games/프로젝트 명)

 

  • Games 폴더 안 만들었던 프로젝트 이름의 폴더 → 프로젝트 루프
  • 게임 개발에 필요한 모든 리소스와 설정 파일이 이곳에 모여 있음

Source 폴더

  • 최초 프로젝트 생성 시에는 프로젝트명.cpp, 프로젝트명.h 등 최소 파일만 있음
  • 클래스를 만들수록 점차 늘어남

 

파일 수정을 했을 때

C 파일 수정 → 빌드 (컴파일 + 링크) → 언리얼 상에서 DLL 파일 생성  → 언리얼 에디터에서 가져와야됨

→ C++ 파일에서 수정했던 것이 반영됨


빌드 구성 및 플랫폼 확인

 

Visual Studio 상단 툴바에는 빌드 구성 (Configuration)과 플랫폼 (Platform)을 선택하는 드롭다운이 있음

 

DebugGame

  • 디버깅을 하기 위해 최적화 된 빌드 모드
  • 디버그에 대한 모든 정보를 가진 채로 게임이 빌드 → 모든 정보를 가져 무겁기 때문에 게임 속도는 조금 느림
  • 실행 파일 형태로 실행되며 디버깅
  • 엔진 코드 고정

DebugGame Editor

  • 에디터 환경에서 게임 로직을 디버그하기 편한 설정
  • 에디터 플레이 중에 C++ 로직을 추적하거나 브레이크포인트를 걸어볼 수 있음

가장 일반적인 빌드 모드

 

Development

  • 디버그 정보를 최소화해 실행 속도를 높인 개발용 빌드 → 테스트하기 좋음
  • 독립 실행 파일 환경 테스트·개발 단계에서 주로 쓰임
  • 실행 파일 형태의 빌드

Development Editor

  • 언리얼 에디터 상에서 빌드

Shipping

  • 최종 사용자에게 배포할 때 사용하는 릴리스 빌드
  • 디버그 정보를 제거하고, 성능 최적화가 극대화
  • 마지막에 쓴다고 생각하면 됨

전체 솔루션 빌드 / 부분 빌드


Visual Studio 메뉴 Build → Build Solution (단축키: Ctrl + Shift + B)

  • 엔진, 유틸리티, 게임 등 모든 모듈을 통째로 빌드
  • 첫 빌드나 엔진 소스를 수정했을 때, 또는 엔진 전체 파일이 필요한 경우에 사용
  • 프로젝트 규모가 크면 시간이 오래 걸릴 수 있음

 

  • 엔진이나 다른 모듈을 제외하고, 게임 프로젝트 코드만 빠르게 빌드
  • 일반적으로 C++ 로직만 수정했다면 이 방법을 쓰는 것이 효율적


빌드 전후 체크 포인트

 

빌드 시작 전

  • 언리얼 에디터는 가급적 종료하고 빌드하는 편이 안전
  • 에디터가 실행 중이면 수정된 DLL을 교체하지 못해 빌드 에러가 발생

빌드 진행

  • Visual Studio 하단 Output 창에서 빌드 메시지를 모니터링
  • 첫 빌드 (전체 솔루션 빌드) 는 엔진 모듈까지 모두 새로 컴파일하므로 오래 걸릴 수 있지만, 이후에는 변경된 소스만 컴파일해서 빌드 시간이 크게 단축
  • 경고 (Warning)나 에러 (Error)가 뜨면 Error List 창에서 구체적인 원인을 확인

Error List

Build Only 에 에러창 확인하기

 

Build + IntelliSense → Visual Studio 상에서 코드 편집 보조 도구로써 제공하는 기능

컴파일러 빌드와 무관함


Live Coding

기존 방식

Shift + F5 (에디터 연결 종료)C++ 코드 수정 → Visual Studio에서 빌드 → F5 (에디터 재연결) → 결과 확인

 

Live Coding 활용 시

에디터를 종료하지 않은 상태에서 C++ 코드를 수정한 뒤, Live Coding으로 변경 사항만 컴파일하여 즉시 에디터에 반영

에디터를 일일이 끄고 켜는 번거로움이 줄어듦

 

Live Coding 기능 활성화

 

Live Coding 기능 활성화 / 비활성화

 

활성화

  • 순한 수치 변경이나 간단한 로직 수정 시 1~2초 만에 즉시 반영되는 라이브 코딩은 시간 절약에 용이함
  • 흐름을 끊지 않고 계속 작업을 이어갈 수 있게 해줌

비활성화

  • 라이브 코딩은 코드를 실행 중에 메모리에 직접 주입하는 방식
  • 복잡한 수정(특히 헤더 파일 변경이나 클래스 구조 변경)을 할 때 엔진이 꼬이거나 예기치 않게 크래시가 날 확률이 높음
  • 수정된 내용이 실제 바이너리에 완벽하게 반영되지 않는 경우 발생 → 수정을 했는데 그대로인 경우가 생길 수 있음
작업 유형 추천 방식 이유
단순 로직 수정 (함수 내부 내용 변경) 라이브 코딩 사용 매우 빠르고 편함
새로운 변수/함수 추가 라이브 코딩 주의 헤더 변경 시 불안정할 수 있음
클래스 상속 구조 변경 라이브 코딩 끄기 엔진을 끄고 빌드하는 것이 가장 확실함
디버깅 중일 때 라이브 코딩 끄기 디버거와 라이브 코딩이 충돌하여 오류가 잦음

 

웬만하면 끄고 하는게 낫다.


빌드 문제 복구하기

변경 사항 미반영 문제

C++ 코드를 수정하고 빌드를 완료 하였음에도 불구하고, 언리얼 에디터에서 반영이 안 되는 경우

 

빌드 캐시 문제, 프로젝트 설정 문제, 파일 경로 오류 등 다양한 원인으로 발생할 수 있음

  • 컴파일 대상 누락: Visual Studio 혹은 엔진이 수정된 소스를 인식 못 해 빌드 대상에서 누락됨
  • DLL 교체 문제: 언리얼 에디터가 실행 중이거나 DLL 파일이 다른 프로세스에 의해 사용 중인 경우, 새로 빌드된 DLL 파일이 교체되지 않는 문제
  • 캐시 문제: 이전 빌드 결과물이 남아 새 빌드 결과를 덮어씌우지 못함
  • 파일 경로 문제: 헤더 파일 경로나 플러그인 설정이 잘못되어 컴파일에 포함되지 않음

단계별 해결 가이드

 

1. 언리얼 에디터와 Visual Studio 종료

  • 실행 중인 프로세스들이 빌드 파일을 잠글 수 있으므로, 모두 끄고 새로 시작하기

2. 프로젝트 폴더에서 Intermediate, DerivedDataCache, Saved 폴더 삭제

  • 이 폴더들은 빌드 캐시 및 임시 데이터를 담고 있음
  • 삭제 후 다시 빌드하면 새로 생성되어, 잘못된 캐시로 인한 오류를 해결할 수 있음

3. .uproject 파일을 우클릭 → “Generate Visual Studio project files”

  • 솔루션(.sln) 파일과 프로젝트 설정을 재생성하여, 누락되었거나 꼬인 구성을 복구

4. Visual Studio에서 클린 빌드 수행

새로 생성된 솔루션 (.sln 파일)을 Visual Studio에서 열고 다음을 수행

에러가 난다면 Output 창 Error List를 확인해 원인을 파악하고 수정

  • Build → Clean Solution 기존 빌드 산출물 정리 
  • Build → Build Solution 프로젝트 재빌드