언리얼 C++ 24.01.20

HyeonjungYun·2025년 1월 20일

언리얼 기초

목록 보기
7/23

폴더 구조

언리얼 프로젝트 폴더 구조

Content : 언리얼 에디터에 있는 콘텐츠 브라우저에서 표시되는 폴더 구조
DerivedDataCache : 캐시가 저장되는 곳
Intermediate : 임시 빌드가 저장되는 곳
Saved : 프로젝트의 로그가 저장되는 곳, 언리얼 엔진이 불시에 종료되면 여기서 로그를 확인하면 된다.
Source : 프로젝트에서 내가 작성한 코드가 저장되는 곳

비주얼 스튜디오에서 솔루션 탐색기 구조

Engine : 언리얼 자체의 소스 코드가 전부 담겨 있는 폴더. 언리얼엔진의 코어 코드가 들어 있으며, 언리얼 엔진의 커스텀이 필요할 때 다루는 폴더
Games : 우리가 작성한 소스코드가 저장된다.
Programs : 서버 모듈과 같은 유틸리티 프로그램들이 담겨있다. 외부의 툴들이 이 폴더에 담긴다.
Rules : 게임의 빌드 규칙들을 모아놓응 ㄴ폴더
Visualizers : 디버깅 시 언리얼의 자료구조를 편하게 하기 위한 설정들이 담겨있는 폴더

Games 필터 구조

SpartaProject : 루트 폴더
Config : 게임의 설정들이 담겨있는 폴더 (에디터 환경, 게임모드의 기본 값, 키보드 마우스의 입력 설정)
Source : 우리가 작성하는 코드들이 담기는 폴더
.Build.cs, .Target.cs : 빌드 설정이 담긴 파일
*.uproject : 언리얼 에디터를 실행하기 위한 파일

프로젝트 빌드

비주얼 스튜디오에서 cpp파일과 h파일을 빌드(컴파일 + 링크)하게 되면 dll파일이 생성되고 언리얼 에디터에서 이 dll파일을 가져와 반영하여 게임을 실행시킨다.

빌드 모드

DebugGame : 디버깅을 하기에 최적화된 빌드 모드, 무겁기 때문에 게임 속도가 느려질 수 있다. 실행 파일 형태로 빌드 되어 프로그램을 실행시킨다. 실행파일만 생성되고 엔진 코드는 고정된다.
DebugGameEditor : 언리얼 에디터 상에서 게임이 빌드되어 게임을 할 수 있고 언리얼 에디터에서 게임 실행과 디버깅 모두 할 수 있다.
Development : 일반적인 빌드 모드, 디버그 정보는 많이 축소되어 있지만 가벼운 디버깅은 할 수 있고 게임의 속도는 빨라져서 테스트 하기에 가장 좋은 모드라고 할 수 있다.
DevelopmentEditor : Development와 동일한 빌드설정이고 언리얼 에디터상에서 게임이 구동된다.
Shipping : 최종 Release단계에서 선택됨. 디버그 정보가 전부 빠지고 최적화된 상태로 빌드되기 때문에 게임 본연의 속도를 알 수 있다.

언리얼 C++프로젝트를 빌드할 땐 전체 빌드가 아닌 부분 빌드 사용이 권장되는데, 언리얼 C++프로젝트엔 언리얼 엔진의 코어 코드까지 전부 포함되어 있어서 전체 빌드 시에 많은 부하가 발생하기 때문에 작성한 코드 부분만 빌드하는게 좋다.

하지만 요즘 컴파일러는 처음에만 전체 빌드를 하고 나면 이후엔 새로 갱신된 파일만 따로 갱신되기도 한다.

언리얼 에디터가 켜져 있는 상태에서 빌드를 하면 새로 갱신된 dll파일을 언리얼 에디터가 캐치하지 못 하기 때문에 빌드 시엔 언리얼 에디터를 종료하는게 권장된다.

언리얼 엔진 내에 라이브 코딩이라는 기능으로 언리얼 에디터를 껏다 켜지 않고 에디터를 켠 상태에서 빌드를 할 수 있지만, 대부분의 상황에서 제대로 빌드 되지 않아서 잘 쓰이지 않는다.

빌드가 꼬였을 때 해결방법

정석적인 빌드나 라이브 코딩 방식을 전부 사용해도 제대로 된 빌드가 되지 않고 계속해서 빌드가 실패되는 경우를 빌드가 꼬였다고 말한다. 이런 상황은 캐시나 임시 빌드 파일에 문제가 생긴 것이다. 빌드를 복구하기 위해선

  1. 언리얼 에디터를 종료한다.
  2. 비주얼 스튜디오도 종료한다.
  3. 프로젝트 폴더로 돌아가 DerivedDataCache, Intermediate, Saved(,Binaries : 이것까지 삭제해도 상관 없다.)폴더들을 삭제해준다.
  4. .uproject파일을 우클릭하여 "Generate Visual Studio project files"를 클릭하면 솔루션 파일이 재생성된다.
  5. 언리얼 에디터 파일을 실행한다.(팝업창이 뜨는 경우 ok를 누른다.)
    보통 여기가지 오면 문제 상황이 대부분 해결된다. 그럼에도 해결 안되는 경우
  6. 다시 언리얼 에디터를 끄고 솔루션 파일을 실행시킨다.
  7. 그 전에 빌드되어 생성된 파일들을 전부 지워주어야 한다. 비주얼 스튜디오에서 빌드 -> 솔루션 정리를 선택한다.
  8. F5를 눌러 다시 빌드를 해준다.
    이렇게 하면 90퍼센트의 문제들은 전부 해결된다.

IntelliSense


IntelliSense : 컴파일러의 빌드와는 전혀 상관 없이 코드 수정의 편의 사항의 기능을 담고 있다.(코드가 비효율적이거나 안전하게 작성되지 않는 경우 에러를 띄움)

코드의 로직이 잘못 되었거나 코드 빌드 시에 문제가 되는 부분에 포함되지 않는 것들까지 에러로 출력하기 때문에 초보자는 Build only로 설정해두는 것이 좋다.

공부 소감

언리얼 엔진의 빌드 방식을 공부해보니 C++프로젝트를 빌드하는 방식과는 살짝 차이가 있어서 새로웠다. 그래도 그렇게 어려운 방식은 아닌 것 같아서 적응하기는 쉬울 것 같은데 직접 해봐야 알 것 같다.

profile
게임 프로그래머 공부

0개의 댓글