지난 달에는 Unity가 제공하는 DevOps 솔루션의 비전에 대해 공유했습니다. 그 중심에 있는 Plastic SCM은 유니티의 계획과 투자의 기반으로 DevOps 서비스로 확장하고 다양한 규모의 팀 간 협업을 개선합니다. Plastic 웹 경험에 포함된 최신 기능을 자세히 알아보세요.
곧 출시될 베타에 참여하여 심도 있게 통합된 새로운 역할 기반 워크플로와 코드 리뷰, 사용자 및 사용자 그룹 관리 등을 미리 이용해 보시기 바랍니다. 이러한 기능을 이용하면 팀원들을 서로 연결하고, 실시간 콘텐츠 크리에이터의 생산성을 향상할 수 있습니다. 사용자 피드백 덕분에 유니티는 게임 개발과 RT3D 분야에서 버전 관리의 미래를 계속 설계할 수 있게 되었습니다. 이번 포스팅에서는 유니티에서 진행 중인 작업을 소개합니다. 참고로 해당 기능은 현재 개발 중이며 향후 피드백에 따라 변경될 수 있습니다.
시나리오
협업 과정에서 일어날 수 있는 문제와 이번 기능을 통한 해결 방안을 설명하기 위해 Saver Studios라는 가상의 게임 개발 팀을 중심으로 하는 시나리오를 만들었습니다. 이번 예시에서는 Unity를 사용하는 것으로 가정하지만, Plastic은 특정 엔진에 종속되지 않는 솔루션이므로 Unreal이나 기타 커스텀 엔진과도 손쉽게 사용할 수 있다는 점을 기억해 주세요.
Saver Studios는 중간 규모의 인디 게임 개발 스튜디오입니다. 16명으로 이루어진 팀이 PC 및 콘솔용 멀티플레이어 RPG 게임을 제작하고 있습니다. 하지만 작업 규모를 키우다 보니 출시 일정을 맞추기 위해 계약직 아티스트를 작업에 투입해야 하는 상황이 되었습니다.
팀원 온보딩 과정
이 시나리오에서 Saver Studios는 여섯 명의 계약직 아티스트를 프로젝트에 투입하려 합니다. 스튜디오에서는 새로운 협업 인력, 특히 외부 계약 직원을 추가할 때 액세스 권한을 세부적으로 설정해야 합니다. Plastic 웹 환경은 필요에 따라 리포에 대한 저장소 서버 권한을 설정할 수 있도록 지원합니다. Saver Studios에서는 새로운 직원이 저장소 전체를 동기화하지 못하도록 쓰기 권한 외에 읽기 권한도 지정할 수 있으며, 이렇게 하면 프로젝트의 보안을 한층 강화할 수 있습니다.
데스크톱 클라이언트를 통해 이미 이 기능을 사용할 수 있으나, 이번 출시의 목표는 팀이 웹 대시보드에서 직접 이 기능을 사용하도록 하는 것입니다. 그러면 일상적인 관리 작업을 위해 별도의 클라이언트를 설치하지 않아도 됩니다.
또한 Saver Studios에서는 네트워크(IP) 허용 목록을 구현해 악의적인 사용자가 조직에 액세스하지 못하도록 차단할 수도 있습니다. 사용자가 허용 목록에 등록되지 않은 IP를 통해 클라우드 서버에 연결하려 하면 해당 연결은 거부됩니다. 보다 편하게 관리할 수 있도록, Saver Studios에서는 허용되는 IP를 지정하거나 특정 IP에서 연결할 수 있는 특정 사용자의 이름을 지정할 수도 있습니다.
Saver Studios에서는 새로운 팀원의 온보딩을 지원할 목적으로 readme 파일을 문서화하여 관리합니다. 새로운 팀원은 소프트웨어, 프로젝트, 코드, 게임, 설정 지침에 관한 핵심적인 정보가 포함되어 있는 이러한 readme 문서를 보통 가장 먼저 읽습니다. Saver Studios에 새로 온보딩한 계약직 직원은 Plastic 웹 대시보드를 사용할 수 있으므로 온보딩 프로세스를 최대한 활용할 수 있게 됩니다.
readme 파일은 마크다운 형식으로 콘텐츠의 작성과 표시를 지원하므로 Saver Studios는 다양한 링크, 스크린샷, 비디오, GIF를 파일에 추가하고 참조할 수 있습니다. 다시 말해서, 가장 중요한 정보를 읽기 쉬운 형식으로 표시할 수 있습니다.
파일 및 저장소 탐색
Saver Studios는 프로젝트를 각각 게임용, 원본 에셋용, 사내 툴용 등 세 곳의 저장소에 보관합니다. 신입 아티스트가 환경 모델 작업을 한 달 정도 진행 중이라고 가정하겠습니다. 일상적인 워크플로에서 팀은 리포를 빠르게 열어 파일에 어떤 변경이 적용되었는지 파일의 작업 이력을 파악할 수 있어야 하며, 전체 리포를 로컬 작업 공간에 다운로드하지 않아도 이 모든 작업이 가능해야 합니다.
새로운 Plastic 웹 환경에서 아티스트 팀은 저장소의 콘텐츠를 편리하게 검색하고 탐색할 수 있습니다. File Explorer를 이용하면 저장소의 모든 파일을 볼 수 있습니다. 팀은 한눈에 파일을 둘러보며 모든 기간에 걸쳐 특정 파일에 적용된 변경 사항을 확인할 수 있습니다. 팀원은 History 기능을 사용해 모든 파일의 이력을 꼼꼼히 살펴볼 수 있으며 Annotate에서 타임스탬프를 통해 변경 사항과 변경한 사용자를 추적할 수 있습니다.
코드 리뷰로 더 빠른 피드백 제공
Saver Studios의 프로그래머 Jett는 게임의 동작 트리 AI를 구현하고 있습니다. 방금 매우 복잡한 재작업을 마쳤으며, 다른 엔지니어 두 명에게 코드 검토를 요청하려고 합니다. Jett는 웹 대시보드를 이용해 새로운 검토 요청을 생성하고 여러 팀원을 요청에 추가할 수 있습니다. 요청이 제출되면 모든 리뷰어가 Jett의 요청에 관한 Slack 알림을 받게 됩니다.
검토 시스템은 위에서 언급한 알림 외에도 검토가 완료되거나, 누군가 변경을 요청 또는 질문할 경우 알림을 전송합니다. 이러한 알림은 Slack, Discord, Webhooks 같은 타사 통합 기능을 통해 쉽게 구성할 수 있습니다.
Jett는 자동 알림을 사용하지 않고 직접 리뷰 링크를 보낼 수도 있으며, 급하다면 이 방법도 좋습니다. 리뷰 프로세스 자체는 리뷰어의 선호도에 따라 유연하게 진행할 수 있습니다. 예를 들어, 변경된 파일의 차이를 확인할 때 '전체 파일 보기'를 통해 모든 코드줄을 표시하여 변경된 내용, 위치, 시점을 살펴볼 수 있습니다.
혹은 변경된 주요 라인만 쌍을 이루어 표시하고, 변경과 관계가 없는 행은 필요에 따라 펼치거나 접으며 작업할 수도 있습니다.
활동 및 사용량 모니터링
Saver Studios에서는 계약직 직원을 자주 고용하므로 프로젝트 관리 측면에서 팀에 속한 다양한 사용자의 활동을 파악해야 합니다. Plastic은 사용자와 스토리지를 기반으로 요금을 청구하므로, 이렇게 하면 청구 주기의 예측 가능성도 높일 수 있습니다.
이 뷰에서 Saver Studios는 특정 타임라인으로 필터링해 저장소가 특정 기간에 어떻게 성장했는지 확인할 수 있습니다. 총 데이터 스토리지, 활성 또는 비활성 사용자 같은 내용을 확인해 비용을 통제하고 차이, 분기, 병합, 코드 리뷰 등의 사용량을 더 세밀하게 감독할 수 있습니다. 이렇게 다양한 변수를 감독할 수 있으면 팀워크를 높이고 각 팀원이 제공되는 모든 기능을 활용하도록 지원할 수 있습니다.
워크플로가 원활하게 진행되고 새 직원 온보딩 역시 별다른 문제 없이 완료할 수 있으므로 Save Studios는 플레이 가능한 베타를 예정대로 출시하게 됩니다. 피드백을 받게 되더라도 팀은 애자일 방식으로 프로젝트를 계속 관리할 수 있습니다.
참여하는 방법
공유하고 싶은 아이디어가 있나요? 버전 관리의 미래를 함께 설계해 주세요. 오늘 포스팅에서 설명한 새로운 Plastic 웹 환경은 올해 말 출시 예정이며, 아직 작업해야 할 부분이 많습니다. 유니티는 베타 프로그램에 참여할 Unity 또는 Unreal 사용자를 찾고 있습니다. 참여하시는 분은 정식 제작 환경에서 작업할 수 있습니다. 유니티는 사용자 피드백을 바탕으로, 모든 규모의 게임 개발에 적합한 강력한 DevOps 플랫폼을 구축할 수 있도록 계속해서 기능과 로드맵을 개선할 예정입니다.
GDC에서 Unity DevOps 팀이 발표한 계획을 살펴보세요.