금일 NDC에서는 올해로 8년째 PC 서비스 중인 <테라>가 지난 4월 PS4와 엑스박스원 등 현세대 콘솔로 출시된 것과 관련해, ‘<테라>콘솔 포팅기’라는 주제로 두 차례의 강연이 진행됐다.
‘블루홀’의 이해찬 프로그래머, 홍상혁 프로그래머는 서구권에만 출시돼 국내에는 잘 알려져 있지 않은 콘솔 버전의 <테라>를 제작하는 과정에서 있었던 일화, 그리고 라이브 서비스를 진행 중인 PC게임을 콘솔로 이식하는 과정을 위한 렌더링 최적화에 대한 두 가지 내용을 이야기했다.
<테라>가 콘솔로 제작되기까지 어떤 일이 있었는지에 대해 전한 금일 강의를 정리했다. /디스이즈게임 박준영 기자
# ‘언리얼 엔진 3’로 만든 <테라>, 불가능해 보였던 현세대 콘솔 이식
먼저 강의를 진행한 ‘블루홀’의 이해찬 프로그래머는 “2016년 3월 즈음 <테라>를 콘솔로 개발했으면 한다는 이야기가 나왔고, 1인 개발로 제작하기 시작했던 과정에 대해 이야기를 하고자 한다”라고 전하며 PC 라이브 서비스 중이던 <테라>의 이식 과정에서 있었던 문제를 이야기 하기 시작했다.
지난 2010년에 출시된 PC버전의 <테라>는 2007년부터 개발을 진행했으며, 당시 최신 엔진이었던 ‘언리얼 엔진 3’로 개발을 하게 됐다. 하지만, PS3와 엑스박스 360 용으로 개발된 ‘언리얼 엔진 3’는 현세대 콘솔에는 이식이 어려웠으며, 이로 인해 기존 엔진을 개조하거나 최신 엔진인 ‘언리얼 엔진 4’로 다시 게임을 제작해야 하는 문제를 직면하게 됐다고 전했다.
이 과정에 대해 이해찬 프로그래머는 “소규모 개발진이었던 당시의 우리에게 기존의 엔진을 최신 버전에서 읽을 수 있게 하는 작업은 매우 어려운 작업이었으며, 이로 인해 기존의 엔진을 개조하는 길을 택하게 됐다”며 “현세대기와의 호환을 위해 엔진의 변경점이 많았던 <테라>는 ‘언리얼 3 언서포티드’라는 프로그램을 통해 콘솔용으로 다시금 제작됐고, 짧은 기간 내에 이식을 완료할 수 있었다”라고 이야기했다.
'언리얼 엔진 3'로 개발된 <테라>는 현세대 콘솔에 적용하기 어려웠으며, 이를 해결하기 위해 현세대 콘솔에 적용되는 '콘솔판' <테라>를 다시금 만들게 됐다.
# 2년의 개발 기간, 게임 제작보다 심사가 개발 기간을 더 잡아먹는다
게임의 개발부터 출시까지에 있어 2년의 시간이 걸린 것에 대해 이해찬 프로그래머는 “콘솔 포팅을 전문적으로 하는 회사들이 많아 외주를 주게 된다면 보다 빠르게 개발을 진행할 수 있었지만, 이번 개발을 통해 ‘블루홀’은 콘솔 개발과 서비스 경험을 내재화하고자 직접 개발을 강행하게 되었다”며 “프로젝트를 시작한 이후 개발과정은 그리 오래 걸리지 않았고, 개발 기간을 늘리게 된 원인은 콘솔 출시를 위한 내부 게임 심사 과정인 TRC와 XR의 통과가 힘들어서였다”라고 말했다.
콘솔 시장에 게임을 출시하기 위해서는 각 기종에 맞는 심사를 거쳐야 하며, PS4에서는 TRC(Technical Requirement Checklist), 엑스박스원에서는 XR(Xbox Requirement)를 받아야 한다. 해당 과정은 심사 항목 별 면제 요청이 가능하기는 하지만, 심사 자체가 워낙 오래 걸리고 통과도 쉽지 않아 이를 처음 시도하는 개발사는 보통 4~5회 떨어지는 것을 기본으로 한다고 이해찬 프로그래머는 전했다.
이어, “각 콘솔에 대한 심사를 받고 피드백을 바탕으로 게임을 수정하는 작업을 꼬박 1년여 가량 진행했다”며 “콘솔 시장에 진출하기를 원하는 개발사들이 있다면 심사 과정을 미리 준비해 개발 기간이 길어지는 것을 방지했으면 한다”라고 이야기했다.
# “할 수 있다”, 불가능한 일이 아닌 PC 라이브 게임의 콘솔화
<테라>의 장르인 MMORPG는 수많은 플레이어가 각자의 캐릭터가 보유한 스킬과 의상을 시시때때로 사용하기 때문에 플레이어의 행동을 미리 예측하고 로딩을 할 수 없다는 특징을 지니고 있다. 해당 특징은 <테라>를 콘솔로 이식하는 과정에서 게임 플레이 중에도 계속해서 뭔가를 로딩하는 문제로 작용하게 됐고, 많은 로딩으로 인한 ‘로딩 렉’으로 인해 프레임이 저하되거나 멈추는 등의 문제를 겪게 되었다고 이해찬 프로그래머는 전했다.
당시 개발진은 해당 문제를 해결하기 위해 로딩의 근본적인 목적인 ‘파일 내용 읽기’를 빠르게 하고자 파일의 크기를 줄이고자 노력했고, 이 과정에서 파일을 세분화하여 개별 로딩이 아닌 풀 패키지 로딩이 가능하도록 제작했다.
이해찬 프로그래머는 “각종 기술적 어려움을 마주하긴 했지만, 이런 경험을 토대로 ‘블루홀’의 차기 프로젝트에서 콘솔 플랫폼을 고려하고 개발하기가 쉬워지기를 기대하고 있다”며 “마냥 어려운 일이라고 생각한 ‘언리얼 엔진 3’의 현세대 콘솔 포팅이 불가능한 인이 아니라는 것을 알게 됐고, 개발을 희망하는 사람들이 있다면 그 계획을 꼭 실행했으면 한다”라고 전했다.
가변성이 높은 MMORPG의 특성은 게임을 미리 로딩할 수 없게 만들었으며, 이로 인해 게임은 수 많은 다른 로딩들을 시도하게 되며 '로딩 렉'을 부르게 됐다.
# 마냥 어려운 코딩 작업에서 즐거움 찾기
앞선 강의가 종료된 직후 ‘현세대 콘솔 이식을 위한 렌더링 최적화 여정’이라는 주제로 ‘블루홀’ 홍상혁 프로그래머가 강의를 이어갔다.
그는 앞서 진행된 강의에서 전해진 ‘언리얼 엔진 3’를 현세대 콘솔로 이식하는 과정에서 사용된 ‘코딩 코드’와 ‘작동 방식’에 대해 소개하며, ‘콘솔과 언리얼 엔진 3의 기능적 한계’와 ‘멀티 스레드 렌더링 구조’에 대해 자세히 소개했다.
이 과정에서 홍 프로그래머는 “콘솔 개발에는 ‘멀티 스레드’에 대한 지식이 필수인 만큼 철저하게 공부를 했으면 한다”며 “마냥 어렵고 고통스러울 수 있는 일이지만, ‘프로그래머’로써 추구할 수 있는 재미가 있기에 여러분만의 즐거움을 찾고 나아갔으면 한다”라고 이야기하며 금일 강의를 마쳤다.