본문 바로가기

볼봇의 코딩 생활/언리얼한 엔진

UE4 SVN 소스 컨트롤 사용 하기

게임은 혼자 만들지 않는다.

 

혼자서 모델링 하고 사운드 만들고 맵 짜고 코딩 하고 UI/UX 디자인은 할 수 없기 때문.

물론, 천재라면 가능하겠지만..

 

필자는 그런 천재가 아니라 다른 친구들의 도움을 받고 있다.

 

현재 둘로 나뉘어, 필자는 C++ 로 게임의 핵심 부분을 작성하고, 친구는 맵에 엑터를 배치하고

라이팅을 하는 등.. 협업을 하고 있다.

 

물론 두명이라면 USB로 프로젝트를 복사해서 전달 할 수도 있고, 변경사항을 카톡으로 알려주면서

나중에 합칠 수도 있지만

 

멋이 없잖아요.

 

언리얼 엔진은 Perforce 와 svn 을 (요즘은 깃도 지원합니다, 다만 베타 버전) 사용 하는데

퍼포스는 유료이며 인디게임 프로젝트에 퍼포스 도입까지는 굳이 필요가 없었으므로

SVN (무료) 를 사용 하기로 했다.

 

SVN 을 서버에 설치 하는것은 쉽기 때문에 생략.

 

Tortoise SVN 설치

https://tortoisesvn.net/downloads.html

 

Downloads · TortoiseSVN

download TortoiseSVN

tortoisesvn.net

 

윈도우 10 기준으로, 아래 사진의 버튼을 클릭하면 다운로드가 진행 된다.

 

 

다운로드 하면 됩니다.

 

필자는 64 비트 os 로 최신 버전인 1.11.1 을 설치 했다.

 

설치 과정은 Next 만 누르면 되니 생략.

 

후원도 할 수 있다.

 

설치를 마쳤다면, SVN Server 에서 새로운 레포지토리를 만들자.

 

필자는 Centos 6.10 에 설치되어있고 상황에 따라 레포지토리를 생성하는방법이 다르니

본인에게 맞는 방법으로 레포지토리를 만들기바란다.

 

레포지토리를 생성 한다.

svnadmin create --fs-type fsfs [Project Name]

 

반드시 fsfs 타입의 레포지토리를 만들어야 한다.

 

레포지토리를 만들었다면, 폴더가 하나 생기는데 해당 프로젝트 폴더내 conf 폴더로 들어가면 아래 파일들이 있다.

파일에 대한 설명을 간략히 하자면.

authz 사용자에 대한 권한 설정
passwd 로그인 가능한 계정 설정
svnserve.conf 이 레포지토리에 대한 설정

 

레포지토리 설정

레포지토리에 대한 설정을 몇가지 바꾸겠다.

vi svnserve.conf

설정을 변경함

anon-access = none
auth-access = write
password-db = passwd

 

각각, 로그인 안된 사용자는 아무 권한 없음.

로그인 된 사용자는 쓰기 가능

password 저장소는 passwd 파일로 한다.

 

저장하고 밖으로 나간다.

 

 

로그인 가능한 계정 만들기

 

이제 로그인 하능한 계정을 만든다.

vi passwd

 

꼴리는대로 쓰자.

 

[계정 ID] = [비밀번호]

 

저장하고 나간다.

 

마지막으로, 권한 설정을 한다.

 

권한 설정

authz 파일을 연다.

vi authz

 

위에 내용은 다 지워도 상관없는듯 하지만 귀찮아서 냅뒀고

[/]
[계정 ID] = rw

 

해당 계정에 rw권한 (읽고 쓰기 권한) 을 준다.

 

이것도 저장하고 나간다.

 

 

 

 

서버단 설치는 마쳤다.

 

 

이제 이 레포지토리에 언리얼 프로젝트를 올려 보자.

 

Working Copy (작업 사본)

SVN컨트롤 하에 있는 파일로 작업을 하기 위해서는, 로컬 머신에 있는 파일 관리가 가능하도록

작업 사본을 구성 해 줘야 한다.

 

이는 아쉽게도 언리얼에서 지원 하지 않고, 위에서 설치한 Tortoise SVN 을 통해서 해야 한다.

(물론 명령줄로도 할 수 있는데 안하는 편이 좋다.)

 

언리얼 프로젝트가 있는 폴더로 이동 한다.

 

출처 http://api.unrealengine.com/KOR/Engine/Basics/SourceControl/SVN/index.html

 

초록색 으로 칠해진 파일들은 반드시 추가 해야 하는 것 들이고, 노란색은 상황에 따라 추가 해야 한다.

나머지는 추가하지 않아도 된다.

 

참고로, 플러그인을 사용하면 Plugins 폴더가 추가 되는데, 이것도 같이 추가 해야 한다.

 

 

 

우클릭 -> SVN Checkout 을 클릭 한다.

 

 

 

URL of repository [SVN 서버의 URL 값]/[레포지토리 이름]
Checkout directory 프로젝트 경로

 

체크아웃 디렉토리 부분에 필요없는 경로가 들어갈 수 있다.

그렇게 되면 체크아웃 버튼이 안뜨기 때문에 한번 확인 하자.

 

 

 

위에서 만든 계정 ID, Password 를 입력 한다.

 

 

Checkout 을 클릭 한다.

 

 

다시 프로젝트로 돌아와, 우클릭을 하면 SVN Commit 버튼이 보인다.

 

이를 클릭 한다.

 

 

위에서 말한것 처럼, 몇몇 제외할 폴더는 제외 하고 모두선택 한다.

 

참고로 400여개 파일을 다 손수 선택하는 엄청난 사람들이있는데, 그럴 필요 없다.

전체 선택 (ctrl + a) 를 하고 하나만 체크 하면 모두 선택 된다 =_= 노가다는 하지 말자.

 

필요 없는 폴더는 루트 하나만 체크 해제 하면 하위 폴더는 모두 해제되니 참고 하자.

커밋 메세지를 적고, OK 를 누르면 서버로 프로젝트가 업로드 된다.

 

 

이제 언리얼 엔진에서 소스 컨트롤을 연결해보자.

 

언리얼 엔진에서 소스 컨트롤 연결

로컬 작업 사본에 체크 아웃을 완료 했다.

이제 언리얼에서 소스 컨트롤을 연결 할 일만 남았다.

 

프로젝트를 열고 소스 컨트롤을 클릭 한다.

 

 

셋팅 수락을 누르면 소스컨트롤에 연결 됨을 확인 할 수 있다.