Ayelet Studio는 SpeedrunCI를 만든 팀이므로, 이것은 저희 자신의 이야기입니다. 저희는 Chennai에 있는 약 30명 규모의 스튜디오로, 11세기 남인도를 배경으 로 한 액션 어드벤처 Son of Thanjai를 Unreal Engine 5로 만들고 있습니다. SpeedrunCI는 저희 빌드 문제를 해결한 내부 도구로 시작했습니다. 지금도 매일 SpeedrunCI로 게임을 빌드하고 있습니다.
고지: SpeedrunCI는 Ayelet Studio가 만듭니다. 아래 수치는 저희가 직접 측정한 것입니다.
- 스튜디오
- Ayelet Studio, Chennai, 인도
- 팀
- 약 30명
- 게임
- Son of Thanjai, 액션 어드벤처
- 엔진
- Unreal Engine 5
- 플랫폼
- PS5, Xbox Series X|S, PC
- 이전
- Jenkins와 빌드 머신 한 대
같은 머신에서 측정한 Son of Thanjai 전체 빌드입니다. 첫 SpeedrunCI 빌드는 캐시가 채워지는 동안 더 느립니다.
에너지의 절반을 Jenkins를 살려 두는 데 썼습니다
대부분의 스튜디오처럼 저희도 Jenkins로 시작했습니다. 몇 주 만에 BuildGraph를 셸 명령으로 호출하고, 환경 변수와 공유 폴더로 상태를 넘기고, 원인을 완전히 이해하지 못한 실패를 피하려고 플래그를 덧붙이고 있었습니다.
전체 빌드에는 세 시간 넘게 걸렸습니다. 세 플랫폼이 단 한 대의 빌드 머신에서 차례로 실행됐기 때문에, 세 플랫폼을 모두 출시하려면 세 배의 시간이 걸렸습니다. 텍스처 하나만 바꿔도 전체 리빌드가 일어날 수 있었고, 무언가 실패하면 로그에는 200단계 과정 어딘가에서 문제가 생겼다는 말뿐이었습니다.
파이프라인을 디버깅할 수 있는 사람은 한 명뿐이었습니다. 아티스트는 저녁에 작업을 푸시하고 다음 날 아침에야 무사한지 알 수 있었습니다. 엔지니어 세 명은 혹시 몰라 커밋할 때마다 로컬 빌드를 돌렸습니다. CI 결과를 예측해 주지도 못하는 빌드에 하루 최대 9시간의 컴퓨팅을 쓴 셈입니다.
“프로듀서로서 제 일은 빌드가 어디까지 왔는지, 누가 막혀 있는지 아는 것이 전부입니다. 예전에는 그걸 알아내는 데만 3.5시간이 걸렸고, 빌드가 한 번 깨지면 하루가 통째로 날아갔습니다. 이제 SpeedrunCI로 팀 전체가 매일 빌드하고, 저는 모든 빌드를 실행되는 순간 바로 볼 수 있으며, 빌드 문제로 마일스톤이 밀리는 일도 없어졌습니다.”
기능별로 살펴보기
플랫폼별 파이프라인을 나란히
Win64, PS5, Xbox Series X|S는 각자의 파이프라인을 가지며, 모두 같은 커밋에서 시작합니다. 한 머신에서 서로의 뒤에 줄을 서는 대신 여러 러너에서 동시에 실행됩니다. 예전 세 시간 대기의 대부분이 바로 그 줄서기였습니다.
게임 인식 캐싱
SpeedrunCI는 컴파일된 코드, 쿡된 에셋, 셰이더 및 파생 데이터를 실행 사이에 캐시하고, 변경이 영향을 준 부분만 다시 빌드합니다. 같은 하드웨어에서 3시간 32분과 27분의 차이는 여기서 나옵니다. 실행할 필요가 없는 단계를 더 이상 실행하지 않게 된 것입니다.
문제를 정확히 가리키는 실패
빌드가 실패하면 한 단계에서 실패하며, 그 단계의 로그와 빌드를 트리거한 커밋이 함께 표시됩니다. SpeedrunCI가 로그를 읽고 살펴볼 파일과 줄을 짚어 수정을 제안합니다. 실패한 빌드를 고치는 데 아침 내내가 아니라 몇 분이면 됩니다.
Unreal Editor 안에서 빌드
저희 아티스트와 디자이너는 에디터 툴바의 SpeedrunCI 플러그인(Fab에서 무료)으로 빌드를 시작합니다. 에디터에서 실시간 상태를 확인하고, 명령어를 아는 단 한 사람을 찾아다닐 필요가 없습니다.
팀 전체가 접근할 수 있는 아티팩트
약 20 GB의 완성된 콘솔 빌드를, 그 빌드를 만든 실행에서 바로 내려받을 수 있습니다. Google Drive 링크도, 어느 빌드가 최신이냐는 질문도 없습니다.
모두를 위한 빌드 상태
프로듀서와 QA는 모든 빌드를 실행되는 순간 대시보드와 팀 채팅에서 확인합니다. 이제 스탠드업에서 파이프라인에 대해 묻는 사람은 없습니다.
호스팅 Lore 저장소
Ayelet Studio는 SpeedrunCI의 호스팅 Lore 저장소를 처음 사용한 스튜디오이며, 프로덕션에서 운영하고 있습니다.
빌드를 두고 묻고 답할 일이 사라졌습니다
- 아 티스트들은 하루 한 번이 아니라 두 번 커밋하기 시작했습니다. 누가 시킨 것이 아닙니다. 나이틀리 빌드를 더 이상 두려워하지 않게 된 것입니다.
- 엔지니어들은 “혹시 몰라” 로컬 빌드를 돌리던 일을 그만두었습니다. CI가 믿을 수 있는 빌드가 되었기 때문입니다.
- 저희에게는 전담 빌드 엔지니어가 없습니다. 캐싱, 병렬 실행, 오케스트레이션은 SpeedrunCI가 맡습니다.
- 프로듀서는 누구에게도 묻지 않고 모든 빌드의 진행 상황을 파악하므로, 빌드 문제로 마일스톤이 밀리는 일이 없어졌습니다.