2024.07.23
이번 글에서는 언리얼 엔진 개발자를 위한 Perforce 설정 방법과 설정시에 생기는 각종 문제 해결 방안을 제공합니다. Github 대신 Perforce를 사용해야 하는 이유와 협업 환경에서의 유용성을 설명합니다.
현재 진행 중인 Lena 프로젝트에서 Git LFS data quota가 넘어섰다는 오류가 발생했습니다. 참으로 가슴아픈 상황입니다. 작업 내용을 push할 수도 없고 새로운 브랜치를 만들 수도 없습니다.
푸시 할 수 없음.. |
돈 내... |
그 동안 소프트웨어 개발을 하면서 VCS는 Github만 써왔어서 다른 VCS를 쓸 엄두가 나지 않았는데 Unreal에서 권장하는 VCS인 Perforce를 세팅할 좋은 기회로 생각하고 설정을 해보았습니다.
애초에 디자인 애셋이 추가되면서 용량이 매우 커졌는데, 디자인 애셋을 빼고 올린다고 해도 블루프린트나 다른 로직들이 Github에 올라가면서 무료 data quota를 넘어서게 되었습니다. Github 레포에는 C++ 코드와 간단한 샘플 로직으로 올리고 Perforce에는 실제 프로젝트를 올리는 것으로 결론지었습니다.
그리고 환경 구축 이후에 놀랐던 것은, Multi-User Editing에서 파일을 추가하면, 혹은 수정, 삭제하면 연결되어 있는 다른 클라이언트들의 폴더에도 적용이 된다는 것입니다. 그러니까 어떤 블루프린트를 생성하면 협업하는 사람의 폴더에도 그 블루프린트가 생성이 됩니다. 실시간으로 협업하는 사람이 무엇을 만들고 수정하는지 전부 볼 수 있습니다.
버전관리 엔진입니다. 사진으로 설명 가능합니다.
데이터 컨셉 |
데이터 컨셉 |
기본적으로 소규모, 대규모를 대상으로 만들어졌습니다. 5명 미만의 협업이거나, 혹은 매우 큰 100명 이상의 대규모 협업일 때 사용합니다.
Depot가 많은 것을 해줌 이따 설정하면서도 등장함 |
이 Depot가 마치 Github의 원격 저장소같은 느낌입니다. 현재 내가 가지고 있는 워크스페이스(Git Clone하면 생기는 그 폴더와 같은 개념)에서 어떤 파일을 수정하고 Submit(Github의 푸시)하면 이 Depot의 파일이 변하게 됩니다.
언리얼 공식문서 |
공식문서를 들어가보면 언리얼에서의 협업이라고 알려주면서 Perforce 소스 컨트롤 사용하는 방법에 대해서 설명하고 있습니다.
다운로드 시작 | 여기서 DB의 경로를 설정해주어야합니다. |
서버 초기화 및 설정
워크스페이스 생성
유저 이름, 비밀번호 등 생성하기 | 워크스페이스를 연결하기 |
폴더 추가하기 | 추가 완료 |
Perforce 클라이언트(P4V) 다운로드 및 설치
P4V 실행 및 서버 연결
비밀번호 넣기 |
워크스페이스 설정
프로젝트 파일 추가
언리얼 엔진에서 리비전 컨트롤 로그인하기 |
연결 완료 |
파일이 서버에 반영되지 않는 경우
파일 제출 시 충돌 발생
권한 문제
엔진에 귀속되기는 하지만, 언리얼 엔진에서의 협업이니까 오히려 좋습니다
장단점 |
장단점 |
맥에서의 Perforce |
맥에서도 리비전 정상적으로 가능! |
리비전은 깃허브에서의 Pull이라고 보면 됩니다.