Dev./게임 네트워크

[TIL_250313_1] 언리얼 소스 코드 빌드하기

raindrovvv 2025. 3. 13. 15:50

💭회고

컴퓨터 용량 부족 문제로 인해 해당 실습은 진행하지 못하고 있는 상태이나... 일단 방법은 정리해두는 편이 좋겠다 생각해서 정리 글을 작성해본다. 소스코드 클론하는 것만으로도 거의 3~4시간이 걸린다고 한다;; (용량은 대략 400GB 😰🥲)

소스 코드 빌드는 단순한 기술적 과정을 넘어 언리얼 엔진의 심층적 이해를 위한 중요한 첫걸음이다. 이를 통해 엔진의 내부 작동 방식을 파악하고, 필요에 따라 맞춤형 기능을 구현할 수 있게 된다. 언리얼 엔진의 소스 코드를 이해하고 수정할 수 있는 능력은 결정적인 경쟁력이 된다고 한다.

🗺️마인드맵

📒학습 내용

🔍 왜 소스 코드 빌드가 필요한가?

소스 코드에 직접 접근함으로써 다음과 같은 이점을 얻을 수 있다:

 

1. 엔진의 내부 작동 방식을 깊이 이해할 수 있다
2. 프로젝트에 필요한 맞춤형 기능을 직접 구현할 수 있다
3. 네트워크 기능, 렌더링 파이프라인 등 핵심 시스템을 분석하고 최적화할 수 있다
4. 데디케이티드 서버와 같은 특수 빌드를 생성할 수 있다


🔧 준비 단계: 필수 프로그램 설치

언리얼 엔진 소스 코드를 빌드하기 위해서는 몇 가지 필수 도구가 필요하다.

1. Visual Studio 2022 설치
Visual Studio 2022는 언리얼 엔진을 빌드하는 데 필요한 주요 도구다. 설치 시 반드시 다음 구성 요소를 포함해야 한다:

- ✅ .NET Multi-Platform App UI 개발
- ✅ .NET 데스크톱 개발
- ✅ C++를 사용한 데스크톱 개발
- ✅ C++를 사용한 게임 개발

📌 언리얼 엔진은 버전별로 다른 C++ 빌드 도구를 요구한다.
- 언리얼 5.2: build tools 14.34
- 언리얼 5.3: build tools 14.36
- 언리얼 5.4: build tools 14.38
- 언리얼 5.5: build tools 14.38 (but... VS 2022와 호환성 이슈 있음)

 

이미 Visual Studio 2022가 설치되어 있다면, Visual Studio Installer에서 '개별 구성 요소'로 이동하여 검색을 통해 다음 항목을 추가해야 한다: MSVC v143 - VS 2022 C++ x64/x86 빌드 도구(v1438-17.8)

2. Windows SDK 설치
빌드 과정에 필요한 `pdbcopy.exe` 파일은 Windows SDK에 포함되어 있다.

[Windows SDK 다운로드 페이지] 최신 버전을 설치한다.

3. Sourcetree 설치
소스 코드 관리를 위해 Sourcetree를 [공식 사이트]에서 다운로드하여 설치한다. 이 도구는 Git 저장소를 쉽게 관리할 수 있게 도와준다.


🔐 GitHub 계정 설정 및 Personal Access Token 생성

Epic Games는 GitHub를 통해 언리얼 엔진 소스 코드를 제공한다. 이를 이용하기 위해 다음 단계를 수행해야 한다.

1. GitHub 계정 생성
1) GitHub 사이트에 접속하여 'Sign up' 버튼을 클릭한다.
2) 이메일, 비밀번호, 사용자명을 입력하고 'Continue' 버튼을 누른다.
3) 인증 과정과 이메일 확인을 완료한다.

2. Personal Access Token 생성

기간 제한 없이 설정한 뒤, 모든 체크 박스에 체크하는 것은 보안상 안 좋은 방법이지만, 개인 계정에 중요한 저장소가 없다면 교육적 목적으로는 편한 방법이다,


1) GitHub에 로그인 후, 우측 상단의 아바타 아이콘 → 'Settings' 메뉴를 클릭한다.
2) 왼쪽 메뉴에서 아래로 스크롤하여 'Developer settings'를 찾아 클릭한다.
3) 'Personal access tokens' → 'Tokens (Classic)'을 선택한다.
4) 'Generate new token' 버튼을 클릭한다.
5) 토큰 이름을 입력하고, 기간을 설정한다. (필요하다면 '만료 없음'으로 설정)
6) 모든 권한에 체크한 후 토큰을 생성한다.

⚠️ Personal Access Token은 비밀번호와 같이 매우 중요한 보안 정보다. 절대 공개된 장소에 저장하지 말고 안전하게 보관해야 한다. 프로젝트가 종료되거나 더 이상 필요하지 않을 경우 토큰을 삭제하는 것이 좋다.

 

생성된 토큰을 안전한 곳에 별도로 기록해둔다. 이 토큰은 다음 단계에서 사용된다.


🎮 Epic Games 계정 연동

GitHub 계정을 생성했다면, 이제 Epic Games 계정과 연동해야 한다.



1. Epic Games 계정 생성

2. GitHub 계정 연동

1) Epic Games에 로그인한 후, 우측 상단의 아이디를 클릭하고 '계정' 메뉴를 선택한다.
2) 왼쪽 메뉴에서 '앱 및 계정'을 선택한다.
3) GitHub 아이콘 아래의 '연결' 버튼을 클릭한다.
4) 'Authorize EpicGames' 버튼을 클릭하여 연동을 완료한다.


3. Epic Games GitHub 초대 수락


1) [Epic Games GitHub](https://github.com/EpicGames) 페이지로 이동한다.
2) 'invitation' 메시지를 확인하고 클릭한다.
3) 'Join Epic Games' 버튼을 클릭하여 초대를 수락한다.
4) [언리얼 엔진 저장소](https://github.com/EpicGames/UnrealEngine)에 접근이 가능한지 확인한다.

📌 Epic Games는 문서화를 철저히 하지 않고 자주 업데이트하는 경향이 있다. 따라서 공식 매뉴얼만 맹목적으로 따르기보다는 커뮤니티 정보를 함께 참고하는 것이 좋다. 특히 새 버전(예: 5.5)이 출시될 때마다 빌드 방법이 변경될 수 있으므로 주의해야 한다.

📥 Sourcetree로 언리얼 엔진 소스 코드 클론하기

이제 Sourcetree를 사용하여 언리얼 엔진 소스 코드를 로컬 컴퓨터로 가져온다.

1. Sourcetree 설정
1) Sourcetree 사이트에서 프로그램을 다운로드하고 설치한다.
2) 계정 설정을 완료하고, 새 탭을 생성한다.

2. 저장소 클론
1) 탭에서 'Clone' 버튼을 클릭한다.
2) URL 필드에 다음과 같은 형태로 주소를 입력한다:

https://{개인토큰}@github.com/EpicGames/UnrealEngine.git


3) 탭 키를 누르면 "This is a Git repository" 메시지가 표시된다.
4) 로컬 저장 경로를 설정하고 'Clone' 버튼을 클릭한다.

⚠️ 언리얼 엔진 소스 코드는 용량이 매우 크다(약 400GB 이상). 충분한 디스크 공간과 빠른 인터넷 연결을 확보해야 한다. 소스 코드를 클론하는 데에는 네트워크 속도에 따라 수 시간이 소요될 수 있으므로, 여유를 갖고 진행하는 것이 좋다.

🛠️ 언리얼 엔진 소스 코드 빌드하기

소스 코드를 받았다면, 이제 빌드 과정을 시작한다. ( + 엔진을 수정하여 별도의 기능을 구현해야 하거나, 빌드 자동화 환경(예: Jenkins)을 구축해야 하는 상황이 현재는 불필요하기에, 커맨드로 빌드 하는 부분은 건너뛰어도 무방)

1. 초기 설정 스크립트 실행

1) 관리자 권한으로 명령 프롬프트(CMD)를 실행한다.
2) 언리얼 소스가 저장된 경로로 이동한다.


3) `Setup.bat` 스크립트를 실행한다:
➡️ D:\UE5> Setup.bat


4) 설정이 완료되면 `GenerateProjectFiles.bat` 스크립트를 실행한다:
➡️ D:\UE5> GenerateProjectFiles.bat

2. 언리얼 엔진 빌드 방법

방법 1: Visual Studio를 통한 빌드


1. 생성된 `UE5.sln` 파일을 더블 클릭하여 Visual Studio에서 연다.
2. 솔루션 구성은 'Development Editor', 플랫폼은 'Win64', 시작 프로젝트는 'UE5'로 설정한다.
3. 'UE5' 프로젝트에서 마우스 우클릭하고 '빌드'를 선택한다.

방법 2: 명령줄을 통한 빌드 (권장)
1. 관리자 권한으로 명령 프롬프트를 실행한다.
2. 소스 코드가 저장된 경로로 이동한다.
3. 다음 명령을 실행한다:

D:\UE5> Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:HostPlatformOnly=true -set:WithDDC=false

3. 빌드 결과 확인

빌드가 성공적으로 완료되면 다음과 같은 구조로 결과물이 생성된다:

D:\UE5\LocalBuilds\Engine\Windows\Engine\Binaries\Win64\UnrealEditor.exe

이 경로에서 `UnrealEditor.exe` 파일을 더블 클릭하여 실행하면, 셰이더 컴파일 과정을 거친 후 언리얼 에디터가 실행된다.

➡️ 최초 실행 시 셰이더 컴파일 과정이 오래 걸릴 수 있다. 이는 정상적인 과정이며, 이후 실행 시에는 훨씬 빠르게 로딩된다. 하지만 엔진 버전이 업데이트되거나 그래픽 드라이버가 변경될 경우 다시 셰이더를 컴파일해야 할 수 있다...


언리얼 엔진 네트워크 기능 살짝 짚고 넘어가기

언리얼 엔진은 다양한 네트워크 기능을 제공하며, 이를 통해 멀티플레이어 게임을 구현할 수 있다. 소스 코드 빌드를 마쳤다면, 이제 다음 단계로 네트워크 기능을 살펴보자.


1. RPC와 브로드캐스팅

- RPC(Remote Procedure Call): 클라이언트와 서버 간에 함수를 원격으로 호출하는 메커니즘이다. 언리얼에서는 `UFUNCTION` 매크로와 함께 `Server`, `Client`, `NetMulticast` 키워드를 사용하여 RPC를 구현한다.

- 브로드캐스팅 : 특정 이벤트나 상태 변화를 여러 클라이언트에게 동시에 전파하는 기능이다. `NetMulticast` RPC를 통해 구현할 수 있다.

2. 서버 유형 이해하기

언리얼 엔진은 두 가지 주요 서버 유형을 지원한다:

1. 리슨 서버(Listen Server): 하나의 클라이언트가 서버 역할도 함께 수행하는 형태다. 일반적으로 소규모 멀티플레이어 게임이나 협동 게임에 사용된다.

2. 데디케이티드 서버(Dedicated Server): 클라이언트와 완전히 분리된 독립 서버다. 대규모 멀티플레이어 게임에 적합하며, 그래픽 렌더링 없이 게임 로직만 처리하므로 리소스 효율이 높다.

💡 개발 초기 단계에서는 리슨 서버를 사용하여 빠르게 프로토타입을 만들고 테스트하는 것이 효율적이다. 그러나 상용 서비스를 위해서는 안정성과 성능을 고려하여 데디케이티드 서버로 전환하는 것이 일반적이다.


🟣오늘의 옵시디언 현황