본문 바로가기

언리얼엔진/Github 깔기

협업시 관리해야할 언리얼 엔진 4 디렉토리에 대하여

이번에는 언리얼 엔진 폴더 구조에 대해서 한번 알아보려고 합니다.
프로젝트 파일을 백업하거나, Git이나 SVN을 사용하여 협업을 할때 어떤 파일을 지우거나 한정하여 관리해야할지 막막했던 상황이 한번쯤은 다들 있으실것 같습니다.
이런 상황을 대처하기 위해서 언리얼 프로젝트 파일이 어떤 구조로 되어있는지 한번 살펴보도록 하겠습니다.
※ 언리얼 엔진 도큐먼트를 보면 여러가지 디렉토리가 있지만, 특별한 세팅없이 생기는 게임 프로젝트 디렉터리만 설명하겠습니다.
언리얼 엔진 디렉터리 구조 도큐먼트 : http://api.unrealengine.com/KOR/Engine/Basics/DirectoryStructure/index.html
깃이나 SVN, 퍼포스 같은 버전관리 툴로 디렉터리를 관리할때는 필수적인 파일만 관리를 해야합니다.
빌드나 컴파일을 통해서 지워도 다시 생기는 부수적인 파일은 올리지 않는것이 기본적인 원칙입니다.
그래서 어떤 파일을 관리해야하고 안해야하는지 한번 알아봅시다.
우선, 언리얼 프로젝트 파일의 디렉토리는 2가지 타입에 따라서 나뉩니다.
  • 블루프린트 기반 프로젝트
  • C++ 기반 소스가 포함된 프로젝트
플러그인은 옵션이므로 없어도 되지만 있다면 무조건 추가해주도록합시다.
두 프로젝트 파일의 가장 크게 다른점은 Source 파일과 Binaries 파일의 유무와 비주얼 스튜디오관련 폴더들 입니다.
먼저 블루프린트 프로젝트부터 살펴보자면
  • Saved : 자동 저장, 로그, 스크린샷 같은 파일들이 저장됩니다.
  • Intermediate : 임시 파일들이 주로 저장이 됩니다. (C++ 같은 경우는 VS 프로젝트 파일이 저장됩니다.)
  • Build : 패키징하면 생기는 파일, 패키징하지않으면 생기지 않습니다.
세가지 폴더를 제외해주셔야합니다. 그러면 남는 파일은 다음과 같고 다음 파일들만 관리해주시면됩니다.
  • 프로젝트명.uproject
  • Config
  • Content
  • Plugins (옵션)
이제 C++ 프로젝트로 넘어가서 보면 일단 위의 블루프린트 기반의 프로젝트와 같이 Saved, Intermediate, Build  폴더는 당연히 제외를 하고, 나머지 비주얼 스튜디오 관련 파일들을 제외를 해주셔야합니다.
코드 프로젝트 같은 경우는 특수한 경우가 있는데 프로그래머와 아티스트가 협업을 하면, 블루프린트 기반의 프로젝트는 상관없지만, 소스 기반의 프로젝트 특성상 바이너리가 없으면 코드를 기반으로 작성된 블루프린트는 파일이 깨집니다.
프로그래머 같은 경우는 소스 코드를 다시 빌드하면 되지만 아티스트의 경우 보통 비주얼 스튜디오가 깔려있지않기 때문에 컴파일이 성공적으로 된 바이너리 파일이 같이 공유가 되어야 합니다.
그래서 바이너리 파일도 관리 목록에 되도록이면 넣어주는게 좋은것 같습니다. 최종적으로 제외가 되는 파일은 다음과 같습니다.
  • Saved : 자동 저장, 로그, 스크린샷 같은 파일들이 저장됩니다.
  • Intermediate : 임시 파일들이 주로 저장이 됩니다. (C++ 같은 경우는 VS 프로젝트 파일이 저장됩니다.)
  • Build : 패키징하면 생기는 파일, 패키징하지않으면 생기지 않습니다.
  • .vs
  • 프로젝트명.sln
위와 같이 파일들을 제외한다면 C++ 프로젝트 파일에서 서로 공유되는 파일들은 다음과 같습니다.
  • 프로젝트명.uproject
  • Config
  • Content
  • Source
  • Binaries
  • Plugins (옵션)
이상 버전관리 시스템을 사용해서 언리얼 엔진 프로젝트를 관리할때 어떤 디렉토리를 지우고 관리해야할지에 대해서 알아보았습니다.
추가적으로 제가 쓰는 .gitignore 파일 목록도 같이 공유합니다.
  • /Saved
  • /Intermediate
  • /.vs
  • /Build
  • *.sln