[UE5] 언리얼 엔진 협업을 위한 Perforce 설정 및 문제 해결 가이드: Github 대신 Perforce를 써야 하는 이유

ChangJin·2024년 7월 22일
0

Unreal Engine5

목록 보기
86/114
post-thumbnail

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에서 파일을 추가하면, 혹은 수정, 삭제하면 연결되어 있는 다른 클라이언트들의 폴더에도 적용이 된다는 것입니다. 그러니까 어떤 블루프린트를 생성하면 협업하는 사람의 폴더에도 그 블루프린트가 생성이 됩니다. 실시간으로 협업하는 사람이 무엇을 만들고 수정하는지 전부 볼 수 있습니다.

Perforce가 무엇인가?

버전관리 엔진입니다. 사진으로 설명 가능합니다.

데이터 컨셉
데이터 컨셉

기본적으로 소규모, 대규모를 대상으로 만들어졌습니다. 5명 미만의 협업이거나, 혹은 매우 큰 100명 이상의 대규모 협업일 때 사용합니다.

Depot가 많은 것을 해줌 이따 설정하면서도 등장함

이 Depot가 마치 Github의 원격 저장소같은 느낌입니다. 현재 내가 가지고 있는 워크스페이스(Git Clone하면 생기는 그 폴더와 같은 개념)에서 어떤 파일을 수정하고 Submit(Github의 푸시)하면 이 Depot의 파일이 변하게 됩니다.

언리얼 공식문서

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/collaboration-and-version-control-in-unreal-engine

공식문서를 들어가보면 언리얼에서의 협업이라고 알려주면서 Perforce 소스 컨트롤 사용하는 방법에 대해서 설명하고 있습니다.

초기 설정

서버 설정

  1. Perforce 서버 다운로드

  1. Perforce 서버 설치
    • 다운로드한 설치 파일을 실행하여 Perforce 서버를 설치합니다.
    • 설치 후 서버 설정을 완료하고, 기본 관리자 계정을 생성합니다.
다운로드 시작 여기서 DB의 경로를 설정해주어야합니다.
  1. 서버 초기화 및 설정

    • 서버 초기화 후 서버 설정 가이드를 참고하여 기본 설정을 완료합니다.
    • 스트림 디포 생성 및 관리자 계정 설정 방법은 여기를 참고하면 됩니다.
  2. 워크스페이스 생성

    • 관리 콘솔 또는 명령줄 도구를 사용하여 첫 번째 워크스페이스를 생성합니다.
    • 워크스페이스와 스트림을 연결하여 파일을 관리할 준비를 합니다.
유저 이름, 비밀번호 등 생성하기 워크스페이스를 연결하기
폴더 추가하기 추가 완료

클라이언트 설정

  1. Perforce 클라이언트(P4V) 다운로드 및 설치

  2. P4V 실행 및 서버 연결

    • P4V를 실행하고 서버 주소, 사용자 이름, 패스워드를 입력하여 서버에 연결합니다.
비밀번호 넣기
  1. 워크스페이스 설정

    • P4V에서 'New Workspace'를 선택하여 워크스페이스를 설정합니다. 로컬 경로와 서버 경로를 매핑합니다.
  2. 프로젝트 파일 추가

    • 로컬 워크스페이스에 있는 언리얼 엔진 프로젝트 파일을 Perforce 서버에 추가합니다. P4V에서 파일을 선택하고 'Mark for Add'를 선택한 후, 'Submit'을 통해 서버에 반영합니다.
언리얼 엔진에서 리비전 컨트롤 로그인하기
연결 완료

사용하면서 문제

동기화 문제

  1. 파일이 서버에 반영되지 않는 경우

    • 워크스페이스 설정이 올바른지 확인합니다.
    • 클라이언트와 서버 간 네트워크 연결 상태를 점검합니다.
    • P4V에서 'Get Latest Revision'을 선택하여 최신 파일을 동기화합니다.
  2. 파일 제출 시 충돌 발생

    • 충돌 해결을 위해 'Resolve' 옵션을 사용하여 충돌을 수동으로 해결하고, 다시 제출합니다.
  3. 권한 문제

    • 파일 또는 디렉터리에 대한 접근 권한을 확인하고 필요한 경우 관리자에게 권한 요청을 합니다.

Perforce 사용이 Github보다 나은 이유

  • 엔진에 귀속되기는 하지만, 언리얼 엔진에서의 협업이니까 오히려 좋습니다

    장단점
    장단점

mac OS

맥에서의 Perforce
맥에서도 리비전 정상적으로 가능!

리비전은 깃허브에서의 Pull이라고 보면 됩니다.

참고 자료

profile
게임 프로그래머

0개의 댓글