[Perforce] 3. Unreal 프로젝트에서 Perforce 협업 시 겪었던 문제들
Written on January 1st , 2023 by Imeamangryang
6. Unreal 프로젝트를 Perforce 협업하면서 겪었던 문제들
1) 파일 체크 아웃의 문제
Perforce의 기본 설정은 기본적으로 파일 하나를 여러 사람이 동시에 체크 아웃을 할 수 없다.
이러한 점 때문에 협업 시 작업해야 할 파일이 다른 사람이 체크 아웃 중이라는 이유로 제대로 작업이 진행되지 않는 문제가 있었다.
해결법은 간단하다.
여러 사람이 작업하면서 사용할 파일들은 중복으로 체크아웃이 가능하도록 설정해주면 된다.
중복으로 작업이 가능하게 할 파일을 선택하여 Filetype을 바꿔주면 간단히 해결된다.
설정할 수 있는 파일 타입
+m : 로컬 파일 시스템의 파일 타임스탬프는 제출 시 보존되고 동기화 시 복원
+w : 파일은 클라이언트에서 항상 쓰기 가능
+x : 클라이언트에 설정된 비트 실행
+k : RCS 키워드 확장
+ko : ID 및 헤더만 RCS 키워드 확장
+l : 한 번에 한 명의 사용자만 편집 가능
+C : 각 파일 개정판의 전체 압축 버전을 저장
+D : 델타를 RCS 형식으로 저장
+F : 개정당 전체 파일을 압축되지 않은 상태로 저장
+S : 이전 개정판은 새 개정판을 제출하면 저장소에서 제거
만약 .uproejct나 캐릭터, 게임모드와 같은 파일들은 여러 사람이 작업해야하므로 +w를 체크해주면 간단히 해결된다.
2) Perforce 소스컨트롤 사용 시 언리얼 에디터 느려짐 문제
언리얼 5버전으로 프로젝트를 진행하던 도중 어느날부터 갑자기 언리얼 에디터가 매우 느려지는 현상이 있었다. 에디터를 플레이하거나 블루프린트 창을 여닫는 데에도 20~30초의 시간이 소요되는 현상때문에 작업하기가 매우 불편했다.
포럼이나 공식 카페를 찾아봐도 문제가 무엇인지 뚜렷히 알 수는 없었으나 여러 검증을 통해 Perforce와 Unreal 에디터 간 소스 컨트롤 시 어떠한 파일이 체크 아웃되지 않은 상태거나 다른 사람이 체크 아웃된 상태로 작업 시 문제가 발생함을 알 수 있었다.
아마 그 과정에서 자세히는 모르겠지만 Perforce와 언리얼 사이에 통신 과정이 지연을 발생시키는 것이 아닐까 추측한다.
해결법은 의외로 간단했다.
1. 언리얼 에디터 내에서 편집 - 에디터 개인설정 - 소스 컨트롤의 옵션을 수정해주기 & 소스 컨트롤 설정 확인하기
자동으로 체크 아웃을 진행하고 남겨둔 파일을 다른 사람이 사용하면서 꼬이는 경우가 있었는데 이 경우 파일 체크아웃을 잘 관리해주면 된다. 또 가끔 Save파일을 받으면서 소스 컨트롤 설정이 바뀌면서 생기는 문제도 있었다. 소스 컨트롤 설정도 확인해주자.
2. 파일을 읽기 전용에서 해제하기
언리얼 프로젝트는 기본적으로 읽기 전용으로 만들어져 있을 것이다. 이를 해제하면 원인은 모르겠지만 렉이 없어지기는 했다.
단 이 방법을 사용할 경우, Perforce에서 자동으로 체크 아웃이 되지 않고 저장이나 제출할 때 또다른 문제는 야기할 수 있으므로 추천은 하지 않는다.
파일 제출과 저장에만 유의한다면 사용해도 괜찮다.
3) C++ 소스 코드 공유 문제
Perforce는 언리얼 프로젝트에서 C++ 소스 코드까지는 자동적으로 지원하지 않는다. 따라서 에디터 내에서 C++ 코드가 포함된 작업물을 제출하면 Perforce에 반영되지 않는다.
따라서 C++ 코드가 들어간 프로젝트라면 P4V를 실행하여 직접 파일을 Add하여 Submit을 진행하는 것을 권장한다.
4) 큰 크기의 파일을 Revision 혹은 Submit 시 유의 사항
만약 새로운 파일을 공유받는데 파일의 크기가 클 경우 통신 과정에서 연걸이 끊기거나 불안정한 경우, 파일 공유가 중단되는 현상이 있었다.
이를 모르고 작업하다가 서로 커뮤니케이션이 엇나간 적이 있었다.
당연한 말이지만 파일을 주고받을 때, 어떠한 파일들을 주고 받았는지 온전히 공유된 건지 확인하는 작업도 필요할 것이다.