이 페이지에서는 구독자가 언리얼 엔진 GitHub repository에서 Unreal Engine(UE) 용 소스 코드를 다운로드하고 코드 작업을 시작하는 방법에 대한 자세한 지침을 제공합니다.
https://github.com/EpicGames/UnrealEngine에 있는 repository에 액세스하려면 다음 조건을 충족해야 합니다.
-
에픽게임즈 계정이 있어야 합니다.
-
GitHub 계정이 있어야 합니다.
-
GitHub 내 언리얼 엔진 페이지의 설명에 따라 GitHub 계정과 에픽게임즈 계정을 연동해야 합니다.
언리얼 엔진을 사용하기 위해 소스 코드를 다운로드해야 하는 것은 아닙니다. 단순히 언리얼 바이너리 버전을 다운로드 및 설치하려면 언리얼 엔진 설치하기 문서에서 [언리얼 다운로드] (https://www.unrealengine.com/) 방법을 알아보세요. 그러나 소스 코드에 액세스하는 것은 사용자와 사용자의 프로젝트에 매우 유용할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다.
-
에픽 엔지니어가 매일, 거의 매 순간마다 만드는 모든 최신 기능과 버그 수정에 액세스할 수 있습니다.
-
아직 수정되지 않았지만 프로젝트에 중요한 버그를 발견한 경우, 자신의 소스 코드 버전에서 수정하고 바이너리를 다시 빌드하여 프로젝트 차단을 해제할 수 있습니다.
-
수정 사항과 기능을 에픽에 다시 제출하면 엔진을 개선하고 언리얼 커뮤니티 전체에 도움을 줄 수 있습니다.
언리얼 엔진 라이선시는 공개 GitHub repository 대신 Perforce 서버를 통해 소스 코드에 액세스할 수 있습니다.
GitHub에서 언리얼 엔진 소스 코드에 액세스하기
언리얼 엔진은 풀 C++ 소스 코드 액세스를 제공하므로 언리얼 엔진 전체를 학습하고, 커스터마이징하고, 확장하고, 디버그하며 자유롭게 프로젝트를 완성할 수 있습니다.
에픽의 GitHub 소스 코드 repository는 에픽의 자체 메인 라인에서 기능을 개발하는 동안 지속적으로 업데이트되므로 최신 코드를 얻기 위해 다음 버전 출시까지 기다리지 않아도 됩니다.
언리얼 엔진 소스 코드에 액세스하려면 다음 단계를 따르세요.
-
GitHub로 이동하여 계정을 생성합니다.
-
인증된 에픽게임즈 계정으로 UnrealEngine.com에 로그인합니다. 계정 대시보드를 열려면 사용자 이름(username) 위에 커서를 올리고 드롭다운 메뉴에서 개인(Personal) 을 선택합니다.
-
계정 대시보드를 열고 사이드바에서 연결(Connections) 탭을 선택합니다. 계정(Accounts) 탭을 선택한 다음 GitHub 아이콘 아래의 연결(Connect) 버튼을 선택합니다.
-
아직 언리얼 엔진 최종 사용자 라이선스 계약에 서명하지 않았다면 약관을 읽은 다음 체크 박스를 선택하고 계정 연결(Link Account)을 선택합니다. GitHub 계정에서 로그아웃한 경우에는 '계정 연결' 버튼을 클릭하면 GitHub 로그인 화면으로 이동하게 됩니다.
-
OAuth 앱 인증 프로세스를 완료하려면 에픽게임즈 인증(Authorize EpicGames) 버튼을 클릭합니다. 이 프로세스에 대해 자세히 알아보려면 GitHub의 OAuth 앱 인증 개요를 참조하세요.
-
GitHub의 @EpicGames 조직 가입을 위한 초대 이메일이 GitHub에서 전송됩니다. GitHub 및 에픽게임즈 계정 연결 프로세스를 완료하려면 7일 이내에 초대 이메일에 있는 @EpicGames 가입(Join @EpicGames) 버튼을 클릭해야 합니다.
모든 단계를 완료하면 GitHub 계정과 에픽게임즈 계정이 성공적으로 연결되었다는 확인 이메일이 에픽게임즈에서 전송됩니다. 확인 이메일이 전송되지 않거나 계정에 문제가 있다면 지원센터에서 도움을 받으세요. 이제 에픽의 GitHub 페이지(로그인 필요)에서 전체 소스 코드를 다운로드할 수 있습니다.
소스 코드 브랜치
UE의 소스 코드는 몇 가지 브랜치로 퍼블리싱되어 있습니다.
이름에 dev, staging, test가 포함된 브랜치는 보통 에픽 내부 프로세스용이며 최종 사용자에게는 유용하지 않습니다. 신규 출시 버전이나 핫픽스가 안정화되면 다른 단기 브랜치가 드물게 퍼블리싱될 수 있습니다.
출시 브랜치
출시(Release) 브랜치는 언제나 현재의 공식 출시 버전을 반영합니다. QA 팀이 광범위하게 테스트한 출시 브랜치는 언리얼 엔진을 배우고 자신만의 프로젝트를 만들기 위한 훌륭한 시작점이 됩니다. 저희는 안정적이고 신뢰할 수 있는 출시를 위해 노력하고 있으며 몇 달에 한 번씩 새 출시 버전을 퍼블리싱하는 것을 목표로 합니다.
메인 브랜치
UE에서 가장 활발한 개발은 ue5-main 브랜치에서 이루어집니다. 이 브랜치는 엔진의 최신 출시 버전을 반영하므로 버그가 있거나 컴파일되지 않을 수 있습니다. 이 브랜치를 제공하는 이유는 새로운 기능을 테스트하거나 저희와 발을 맞춰서 개발하고 싶어 하는 개발자를 위해서입니다.
이 브랜치로 작업하고자 하는 경우 현재의 공식 출시 버전과 다음 출시 버전의 브랜치보다 앞서 있을 가능성이 높다는 점에 유의하세요. 따라서 ue5-main 브랜치에서 작동하도록 생성한 콘텐츠와 코드는 향후 공식 출시 버전을 위해 ue5-main에서 직접 새 브랜치를 생성할 때까지 공개 출시 버전과 호환되지 않을 수 있습니다.
로컬 머신에 Perforce 서버 구성하기
UnrealGameSync 와 같은 툴 통합 시 발생할 수 있는 문제를 피하려면, case-insensitive (대소문자를 구분하지 않는) Perforce 서버를 실행할 것을 권장합니다.
Perforce 서버를 실행하는 방법은 P4D 와 P4S, 두 가지입니다. P4D 는 명령줄 인스턴스 실행 동안에만 실행되므로, 보통 현장 관리 작업에만 사용됩니다. P4S 는 P4D 의 서비스 기반 버전으로, 서버의 백그라운드 실행이 가능합니다. 이 서비스는 보통 Perforce 서버 툴 설치시 같이 설치되어 시작됩니다.
가끔 서비스가 자동 실행되지 않을 때가 있습니다. 서비스를 켜려면 먼저 Control Panel -> Administrative Tools ->Services applet 으로 갑니다. 그런 다음 리스트에서 Perforce 서비스를 찾아 시작시킵니다:
서비스 실행 이후에는 P4Admin 을 사용하여 서버에 접속할 수 있습니다. 서버에 처음 접속하는 경우, 초기 접속 대화창에서 새 사용자를 만들면 됩니다:
Perforce 서버 접속 정보를 채운 다음 OK 를 누릅니다. P4Admin 에서 서버에 접속한 이후에는, 매우 쉽게 새 디포나 사용자나 그룹을 만들 수 있습니다. 초기 접속 창에 넣은 정보를 가지고 P4v 와 언리얼 에디터를 사용하여 서버에 접속합니다.
Perforce 의 장단점에 대한 보다 심도있는 정보는 P4Admin Documentation 을 확인해 주시기 바랍니다.
P4 Typemap
디포에 파일 추가를 시작하기 전, 언리얼 파일 유형을 어떻게 처리할지 Perforce 가 알 수 있도록 P4 Typemap 을 구성해 줘야 합니다. Typemap 을 설정하면 Perforce 안에서의 파일 읽기전용 또는 쓰기가능 설정에 영향을 끼칩니다. 아무튼 그 작업을 위해서는, cmd 창을 연 다음 p4 환경 변수를 설정해 줘야 합니다.
p4 set P4USER=your.username
p4 set P4PORT=localhost:1666
위의 사용자명 및 호스트명 부분을 여러분의 사용자명 및 접속 주소로 대체해 주세요. 다음 명령줄을 입력하여 Typemap 을 엽니다.
p4 -P YourPassword typemap
그러면 텍스트 창이 뜨는데, 이게 여러분 서버의 Typemap 입니다. 아래 예제 Typemap 은 저희가 과거 사용했던 것입니다:
# Perforce File Type Mapping Specifications.
#
# TypeMap: a list of filetype mappings; one per line.
# Each line has two elements:
#
# Filetype: The filetype to use on 'p4 add'.
#
# Path: File pattern which will use this filetype.
#
# See 'p4 help typemap' for more information.
TypeMap:
binary+w //depot/....exe
binary+w //depot/....dll
binary+w //depot/....lib
binary+w //depot/....app
binary+w //depot/....dylib
binary+w //depot/....stub
binary+w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk
binary+l //depot/....ubulk
편집 이후 Ctrl+S 키를 눌러 파일을 저장한 다음 닫습니다. 명령줄에 Typemap saved 라고 보일 것입니다.
로컬 네트워크의 서버
사람들이 협업시 사용할 서버를 로컬 네트워크에 구성할 수 있습니다. 그러기 위해서는, 서버에서 위 방법을 따른 뒤 클라이언트에서 서버의 URL 을 사용하여 접속하면 됩니다.
클라우드 제공사
다양한 클라우드 제공사를 활용하면 원격 SVN 서버 운영 및 협업이 가능합니다. 간단히 SVN Hosting 을 검색해 보면 몇 개 찾을 수 있습니다. 각 호스팅 제공사마다 다르지만, 모두 다 서버 접속에 사용되는 접속 정보들로 끝날 것입니다. Perforce 클라우드 제공사 접속 관련 참고사항은, 아래 언리얼 에디터에서 접속하기 부분을 참고하세요.
로컬 워크스페이스 구성하기
Perforce 컨트롤 하의 파일 작업을 위해서는, 로컬에서 파일 관리가 가능하도록 Workspace (워크스페이스) 구성을 해 줘야 합니다. 이 작업은 P4V View 드롭다운의 Workspace 탭을 통해 가능합니다:
새 워크스페이스를 만들려면, 워크스페이스 창에 우클릭한 다음 New Workspace 옵션을 선택합니다. 그런 다음 워크스페이스 이름을 입력하고 로컬 머신에 파일을 저장할 장소, 즉 워크스페이스 루트를 선택합니다.
서버와 워크스페이스가 생긴 이후에는 파일을 추가하면 됩니다. 기본 상태에서는 에디터 외부에서 P4V 를 통해서만 가능합니다. 다른 사람이 이미 만들어 둔 워크스페이스 작업을 하는 경우, 다음 부분으로 건너뛰어도 됩니다. 새 프로젝트를 만들 때 C++ 코드용인지 블루프린트용인지 선택할 수 있습니다. 프로젝트에 C++ 코드를 사용하는 경우, Source/ 디렉터리도 보입니다. 기본적으로는 프로젝트에 다음과 같은 디렉터리가 추가됩니다:
초록 강조된 폴더와 파일은 디포에 추가됩니다. 노랑 Binaries 폴더는 옵션으로, 팀과의 협업이 필요한지에 따라 다릅니다. 반드시 모든 팀원이 에디터/게임을 직접 컴파일할 필요는 없더라도, 초기 추가 에 포함은 되어 있어야 콘텐츠 제작시 디포에서 버전을 받아오는 것이 가능합니다. 참고로 위의 Typemap 구성을 했다면 코더는 바이너리를 읽기 전용 설정할 필요 없이 컴파일 가능합니다.
Perforce 에 파일 추가하기
Perforce 에 파일을 추가하는 방법은 몇 단계로 아주 간단합니다.
-
Perforce 에 파일/폴더 추가를 위해서는, 먼저 P4V 에서 파일/폴더를 선택한 다음 우클릭 후 Mark For Add 옵션을 선택합니다.
-
그러면 기본 Change list 에 파일이 추가됩니다. 추가하는 모든 파일은 Pending (대기중) change list 탭에서 볼 수 있습니다:
-
무언가를 Submit (제출)하려면, 먼저 Change list 에 우클릭한 다음 Submit 을 선택합니다. 그런 다음 설명을 입력하고 Submit 버튼을 클릭합니다.
다른 사람에 의해 이미 시작된 프로젝트 작업을 시작하려는 경우, P4V 를 사용하여 Perforce 에서 최신 리비전을 받아야 합니다. 그 방법은 P4V 의 Depot View 에서 받고자 하는 프로젝트를 찾은 다음 우클릭하고 Get Latest Revision 을 선택합니다. 그러면 위의 워크스페이스 루트로 지정한 위치에 모든 파일이 다운로드됩니다.
언리얼 에디터에서 접속하기
에디터에서 툴바 에 있는 소스 컨트롤 아이콘을 클릭하면 에디터 안에서 바로 Perforce 에 접속 가능합니다:
열린 이후 소스 컨트롤 로그인 창에서 제공사를 Perforce 로 선택한 다음 로그인 정보를 입력합니다. 이미 (현재 프로젝트가 들어있는) 워크스페이스 구성이 된 경우, 로그인 정보는 자동으로 채워질 것입니다.
다수의 클라우드 제공사를 포함한 일부 서버 사용시, 에디터에서 디포에 접근하기 위해서는 Host 와 Password 를 입력해야 할 수도 있습니다. Perforce 로그인 대화창 하단의 고급 칸을 열어보면 입력 가능합니다:
소스 코드 다운로드하기
언리얼 엔진 소스 코드를 다운로드하려면 다음 지침을 따르세요.
계속하기에 앞서 Windows용 Visual Studio 2017 이상 버전이 설치되어 있는지 확인해 주시기 바랍니다.
-
GitHub for Windows 설치 후 repository 를 fork 및 clone 합니다.
명령줄에서 Git 를 사용하는 방법은, Setting up Git 및 Fork a Repo 문서를 참고하세요.
Git 를 사용하지 않으려면, 오른쪽의 'Download ZIP' 버튼으로 소스를 구할 수 있습니다. 내장 Windows zip 유틸리티는 인터넷에서 다운로드한 zip 파일의 내용은 실행하기에 안전하지 않은 것으로 마킹하므로, zip 파일을 우클릭하고 '속성...' 에서 '차단 해제(Unblock)' 한 뒤 압축을 해제해 주세요. 써드 파티 zip 유틸리티는 보통 이런 작업이 필요치 않습니다.
-
Visual Studio 2017 를 설치합니다.
소규모 팀과 인디 개발자들에겐 무료인 Visual Studio Community 2017 포함 모든 Visual Studio 2017 데스크톱 에디션에서 UE4 를 빌드할 수 있습니다. 설치 옵션 중 기본으로 꺼진 옵션인 C++ 지원이 포함되어 있는지 확인합니다.
-
탐색기에서 소스 폴더를 열고 Setup.bat 를 실행합니다.
그러면 엔진의 바이너리 콘텐츠 다운로드 뿐 아니라, 사전 요구사항을 설치하고, 언리얼 파일 연결 구성 작업을 해줍니다. Windows 8 은 SmartScreen 에서 경고가 뜰 수 있습니다. "More info" - "Run anyway" 로 계속합니다.
엔진 바이너리 순수 다운로드 크기는 현재 3-4 gb 로, 완료하는 데 시간이 조금 걸릴 수 있습니다. 그 이후의 체크아웃은 점증식 다운로드만 있으면 되므로, 훨빤 빠릅니다.
-
GenerateProjectFiles.bat 를 실행하여 엔진 프로젝트 파일을 생성합니다. 1 분이 채 안돼서 완료될 것입니다.
-
UE4.sln 파일을 더블클릭하여 Visual Studio 에 프로젝트를 로드합니다. 솔루션 구성을 Development Editor 로, 플랫폼은 Win64 로 설정한 뒤 UE4 타깃에 우클릭하고 Build 를 선택합니다. 시스템 사양에 따라 컴파일이 10-40 분 걸릴 수 있습니다.
-
컴파일이 끝나면, Visual Studio 에서 시작 프로젝트를 UE4 로 설정하여 에디터를 로드한 뒤 F5 키를 눌러 디버깅할 수 있습니다.
-
Mac용 GitHub 를 설치한 뒤 repository 를 fork 및 clone 합니다.
Terminal 에서 Git 를 사용하는 방법은, Setting up Git 및 Fork a Repo 페이지를 참고하세요. Git 를 사용하고 싶지 않으면, 오른쪽의 'Download ZIP' 버튼으로 소스를 바로 다운로드할 수 있습니다.
-
Xcode 최신 버전을 설치합니다.
-
Finder 에서 소스 폴더를 열고 Setup.command 를 더블클릭하여 엔진 바이너리 콘텐츠를 다운로드합니다. 그 후 Terminal 창을 닫아도 됩니다.
소스를 .zip 파일로 다운로드했다면, 개발자를 알 수 없다는 경고가 뜰 것입니다 (GitHub 의 .zip 파일은 디지털 사인 되어있지 않기 때문입니다). 우회법은, Setup.command 에 우클릭하고, Open 을 선택한 뒤 Open 버튼을 클릭하면 됩니다.
-
같은 폴더에서 GenerateProjectFiles.command 를 더블클릭합니다. 1 분이 채 안되어 완료될 것입니다.
-
UE4.xcworkspace 파일을 더블클릭하여 프로젝트를 Xcode 에 로드합니다. 제목줄에서 My Mac 타깃에 대한 ShaderCompileWorker 를 선택한 뒤, 'Product > Build' 메뉴 항목을 선택합니다. Xcode 빌드가 끝나면, My Mac 타깃의 UE4 에 대해서도 같은 작업을 해줍니다. 시스템 사양에 따라 컴파일 시간은 15 - 40 분 정도 걸립니다.
-
컴파일이 끝나면, 'Product > Run' 메뉴 항목으로 에디터를 로드합니다.
저희 개발자와 지원팀은 현재 최신 버전의 Ubuntu를 사용하고 있습니다. 따라서 다른 Linux 배포판(다른 버전의 Ubuntu 포함)에 대한 지원이 제공되지 않을 수도 있습니다.
-
Git 셋업 후 repository 를 fork 합니다. Git 를 사용하고 싶지 않은 경우, 오른쪽의 'Download ZIP" 버튼을 누르면 소스를 zip 파일로 받습니다.
-
소스 폴더를 열고 Setup.sh 를 실행시켜 엔진 바이너리 콘텐츠를 다운로드합니다.
-
크로스 컴파일 및 네이티브 빌드 모두 지원합니다.
크로스 컴파일 은 Windows에서 (Mac도 지원할 계획이 있습니다) 최소한의 번거로운 작업으로 Linux용 게임을 패키징하고자 하는 경우 편리하며, 크로스 컴파일러 툴체인 이 설치되어 있어야 합니다 (자세한 내용은 Linux 크로스 컴파일 페이지 를 참고하세요).
네이티브 컴파일 은 별도의 README 와 커뮤니티 wiki 페이지 에서 찾아볼 수 있습니다.
이 페이지에서는 라이선시가 GitHub의 소스 코드 repository에서 언리얼 엔진을 다운로드하고 빌드하는 방법을 보여줍니다. 언리얼 바이너리 버전을 다운로드하려면 언리얼 엔진 설치 문서에서 언리얼 다운로드 방법을 알아보세요.
추가 타깃 플랫폼
-
Android 지원은 Android NDK가 설치된 경우 설치 스크립트를 통해 다운로드됩니다. Android 퀵스타트 가이드를 참조하세요.
-
iOS 개발에는 Mac이 필요합니다. iOS 퀵스타트 가이드에서 지침을 확인할 수 있습니다.
-
Sony PlayStation, Microsoft Xbox, Nintendo Switch와 같이 액세스가 제한된 콘솔 및 기타 플랫폼에 대한 개발은 해당 서드파티 벤더에 등록된 개발자 계정이 있는 경우에만 가능합니다.
플랫폼에 따라 언리얼 개발자 네트워크 지원 사이트에 추가 문서 또는 가이드가 있거나, 플랫폼에 해당하는 언리얼 엔진 포럼의 섹션에 다운로드 가능한 아카이브가 있을 수 있습니다.
이러한 리소스에 대한 액세스 권한이 없는 경우 먼저 서드파티 벤더로 개발자 계정을 등록하세요. 그런 다음 에픽게임즈 계정 관리자가 있는 경우 해당 관리자에게 문의하거나, 관리자가 없는 경우 언리얼 엔진에 대한 콘솔 개발 요청 양식을 작성하여 제출하세요. 에픽에서 디지털 방식으로 서명할 수 있는 공식 계약서를 보내드릴 것입니다. 승인되면 플랫폼에 대한 소스 코드, 바이너리, 추가 지침에 액세스하는 방법에 대한 지침을 받게 됩니다.
라이선싱 및 기여
GitHub의 언리얼 엔진 액세스 및 사용에는 언리얼 엔진 최종 사용자 라이선스 계약이 적용됩니다. 수시로 개정되는 해당 약관에 동의하지 않으면 언리얼 엔진에 액세스하거나 사용할 수 없습니다.
GitHub의 풀 리퀘스트를 통해 언리얼 엔진 개발에 어떻게 기여하시든 환영합니다. 활발한 개발은 대부분 마스터 브랜치에서 이루어지므로(특히 새로운 기능의 경우) 이 브랜치에서 풀 리퀘스트를 받는 것을 선호합니다. 저희는 모든 새로운 코드가 에픽 코딩 표준을 준수하는지 확인하려고 합니다. 모든 기여에는 EULA 약관이 적용됩니다.
다음 단계
언리얼 엔진을 다운로드하고 구성했다면 소스에서 엔진을 빌드할 준비가 된 것입니다.
각주
새로운 소스 빌드에서 에디터를 처음 시작할 때는 로드 시간이 길 수 있습니다. 엔진이 사용자의 플랫폼에 맞는 콘텐츠를 파생된 데이터 캐시 로 최적화하기 때문이며, 이는 한 번만 수행됩니다.
언리얼 엔진 코드의 프라이빗 포크는 GitHub 계정 권한과 연동되어 있습니다. GitHub 사용자 이름을 구독 취소하거나 전환하는 경우 로컬 사본에서 변경 사항을 다시 포크하고 업로드해야 합니다.