이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.
지난 한 달 동안 지금 당장 해결해야 하는 긴급한 문제를 해결하기 위해 하던 일을 중단하고 행동에 나서야 했던 적이 몇 번이나 있었나요? 가장 흔한 게임 개발의 함정 중 하나는 사소해 보이는 작은 비효율성을 방치하여 더 큰 문제로 키우는 것입니다.
프로젝트 파일이 다운로드되기를 기다리거나 또 다른 병합 충돌을 해결하는 등 하루에 여러 번 흐름 상태가 중단되는 경우, 바로 그때부터 문제가 발생하기 시작합니다. 버그가 코드에 침투하기 시작합니다. 배포 주기가 길어집니다. 밤샘 근무가 일상화되었습니다. 실수를 할 때마다 마찰이 쌓이고 곧 팀 전체에 퍼집니다. 좌절감이 커지고 사기가 떨어지기 시작하며 스튜디오의 업무 방식이 더 이상 통하지 않는다는 것이 분명해집니다.
DevOps 솔루션을 구현하면 이러한 혼란스러운 주기를 끊는 데 도움이 될 수 있습니다. 올바른 프로세스를 구축하면 여러분과 팀원 모두가 업무 전환에 소요되는 시간을 줄이고 최고의 결과물을 만드는 데 필요한 집중력을 되찾을 수 있습니다. 잘 정의된 운영 원칙과 올바른 도구 세트를 통해 협업을 개선하고 배포 주기를 단축할 수 있습니다. 크런치를 최소화하면서 완성도 높고 안정적인 게임을 제때, 좋은 품질로 출시할 수 있습니다.
유니티는 지난 수년간 수많은 게임 개발사 및 스튜디오와 협력해 왔으며, 유니티 팀의 많은 전문가가 직접 게임 개발자로 활동하고 있습니다. 경험상 버전 관리 시스템 (VCS)은 효과적인 DevOps를 위한 기반이지만, 스튜디오의 가장 큰 고민거리 중 하나이기도 합니다. 이는 우연이 아닙니다.
이 전자책에서는 스튜디오가 가장 잘하는 일인 제작을 방해하는 가장 일반적인 버전 관리 함정 세 가지에 대한 제품 및 엔지니어링 팀의 인사이트를 모았습니다. 릴리스 일정을 방해하는 숨겨진 생산성 함정과 Unity DevOps의 버전 관리 컴포넌트와 같은 VCS 솔루션이 어떻게 정상 궤도에 복귀하는 데 도움이 되는지 알아보세요.
문제 #1: 병렬 개발
상황: 하나의 프로젝트, 여러 워크플로
한 팀으로 구성된 팀이 아니라면 여러 팀원이 같은 프로젝트에서 작업하게 됩니다. 여분의 인력이 있으면 분명 빠른 속도로 확장하는 데 도움이 될 수 있지만, 작업 속도가 느려질 수도 있습니다.
병렬 개발은 여러 팀원이 여러 브랜치에서 작업하는 경우 나중에 병합할 수 있는 기능입니다. 코더는 일반적으로 이러한 방식으로 작업하는 반면 아티스트는 개별 파일과 에셋을 다루기 때문에 잠금 기능이 있는 단일 브랜치에서 작업하는 경향이 있습니다.
비용: 다시는 되돌릴 수 없는 시간
생산성에 미치는 영향은 분명하고 막대합니다: 엄청난 시간 낭비.
작업을 다시 실행하고, 병합 충돌을 해결하고, 손실된 파일을 추적하거나, 이미 커밋한 변경 사항을 다운로드할 때까지 기다려야 하는 생산성 저하로 인해 출시 주기가 느려지고, 팀원 간의 내부 갈등이 발생하며, 사용자가 게임에서 발견하는 버그를 신속하게 수정할 수 없게 됩니다.
문제입니다: 업무 손실과 내부 갈등
혼자서 게임 개발을 하는 경우에도 VCS를 사용하면 이점이 있지만, 여러 팀원과 함께 작업할 때는 반드시 필요합니다.
버전 관리를 사용하지 않으면 개발자가 서로의 코드를 덮어쓰는 상황이 발생하여 작업 손실과 많은 좌절감을 초래할 수 있습니다. 하지만 오늘날 일반적인 VCS 툴을 사용하더라도 게임 개발 팀에는 문제가 발생합니다.
예를 들어 팀 전체가 Git을 사용하는 경우 가장 일반적인 시나리오 중 하나는 아티스트와 같은 비기술적인 팀원 중 일부가 이 도구를 완전히 이해하지 못하는 경우입니다. 특히 파일을 잠그는 기능이 없으면 변경 내용을 쉽게 잃어버릴 수 있습니다. 또한 시스템이 투명하지 않고 따라하기 쉽지 않기 때문에 문제 해결을 위해 개발자에게 과도하게 의존하는 경우가 많아 업무 손실이 더 커집니다.
Git은 파일을 잠글 수 없기 때문에 많은 게임 개발팀은 팀 전체에서 Perforce를 사용하여 하나의 단일 시스템과 소스를 고수합니다. 그러나 개발자는 분기 및 병합에 대한 Perforce의 "작업 스트림" 접근 방식의 속도와 성능에 불만족할 수 있습니다. 이는 특히 지속적 통합을 설정할 때 이미 복잡한 프로세스에 또 다른 복잡성을 추가할 수 있습니다. 저희와 대화하는 대부분의 크리에이터는 Perforce로 작업 기반 개발을 시도하지 않을 것이라고 말합니다. 이상적인 워크플로는 아닙니다.

Goodbye Volcano High, KO_OP 제작
해결책: 일관된 프로젝트 구성
파일 정리와 같은 일에 대한 명확한 규칙을 정하고 이를 널리 공유하면 팀의 업무 효율을 유지할 수 있습니다.
또한 팀원 모두에게 적합한 VCS를 선택하는 것이 좋습니다. 예를 들어 아티스트는 프로그래머에게 의존하지 않고 독립적으로 프로젝트에 기여할 수 있어야 합니다. 누구나 쉽게 사용할 수 있는 버전 관리 시스템을 구현하면 프로젝트 파일을 변경하는 것이 덜 부담스러워집니다.
몬트리올에 본사를 둔 스튜디오 KO_OP는 게임 굿바이 볼케이노 하이를 제작하면서 아티스트와 프로그래머 간의 비대칭성과 잘못된 의사소통 문제를 해결했습니다. 올바른 VCS를 구현하여 진행을 방해하는 문제를 해결한 방법을 알아보세요.
문제 #2: 중복 도구 및 사일로
상황: 다양한 역할, 다양한 도구
UTeams는 일반적으로 단일 버전 관리 솔루션으로 시작한 후 문제가 발생하면 여러 시스템으로 이동합니다. 근본적으로 개발자와 아티스트는 코드와 바이너리로 작업하기 때문에 서로 다른 워크플로가 필요합니다. 결과적으로 팀은 아티스트는 Perforce와 같은 도구로 작업하고 개발자는 GitLab 또는 GitHub에서 작업하게 됩니다.
비용: 보상 없이 두 배의 작업량
게임 개발에서는 새로운 아이디어를 빠르게 반복하고 테스트하기 위해 매 순간이 중요합니다. 동기화 또는 병합 충돌과 같은 시간 낭비적인 문제를 해결하기 위해 여러 버전 관리 도구를 사용하는 경우가 많지만, 이러한 문제를 더욱 복잡하게 만들거나 다른 낭비를 초래할 수 있습니다. 예를 들어, 양방향 통합 없이 새로운 프로세스나 워크플로를 만드는 데 소요되는 시간이나 두 시스템을 유지 관리하는 데 드는 재정적 비용이 증가할 수 있습니다.
문제입니다: 더 많은 워크플로, 더 많은 이슈, 더 많은 유지보수
좀 더 자세히 설명하자면, 팀은 보통 Perforce 또는 Git 기반(예: GitLab/GitHub)으로 시작하여 각각의 고유한 워크플로에서 발생하는 문제를 처리합니다. 퍼포스에서는 분산 작업과 임시 브랜치 기능을 사용할 수 없게 됩니다. Git을 사용하면 분산된 작업으로 인해 파일 저장소 관련 문제에 직면하게 됩니다. 팀은 Git LFS(대용량 파일 저장소)를 사용하여 컴퓨터에 한 가지 버전의 바이너리만 저장할 수 있지만 속도가 느려지고 중앙 집중식인 것처럼 보이지만 그렇지 않은 혼란스러운 워크플로우가 발생하게 됩니다.
여러 솔루션을 사용할 때 스튜디오가 직면하게 되는 두 가지 일반적인 문제가 있습니다. 첫 번째는 프로젝트에 대해 두 가지 유형의 버전 관리 기술을 유지하는 것인데, 일반적으로 이 두 가지를 통합하기 위한 번거로운 워크플로 또는 프로세스가 포함됩니다. 두 번째는 지식과 교육에 중점을 둡니다. 매우 다른 두 가지 시스템에서 문제가 발생했을 때 크리에이터 또는 팀 전체를 차단 해제하려면 두 시스템에 모두 능통한 전문가가 필요합니다.

Alt Shift의 크라잉 선스
해결책: 툴체인 평가 및 최적화
이상적으로는 모든 자산이 동일한 버전 관리 시스템에서 관리되고 버전이 관리되며, 팀의 다양한 요구 사항에 맞게 워크플로우가 조정되는 것이 좋습니다.
프로세스와 툴을 검토한 다음 스튜디오에 적합한지 여부를 결정하는 것이 중요합니다.
이렇게 하면 스튜디오에서 팀 간에 에셋을 전송하기 위해 서로 다른 파이프라인을 만들어야 하는 일반적인 골칫거리를 많이 피할 수 있습니다.
여러 워크플로우를 수용할 수 있거나 시스템 간에 강력한 통합 기능을 갖춘 단일 VCS를 사용하여 누가 어떤 작업을 하고 있는지, 각 자산의 최신 버전을 추적할 수 있도록 하는 것이 좋습니다.
버전 관리 시스템을 평가할 때 고려해야 할 사항에 대해 알아보면서 시작하세요.
문제 #3: 커밋하기에는 너무 큰 규모
상황: 프로젝트 파일을 자주 업데이트해야 합니다.
대용량 파일과 바이너리로 작업하는 것은 게임 제작의 고유한 요소 중 하나이지만 버전 관리에 문제가 발생할 수 있습니다. Git으로 작업하는 개발자가 코드를 체크인하려고 한다고 가정해 보겠습니다. 그러려면 먼저 다른 팀원들의 최신 변경 사항으로 작업 공간을 업데이트해야 합니다(당기기와 밀기에 해당).
비용: 더 많은 시간 낭비
업데이트가 다운로드되기를 기다리는 시간은 낭비되는 시간입니다. 그 시간이 합쳐집니다. 더 빠른 시스템을 통해 팀은 프로젝트가 중단되는 도구 없이 작업 완료에 집중할 수 있습니다.
문제입니다: 워크플로 중단
일부 버전 관리 시스템은 대용량 바이너리로 작업할 때 매우 느립니다. 업데이트를 클릭한 순간부터 체크인을 하고 마침내 일상으로 돌아갈 수 있는 순간까지 5분을 기다려야 한다면 얼마나 답답한 일인지 상상해 보세요.
게임 개발에서는 빠르게 움직여야 합니다. 파이프라인 초기 단계의 비효율성으로 인해 게임 내 변경 사항을 구현하거나 버그에 대응하는 데 너무 오랜 시간이 걸리면 나중에 이러한 문제가 더욱 악화될 수 있습니다.
많은 스튜디오에서 Perforce 또는 Git LFS와 같은 솔루션을 사용하여 대규모 바이너리 에셋 문제를 해결하지만, 왼쪽에 설명된 것과 동일한 타협점을 가지고 있습니다.

Return to Nangrim, Sycoforge 제작
해결책: 파일 기반 버전 관리 사용
파일 기반 VCS를 선택하면 작업 속도를 크게 높일 수 있습니다.
이러한 시스템을 사용하면 기여자는 전체 프로젝트가 아닌 변경이 필요한 파일만 다운로드할 수 있습니다. 훨씬 빠르고 안전하지만, 모든 사람이 같은 방식으로 파일을 정리해야 진정한 효과를 발휘할 수 있습니다.
버전 관리 솔루션을 선택할 때 미리 생각해 두면 나중에 골치 아픈 일을 많이 줄일 수 있습니다. 게임은 점점 더 커지고 복잡해지고 있으므로 올바른 버전 관리 시스템을 빨리 도입할수록 지속적인 성공을 위한 더 나은 환경을 구축할 수 있습니다.
게임 리턴 투 낭림을 통해 반복 개발에 대한 Sycoforge의 접근 방식과 Unity 버전 관리가 프로젝트의 확장 범위에 적응하는 데 어떻게 도움이 되었는지 알아보세요.
게임 개발용 Unity 버전 관리
버전 관리는 데브옵스의 기본이지만 게임 스튜디오에서 갈등의 핵심 원인이기도 하며, 모든 기여자에게 진정으로 적합한 솔루션은 많지 않습니다. 유니티 데브옵스의 버전 관리는 이러한 시간 낭비 문제를 해결하기 때문에 게임 개발자를 지원할 수 있는 독보적인 위치에 있습니다. 경쟁사와의 비교는 다음과 같습니다.

병렬 개발
병렬 개발을 효과적으로 촉진하는 것은 필수이며, 팀원마다 선호하는 방식이 다를 수 있습니다. 특히 개발자들이 가장 많이 사용하는 버전 관리 시스템으로 GitHub, GitLab 또는 BitBucket과 같은 Git 기반 도구가 있습니다. Git의 인기로 인해 사용자들은 강력한 사용자 개선 사항, 통합 및 상호 운용성에 액세스할 수 있습니다. 그러나 팀과 프로젝트 규모가 커짐에 따라 많은 대형 및 AAA 게임 스튜디오에서는 아티스트와 비기술적인 사용자를 더 잘 수용하면서 대용량 바이너리 에셋을 처리하기 위해 퍼포스 같은 중앙 집중식 워크플로 솔루션을 사용하고 있습니다.
개발자를 위한 강력한 브랜칭 및 병합 기능과 아티스트를 위한 중앙 집중식 작업 및 파일 잠금 기능으로 인해 Unity 버전 관리와 같은 시스템이 도움이 될 수 있습니다. Unity 에디터에서 작업하는 경우 버전 관리와 Unity UI의 원활한 통합을 통해 협업을 촉진할 수 있습니다.
중복 도구 및 사일로
아티스트와 프로그래머는 일반적으로 버전 관리 사용 방식에 대한 선호도가 다를 수 있지만, 어느 쪽이든 과도한 수정의 장단점을 파악하는 것이 중요합니다. 특히 원격으로 작업할 때 단일 버전 관리 시스템과 '신뢰할 수 있는 소스'가 있으면 여러 개의 다른 파이프라인을 유지 관리할 때 발생하는 많은 좌절과 시간 낭비를 줄일 수 있습니다.
다양한 장단점이 있지만 GitHub, Perforce, 심지어 Dropbox나 Google Drive와 같은 많은 시스템을 워크플로우에 맞게 설정할 수 있습니다. 일부 협업 문제를 줄이는 데 도움이 되는 통합 또는 확장 기능을 찾거나 모든 당사자를 위해 설계된 단일 시스템을 선택하세요.
Unity 버전 관리에서는 다양한 모드에서 단일 리포지토리로 작업할 수 있습니다. 이 기능을 사용하면 서로 다른 두 시스템을 유지 관리하고 연결하는 번거로움 없이 여러 워크플로의 강력한 기능을 사용할 수 있습니다.
Unity 버전 관리에서 아티스트는 Gluon UI를 사용하여 중앙 집중식 모드에서 리포지토리로 작업할 수 있으므로 Perforce와 같은 솔루션으로 작업하는 것과 동일한 스타일을 시뮬레이션할 수 있습니다. 개발자는 기본 UI를 사용하여 분산 모드에서와 같이 리포지토리로 작업할 수 있으므로 GitHub 또는 GitLab과 같은 Git 기반 솔루션과 동일한 워크플로우를 시뮬레이션할 수 있습니다.

커밋하기에는 너무 큰 규모
게임 개발은 대규모 프로젝트와 함께 작업하는 것을 의미합니다. 스튜디오의 규모에 따라 소스 제어 관리 시스템도 확장할 수 있어야 합니다.
Git의 분산 모델은 게임 개발 사용 사례를 위해 설계된 것은 아니지만, Git이 바이너리 파일을 더 쉽게 처리할 수 있도록 설계된 몇 가지 확장 기능이 있으며, 가장 널리 사용되는 것은 Git-LFS입니다. 하지만 Git은 아트 에셋 관리를 염두에 두고 설계된 것이 아니기 때문에 Perforce와 같은 다른 솔루션은 대형 스튜디오에서 주로 구현됩니다.
Unity 버전 컨트롤은 대용량 파일을 처리하는 데 있어 시중에서 가장 성능이 뛰어난 솔루션으로, 게임 개발에 이상적입니다. 파일 로드를 기다리는 다운타임을 크게 줄여주는 Unity 버전 관리는 다른 솔루션보다 최대 5~8배 빠릅니다. 여전히 동일한 콘텐츠를 다루고 있지만, 이제는 하루에 여러 번 5분 다운로드를 기다리지 않아도 됩니다. 대신 몇 초 만에 필요한 정보를 얻을 수 있습니다.
제약 없는 제작
Unity 버전 관리는 게임 개발을 위해 특별히 설계되어 모든 규모의 스튜디오에서 아티스트와 개발자를 지원합니다. 아티스트에게는 파일 기반 워크플로와 직관적인 UI를, 프로그래머에게는 강력한 브랜칭 및 병합 기능을 제공하여 모든 사용자가 향상된 협업 및 반복 민첩성의 이점을 누릴 수 있도록 지원합니다.
Unity 버전 관리는 복제된 저장소 없이 작업을 중앙 집중화하며, 빠르고 WAN에 최적화된 데이터 전송을 통해 대용량 파일과 저장소를 지원합니다. 글루온 워크플로 도구를 사용하면 기술 수준이 낮은 팀원도 모든 버전 관리 프로토콜을 쉽게 적용할 수 있습니다.
Unity DevOps로 워크플로 속도를 높이고 DevOps 툴체인을 구축하세요. 타협 없이 제작하고 효율적으로 작업하여 기대하는 품질로 적시에 시장에 출시할 수 있습니다. 지금 무료로 시작하세요.
전자책 다운로드
양식을 작성하고 업계 전문가들이 전하는 인사이트와 솔루션을 확인해 보세요


