2014년 8월 29일

코드드롭 송: 2001 년도 언리얼 엔진

저자: Daniel Vogel

최근 저희 빌드와 릴리즈 프로세스에 대한 논의를 하다보니 개발자들에게 처음 업데이트를 전해드리던 경건한 순간이 떠올랐습니다.

2001 년 초 언리얼 엔진 2 시절, 에픽에 근무하던 프로그래머는 10 명 미만이었는데, Visual Source Safe 를 사용했었고, 저는 공식 빌드 머신으로 제 머신 로컬에서 바이너리를 컴파일한 다음 공유 네트워크 드라이브에 올리고 있었더랬죠.

코드드롭(codedrop)이라 불리는 zip 파일을 통해 개발자들에게 엔진을 배포했었습니다. 투박하긴 했지만, 주요 문제점은 업데이트 횟수가 적었다는 점인데, 특정 기능을 릴리즈에 묶어버리는 실수를 저질러서 약속한 기능이 빠지면 전체 릴리즈와 다른 모든 기능도 같이 빠져버린다는 맹점이 있었습니다. 기능이 크면 클 수록 릴리즈 사이의 기간이 길어지고, 그에 대한 기대치도 높아지는 것입니다.

그렇게 빠졌던 기능 중 하나가 언리얼 엔진 2 의 머티리얼 시스템에 관련된 것이었는데, 당시에 기존 머티리얼 시스템에서 근본적으로 이탈하는 것이었으며, 이 영역에서 아티스트에게 많은 제어권을 주려고 했던 첫 번째 시도였습니다. 저희 2002 GDC 데모가 바로 이 머티리얼 시스템을 통해 12 년 넘는 기간에 걸쳐 어떠한 것들을 이뤄낼 수 있었는지에 대한 좋은 예입니다. 여기서 직접 한 번 보시죠. 그리고 또, 언리얼 엔진 4 개발자 koola 가 2014 년 버전으로 만든 것도 여기서 보실 수 있습니다.

머티리얼 시스템의 릴리즈가 몇 달은 빠졌으니 이러한 혁신도 꽁짜는 아니었습니다. 개발중이던 다른 기능도 있었지만, 개발자들은 머티리얼 시스템이 준비되지 않아 낼 수가 없어서 다른 기능을 복사해 와야 했던 불운한 상태에 있었다는 뜻이니까요.

그러다 결국 Ubisoft 의 Jean-Francois Dube 와 Emilie Gauthier 가 자꾸 빼먹는다고 놀리는 노래를 만들게 되었습니다. 여기서 들어보실 수 있습니다. 저는 이 곡을 들을 때마다 다시는 처하고 싶지 않은 상황이 계속 떠오르네요.

위 상황은 저희에게는 커다란 교훈을 얻을 수 있는 경험이었으며, 그것이 하나의 빌미가 되어 10 년 전 쯤 언리얼 엔진 3 개발자들에게 소스 라이브 액세스 방식을 제공하던 것에서 (엔진 QA 팀의 진단을 거쳐 축복받은) QA 빌드라는 매달 안정된 릴리즈 버전을 제공하는 것으로 바뀌게 된 것입니다. UE3 가 릴리즈되자마자 UDK 에도 매달 릴리즈라는 주기를 확장시켰으며, 결국 UE3 와 수명 주기를 맞췄습니다.

2014 년도로 빠르게 돌아와서, 이제 에픽 게임스에는 약 150 명의 엔지니어가 있습니다. 대규모 빌드 및 연속 통합 팜, 다양한 브랜치 등이 구비되어 있는 등 많은 변화가 있지만, 단 한 가지 변하지 않은 것이 있다면, 저희가 하고 있는 작업을 고객이 실시간으로 접할 수 있게끔 하면서, 릴리즈 및 테스팅 프로세스나 상태에 있어서의 투명성을 제고시키고자 하는 저희의 의지라 하겠습니다.

라이브 액세스와 아울러 (6-8 주 주기의) 잦은 QA 승인 릴리즈를 결합하는 방식이 뛰어난 고객 만족도를 보장하는 핵심 요소라 강하게 믿습니다.