결국 1안은 해외 서버의 한계로 폐지됐다. 2안으로 넘어가자.
2안
고정된 에셋은 Google Drive에, 코드, 블루프린트, 기타 생성물은 Github를 통해 공유한다.
여기서 고정된 에셋은 어떤 것이 있을까?
- Source : 항상 바뀌고, 계속 추가된다.
- Content
- map : 자주 바뀐다.
- Skeletal Mesh : 캐릭터 스켈레탈 메시는 소켓을 추가하는 등의 작업에서 변경된다.
- Static Mesh : 수정할 일이 없......을걸요?
- Rig : 양이 적지만 직접 생성하는 경우가 많고 수정할 일은 적을 것 같다.
- Material : 거의 수정할 일이 없다.
- Texture : 수정할 일이 없다.
- Animation : 가끔 수정할 것 같다.
- Sound : 수정할 일이 없다.
그러면 Static Mesh, Material, Texture, Sound 정도는 따로 보관할 수 있을 것 같다.
이건 유효할까?
Paragon의 Phase 에셋을 기준으로 대략적인 크기를 비교해 보면,
- Sound : 120mb
- Texture : 70mb
- Mesh : 60mb
- Animation : 30mb
- Material : 5mb
정도로 캐릭터 에셋 기준으로는 절반 이상의 용량이 줄어들 것이다.
Gitlab 설치하기
고심 끝에 Perforce 대신 Gitlab을 쓰기로 했다.
Commit을 삭제 못 한다는 것에서 큰 충격을 받았다.
Download and install GitLab | GitLab
위의 설명서를 차차 따라 하면 쉽게 설치할 수 있다.
SSH로 Vultr 서버에 접속한 다음,
먼저 의존성 설치를 하고
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
Gitlab-CE를 다운받는다.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
일단은 EXTERNAL_URL을 https://gitlab.example.com
으로 설정하고 설치한다. (바로 수정할 예정)
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce
Gitlab 설정 파일로 들어가 주소를 수정할 것이다.
sudo vim /etc/gitlab/gitlab.rb
긴 주석이 가득한 문자가 나오는데
external_url 'https://example.gitlab.com'
을
external_url 'http://localhost:8000'
로 수정했다. localhost
나 IP주소
는 http
를 사용해야 한다.
수정을 적용한다.
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
설치가 잘 됐다면 주소창에http://서버IP:8000
를 입력해 Gitlab 웹으로 접속할 수 있다.
ID는 root, 비밀번호는 /etc/gitlab/initial_root_password
에 저장되어 있다.
24시간 후에 비밀번호가 만료되니 접속해서 바꿔준다.
User 탭에서 사용자를 추가할 수 있다.
사용자를 추가하고 Edit에 들어가 임시 비밀번호를 설정해 주면,
사용자는 http://서버IP:8000
로 접속해 로그인할 수 있다.
이제부터는 Github와 똑같다!
.gitignore
로 Sound, Texture, Material, SMMesh (폴더 생성해서 넣을 예정) 폴더를 추가해 줬다.
textures/**
Textures/**
Sounds/**
sounds/**
Materials/**
materials/**
SMMesh/**
결과
기본 프로젝트를 연결하고 Starter Content를 제외한 뒤 push를 했는데
순식간에 업로드가 끝났다.
에셋을 저장할 구글 드라이브도 준비를 끝냈다.
결론
언리얼에서 협업이 힘든 이유는 언리얼 에셋들의 크기가 크지만, 우리가 주로 사용하는 SCM의 서버 네트워크가 크기를 감당하기 힘들어서이다.
더 빠른 네트워크가 보장되지 않는다면 어떤 SCM 소프트웨어를 쓰느냐는 크게 중요하지 않다. (중요하지 않다기보다는 네트워크의 오버로드가 너무 크기 때문일 수도 있다)
이제 진짜 시작해야지...