묻공러
언리얼 Game Data - Game Module
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (535) N
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • C# (20)
      • [루키스] C# (9)
      • [루키스] 자료구조 (3)
      • [루키스] 실전 문법 (8)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 - 언리얼 (123)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
    • 게임 엔진 - 유니티 (28) N
      • [최적화] 유니티 (4)
      • [루키스] 유니티 (24) N
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
게임 엔진 - 언리얼/[코드조선] 언리얼

언리얼 Game Data - Game Module

2024. 5. 17. 10:20

C++ 프로젝트의 모듈

C++ 코드를 작성하지 않는 블루프린트 프로젝트는

개발자가 직접 모듈을 추가할 수 없다
반면, C++ 프로젝트는 개발자가 직접 모듈을 추가하고 임포트 할 수 있다


언리얼 C++ 모듈
언리얼 엔진의 소스코드는 모두 모듈 단위로 구성되어 있다

모듈은 소스파일의 컴파일 결과물이다
모듈 단위로 작성된 C++ 소스코드를 컴파일 결과물은

에디터용으로 .dll 파일과

실행 파일용으로 .lib가 생성된다

즉, 모듈을 컴파일해서 언리얼 에디터 혹은 실행 파일에 우리가 작성한 로직을 반영할 수 있다

 

언리얼 C++ 모듈 소스코드 관리
언리얼 C++ 모듈 소스코드도 결국 프로젝트 폴더 > Source 폴더에 저장되어야 한다
그렇게 저장된 Source 폴더의 소스코드들을 바탕으로

UBT는 플랫폼(Win, Mac, …)에 맞춰서 빌드한다
C# 언어에 내장된 Compile on-the-fly 기능을 활용해서 런타임 중에 .cs 파일을 읽고
빌드 환경을 구축하여 빌드를 진행한다


Source 폴더 구조


- 타겟 설정 파일들
해당 프로젝트의 빌드할 대상을 지정한다

ex.

{프로젝트명}.Target.cs: 실행 파일 빌드 설정
{프로젝트명}.Editor.Target.cs: 에디터 빌드 설정


- 모듈 설정 파일
해당 모듈을 빌드하기 위한 C++ 프로젝트 설정 정보이다
ex. {모듈명}.Build.cs

 

- 모듈 C++ 소스파일
모듈의 소스코드가 작성된 파일들이다


모듈 제작의 필요성
게임 설정 관련 데이터를 관리하는 코드는 다른 모듈로 분리가 가능하다
언리얼이 C++ 프로젝트를 처음 만들 때 주 게임모듈은 자동 생성해 준다
추가 모듈은 직접 작성해야 하기에 위와 같은 언리얼 빌드 과정을 알아야 한다

PublicDependencyModuleNames vs. PrivateDependencyModuleNames
B 모듈을 A 모듈에 추가한다고 가정할 때,

B 모듈을 A 모듈의 .cpp 파일에서만 사용한다면,

B 모듈을 Private Dependency에 넣으면 된다

반면,

B 모듈을 A 모듈의 .h 파일에서도 사용한다면,

A모듈을 참조하는 나머지 모듈들도 B 모듈의 존재를 알아야 하기 때문에

PublicDependency에 넣어줘야 한다

매크로를 통한 모듈 정의
IMPLEMENT_MODULE(): 일반 모듈
IMPLEMENT_GAME_MODULE(): 게임 모듈
IMPLEMENT_PRIMARY_GAME_MODULE(): 주 게임 모듈
일반적으로 하나의 게임 프로젝트에는 하나의 주 게임 모듈 매크로는 선언해줘야 한다

저작자표시 비영리 변경금지 (새창열림)

'게임 엔진 - 언리얼 > [코드조선] 언리얼' 카테고리의 다른 글

언리얼 Game Data - ActorComponent  (0) 2024.05.17
언리얼 Game Data - GameInstance  (0) 2024.05.17
언리얼 AI - Decorator  (0) 2024.05.16
언리얼 AI - Blackboard Key  (0) 2024.05.16
언리얼 AI - Behavior Tree, Blackboard  (0) 2024.05.16
'게임 엔진 - 언리얼/[코드조선] 언리얼' 카테고리의 다른 글
  • 언리얼 Game Data - ActorComponent
  • 언리얼 Game Data - GameInstance
  • 언리얼 AI - Decorator
  • 언리얼 AI - Blackboard Key
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.