소개
언리얼 엔진으로 빌드한 프로젝트는 일반적으로 아티스트, 디자이너, 엔지니어 간에 긴밀한 협업이 필요합니다. 특히 C++ 코드와 게임플레이 스크립팅의 상호운용을 가능하게 하는 블루프린트 등의 기술을 사용하는 경우 더욱 그렇습니다.
발전을 위한 이러한 노력을 조율하는 것은 다양한 개발자들이 리비전 컨트롤 시스템과 상호작용하는 방식으로 인해 어려울 수 있습니다. 예를 들어 엔지니어는 자체 에디터를 코딩하고 빌드한 다음, 이러한 코드 변경으로 생성한 에셋을 제출해야 할 수 있으며, 아티스트는 코드 IDE를 탐색할 필요 없이 동일한 에셋을 발맞추어 동기화하고 사용할 수 있어야 합니다.
주로 UGS 라는 약어를 사용하는 언리얼 게임 싱크(UnrealGameSync) 는 개발자들에게 Perforce 에서 프로젝트를 동기화하는 통합 프론트엔드를 제공하는 툴로, 콘텐츠 크리에이터와 엔지니어에게 동일한 저장소 뷰를 제공합니다. 엔지니어는 UGS를 사용하여 에셋 편집을 위해 에디터를 올바르게 버전 관리할 수 있으며, 콘텐츠 크리에이터는 UGS를 사용하여 호드의 빌드 자동화 시스템에서 생성한 사전 제작 에디터 바이너리를 동기화할 수 있습니다. UGS의 인터페이스는 프로젝트의 상태 및 최신 CI 빌드 상태에 대한 개요를 제공하며, 다른 툴을 실행하기 위한 출발점 역할을 합니다.
에픽게임즈는 포트나이트와 같은 모든 내부 프로젝트를 개발하는 데 언리얼 게임 싱크를 사용합니다. 언리얼 게임 싱크에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
그래픽 언리얼 게임 싱크 클라이언트는 Windows에서만 사용할 수 있습니다. 명령줄 버전은 MacOS와 Linux에서 사용할 수 있습니다.
전제 조건
- 호드 서버 설치(호드 설치 튜토리얼 참고)
설치(Windows)
- 호드 대시보드에서
툴(Tools) > 다운로드(Downloads)페이지로 이동합니다. UnrealGameSync항목 오른쪽의다운로드(Download)버튼을 클릭하여 다운로드한 인스톨러를 실행합니다.-
설치 후 언리얼 게임 싱크의 자동 업데이트 세팅을 환경설정하라는 메시지가 표시됩니다. '호드(Horde)'를 선택하고 호드 서버에 대한 경로를 입력합니다. 또한 이렇게 하면 언리얼 게임 싱크가 호드의 다른 사용자로부터 빌드 정보와 메타데이터를 가져오도록 환경설정됩니다.
이 환경설정은 나중에 언리얼 게임 싱크 내부에서
옵션(Options) > 애플리케이션 세팅...(Application Settings...)대화창을 사용하여 수정할 수 있습니다. 프로젝트 열기...(Open Project...)를 선택하고 이미 로컬로 동기화한 프로젝트를 선택하거나, 동기화할 프로젝트로 새 워크스페이스를 생성합니다.
설치(Mac)
-
.NET 8 런타임 및 Helix Command Line Tools를 설치합니다.
-
터미널을 열고 다음을 실행합니다.
curl "{{ HORDE_SERVER_URL }}/api/v1/tools/ugs-cmd?action=download" -o ~/ugs.zip unzip -eo ~/ugs.zip -d ~/ugs/ ~/ugs/ugs install source ~/.zshrc -
사용 가능한 명령에 대한 정보는
ugs -help를 실행합니다.
설치(Linux)
-
.NET 8 런타임 및 Helix Command Line Tools를 설치합니다.
-
터미널을 열고 다음을 실행합니다.
curl "{{ HORDE_SERVER_URL }}/api/v1/tools/ugs-cmd?action=download" -o ~/ugs.zip unzip -eo ~/ugs.zip -d ~/ugs/ ~/ugs/ugs install source ~/.bashrc -
사용 가능한 명령에 대한 정보는
ugs -help를 실행합니다.
서버 구성
기본 Perforce 서버
-
전체 팀이 동일한 Perforce 서버를 사용하는 경우, 서버의 globals.json 파일을 수정하여 UGS를 기본값으로 환경설정할 수 있습니다. UGS가 호드 서버를 사용하도록 환경설정되어 있는 한 시작 시 이 프로퍼티를 쿼리합니다.
"parameters": { "ugs": { // UGS를 사용하는 모든 사용자의 기본 Perforce 서버를 설정합니다. "defaultPerforceServer": "perforce:1666" } }
에디터 빌드
언리얼 게임 싱크는 원래 아티스트가 아무런 인프라(예: CI/CD 시스템) 구성 없이 로컬로 코드 변경을 동기화하고 빌드할 수 있는 소규모 팀을 염두에 두고 제작되었습니다. 언리얼 게임 싱크를 계속 이러한 방식으로 사용해도 되지만, 대규모 팀의 경우 호드의 빌드 자동화 시스템 중앙에서 에디터 빌드를 생성하도록 하는 것이 일반적으로 더 쉽습니다.
언리얼 게임 싱크는 사용 가능한 에디터 빌드에 대해 호드를 쿼리합니다(사전 컴파일링된 바이너리(Pre-Compiled Binaries) 즉, PCB라고도 함). 이러한 빌드는 호드 서버에서 자동으로 저장되고 발견될 수 있습니다. 언리얼 게임 싱크의 이전 빌드는 Perforce에서 이러한 바이너리를 zip 파일로 저장해야 했지만, 더 이상 저장이 불필요합니다.
호드의 빌드 자동화 튜토리얼 가이드에서 참조된 예시 스트림 환경설정은 Engine/Build/Graph/Examples/BuildEditorAndTools.xml BuildGraph 스크립트를 사용하여 이러한 바이너리를 컴파일 및 업로드하는 점증식 빌드(Incremental Build) 작업 템플릿이 포함되어 있습니다.
호드에서 프로젝트의 에디터 빌드를 마쳤다면, 옵션(Options) > 사전 컴파일링된 바이너리 동기화(Sync Precompiled Binaries) 옵션에 체크하여 로컬로 빌드하는 대신 다운로드합니다.
배지
BuildGraph <Label> 엘리먼트를 사용하여 UGS에서 바로 호드의 빌드 자동화 시스템의 정보를 표면화할 수 있습니다.