모든 사례 연구
    우리 스튜디오사례 연구 · Ayelet Studio

    Son of Thanjai를 PS5, Xbox Series X|S, PC로 출시하기

    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와 빌드 머신 한 대
    같은 프로젝트, 같은 하드웨어, 같은 저장소
    Jenkins
    3시간 32분
    SpeedrunCI
    27분

    같은 머신에서 측정한 Son of Thanjai 전체 빌드입니다. 첫 SpeedrunCI 빌드는 캐시가 채워지는 동안 더 느립니다.

    아키텍처
    01트리거
    Unreal Editor 플러그인툴바에서 빌드
    호스팅 Lore 저장소모든 빌드의 소스
    02오케스트레이션
    SpeedrunCI 파이프라인플랫폼마다 하나, 같은 커밋
    게임 인식 캐시코드, 쿡된 에셋, 파생 데이터
    자격 증명 보관소콘솔 서명 키, AES-256-GCM
    03병렬 빌드
    Win64전용 러너
    PS5전용 러너
    Xbox Series X|S전용 러너
    04전달
    아티팩트 스토리지만료되는 서명된 다운로드 링크
    스튜디오 대시보드프로듀서와 QA를 위한 실시간 상태
    팀 채팅Slack 및 Discord 알림
    커밋 하나가 플랫폼별 파이프라인으로 나뉩니다. 각 파이프라인은 자체 러너에서 나란히 빌드되고, 게임 인식 캐시와 자격 증명 보관소가 모든 실행을 뒷받침하며, 완성된 빌드는 아티팩트 스토리지와 대시보드에 도착합니다.
    이전

    에너지의 절반을 Jenkins를 살려 두는 데 썼습니다

    대부분의 스튜디오처럼 저희도 Jenkins로 시작했습니다. 몇 주 만에 BuildGraph를 셸 명령으로 호출하고, 환경 변수와 공유 폴더로 상태를 넘기고, 원인을 완전히 이해하지 못한 실패를 피하려고 플래그를 덧붙이고 있었습니다.

    전체 빌드에는 세 시간 넘게 걸렸습니다. 세 플랫폼이 단 한 대의 빌드 머신에서 차례로 실행됐기 때문에, 세 플랫폼을 모두 출시하려면 세 배의 시간이 걸렸습니다. 텍스처 하나만 바꿔도 전체 리빌드가 일어날 수 있었고, 무언가 실패하면 로그에는 200단계 과정 어딘가에서 문제가 생겼다는 말뿐이었습니다.

    파이프라인을 디버깅할 수 있는 사람은 한 명뿐이었습니다. 아티스트는 저녁에 작업을 푸시하고 다음 날 아침에야 무사한지 알 수 있었습니다. 엔지니어 세 명은 혹시 몰라 커밋할 때마다 로컬 빌드를 돌렸습니다. CI 결과를 예측해 주지도 못하는 빌드에 하루 최대 9시간의 컴퓨팅을 쓴 셈입니다.

    “프로듀서로서 제 일은 빌드가 어디까지 왔는지, 누가 막혀 있는지 아는 것이 전부입니다. 예전에는 그걸 알아내는 데만 3.5시간이 걸렸고, 빌드가 한 번 깨지면 하루가 통째로 날아갔습니다. 이제 SpeedrunCI로 팀 전체가 매일 빌드하고, 저는 모든 빌드를 실행되는 순간 바로 볼 수 있으며, 빌드 문제로 마일스톤이 밀리는 일도 없어졌습니다.”
    Mohan Raj, 스튜디오 프로듀서, Ayelet Studio
    SpeedrunCI 활용 방식

    기능별로 살펴보기

    01

    플랫폼별 파이프라인을 나란히

    Win64, PS5, Xbox Series X|S는 각자의 파이프라인을 가지며, 모두 같은 커밋에서 시작합니다. 한 머신에서 서로의 뒤에 줄을 서는 대신 여러 러너에서 동시에 실행됩니다. 예전 세 시간 대기의 대부분이 바로 그 줄서기였습니다.

    02

    게임 인식 캐싱

    SpeedrunCI는 컴파일된 코드, 쿡된 에셋, 셰이더 및 파생 데이터를 실행 사이에 캐시하고, 변경이 영향을 준 부분만 다시 빌드합니다. 같은 하드웨어에서 3시간 32분과 27분의 차이는 여기서 나옵니다. 실행할 필요가 없는 단계를 더 이상 실행하지 않게 된 것입니다.

    03

    문제를 정확히 가리키는 실패

    빌드가 실패하면 한 단계에서 실패하며, 그 단계의 로그와 빌드를 트리거한 커밋이 함께 표시됩니다. SpeedrunCI가 로그를 읽고 살펴볼 파일과 줄을 짚어 수정을 제안합니다. 실패한 빌드를 고치는 데 아침 내내가 아니라 몇 분이면 됩니다.

    04

    Unreal Editor 안에서 빌드

    저희 아티스트와 디자이너는 에디터 툴바의 SpeedrunCI 플러그인(Fab에서 무료)으로 빌드를 시작합니다. 에디터에서 실시간 상태를 확인하고, 명령어를 아는 단 한 사람을 찾아다닐 필요가 없습니다.

    05

    팀 전체가 접근할 수 있는 아티팩트

    약 20 GB의 완성된 콘솔 빌드를, 그 빌드를 만든 실행에서 바로 내려받을 수 있습니다. Google Drive 링크도, 어느 빌드가 최신이냐는 질문도 없습니다.

    06

    모두를 위한 빌드 상태

    프로듀서와 QA는 모든 빌드를 실행되는 순간 대시보드와 팀 채팅에서 확인합니다. 이제 스탠드업에서 파이프라인에 대해 묻는 사람은 없습니다.

    07

    호스팅 Lore 저장소

    Ayelet Studio는 SpeedrunCI의 호스팅 Lore 저장소를 처음 사용한 스튜디오이며, 프로덕션에서 운영하고 있습니다.

    달라진 점

    빌드를 두고 묻고 답할 일이 사라졌습니다

    • 아티스트들은 하루 한 번이 아니라 두 번 커밋하기 시작했습니다. 누가 시킨 것이 아닙니다. 나이틀리 빌드를 더 이상 두려워하지 않게 된 것입니다.
    • 엔지니어들은 “혹시 몰라” 로컬 빌드를 돌리던 일을 그만두었습니다. CI가 믿을 수 있는 빌드가 되었기 때문입니다.
    • 저희에게는 전담 빌드 엔지니어가 없습니다. 캐싱, 병렬 실행, 오케스트레이션은 SpeedrunCI가 맡습니다.
    • 프로듀서는 누구에게도 묻지 않고 모든 빌드의 진행 상황을 파악하므로, 빌드 문제로 마일스톤이 밀리는 일이 없어졌습니다.

    더 많은 사례가 준비 중입니다

    지금 더 많은 파일럿이 진행 중이며, 그 이야기도 이어서 소개합니다. 다음 사례의 주인공이 되고 싶으신가요? 파일럿은 여러분의 실제 Unreal 프로젝트 하나로 진행됩니다.