거인(巨人)의 어깨 위에 올라서 보면, 우리는 그 거인의 거대함을 실감하게 된다.
'언리얼 엔진'을 이용해 게임을 만들어 본 적 있는 사람이라면 누구라도,
팀 스위니(Tim Sweeney)가 바로 그렇게 거대한 거인이라는 것을 알고 있을 것이다.
그는 최초의 언리얼 엔진을 만들 때 25만 줄의 코딩작업을 했었고,
현재는 에픽 게임즈의 설립자이자 CTO(최고기술책임자)의 자리에 있지만,
그는 지금도 매일 활발한 코딩작업을 하고 있다.
팀 스위니와 존 카맥이 존재하지 않았다면 지금의 게임계는 어떤 모습이 되어 있을까.
다행스럽게도, 아직 전설적 존재들은 대부분 생존해 있으며, 일하고 있고,
여전히 우리를 미래로 이끌어주고 있는, 그런 시대에 우리는 살고 있다.
그들 중 많은 수는 세상과는 거리를 두면서, 차기 프로젝트를 위해 열심히 일하고 있거나,
회사 홍보담당자들의 보호 아래 언론매체과는 일정한 거리를 두고 있다.
우연한 기회로 나는 대만에서 팀 스위니를 만나게 되었고,
매니저나 추종자들의 방해없이 허심탄회한 대화를 나눌 수가 있었다.
우리는 게임 콘솔, 코딩 등에 대해서 토의를 했고,
어쩌다보니 존 카맥에 대해서도 이야기를 나누게 되었다.
게임업계를 5년 정도 선도하려면 무엇이 필요한지,
그래서 개발자들이 필요로 할 때 그 툴(tool)을 마련해 줄 수 있는지?
여전히 해결해야 할 과제는 무엇인지?
웹과 모바일게임으로 점점 이동해가는 세계의 흐름 속에서 트리플 에이(AAA)급 게임은 과연 누가 수호하게 될지?
물론 팀 스위니도 이런 질문에 대한 해답을 전부 갖고 있지는 않다.
하지만, 그 밖에 누구한테 이런 질문을 한단 말인가?
------------------------------------------------------------------------------------
큰 질문(a big sandbox question)부터 드려 보죠.
게임 분야에서 그래픽과 컴퓨터연산 쪽을 더욱 발전시켜야 하는 문제에 있어서
앞으로 가장 중요한 것은 무엇이라고 생각하세요?
팀 스위니:
게임업계는 수많은 부문에서 동시에 진보하고 있습니다.
그 중 하나는 광원 기술(lighting technology)의 부단한 발전이기도 하죠.
저희는 스파스 복셀 옥트리 글로벌 일루미네이션(sparse voxel octree global illumination) 기술로
그 부문에 힘을 보태왔습니다.
쉽게 말해서, 간접 광원(indirect lighting)과 글로시 리플렉션(glossy reflections; 반사효과)을 실시간으로
처리하는 기술이죠.
이것은 정말 멋진 기술이긴 하지만,
정말 비싼 기술이어서 최고의 하이엔드(highest-end) GPU에서만 가능합니다.
그래서 이 문제해결(solution)을 위한 패밀리를 구성했고
일정한 광원을 가장 우선순위로 하는 아이폰 수준의 낮은 단계까지 그 솔루션의 범위를 넓혔죠.
그렇게 로-엔드(low-end)부터 하이-엔드(high-end)에 이르기까지 상당한 효과를 거두는 게임을 만들 능력이
에픽에겐 있습니다.
우리가 가장 고려했던 부분은, 아마도 이것이 일순위의 문제라고 생각하는데요,
전체 게임개발 과정에서 생산성(productivity) 문제였습니다.
왜냐하면, 액티비전 같은 회사가 '콜 오브 듀티' 게임 하나를 개발할 때마다 1억 달러 정도의 제작비를 소모하는 것을 보아왔기 때문입니다.
정말 정신나간 짓이죠! (that's insane!)
저희에게는 그 정도 자금능력은 없어요.
그래서 저희는 자원이 훨씬 더 적게 드는 게임을 만들어야 하죠.
어쨌든 저희는 아트워크 파이프라인을 조정할 수 있고,
낭비를 줄이며 더 빠르게 코어게임을 제작할 수 있는 게임 스크립팅 파이프라인이 더 좋은 것이겠죠.
작업시간과 작업량을 크게 개선시키기 위해 저희는 비주얼 스크립팅 기술에 심혈을 기울입니다.
기술적인 지식이 상대적으로 약한 사람에게는 상당히 직관적인 것으로 보이는데요.
팀 스위니:
언리얼 엔진 4로 저희가 정말 원했던 것은,
다른 별도의 프로그래밍 작업 없이 '앵그리 버드' 같은 소규모 게임을 처음부터 끝까지 개발할 수 있게 하자는 것이었습니다.
비주얼 툴킷을 이용해 유저 인풋을 액션으로 맵핑하는 것이죠.
이 기술은 정말로 대단한 것이 될 것입니다.
저희는 이 비주얼 툴킷을 모든 방면으로 확장하고 있기도 합니다.
예를 들어 재료감을 만들어낸다거나, 애니메이션을 만들거나,
엄청난 양의 게임 자산(game assets)이 있을 때 그 컨텐츠를 관리해 준다던가 등이죠.
저희는 그저 그 인터페이스를 대폭 단순화시키고 있고
그렇게 유니티(Unity)만큼 사용이 쉬워지는 것입니다.
어떻게 보면, 언리얼 엔진은 다른 어떤 엔진보다도 가장 크고 복잡한 엔진이기도 합니다.
하지만 언리얼 엔진 3은 크고 복잡한 인터페이스를 가지고 있었어요.
언리얼 엔진 4에서는, 베이스 레벨(base level)에서 들여야 할 노력이
모든 면에서 상당히 간단해지고, 사용법이 쉬워졌으며, 눈에 보이는 길로 구현되며, 그것을 바탕으로 복잡한 것도 구현할 수 있습니다.
그래서 방대하고 복잡한 유저인터페이스라는 틀을 두려워 하지 않고, 자신이 다루는 만큼 사용법을 배울 수가 있어요.
이것은 요즘 시대에 모든 어플리케이션이 해쳐 나가야 할 문제이기도 하죠.
아이패드 앱을 보면, '포토샵' 같은 윈도우 버전 앱에 비해 정말 유저가 쉽게 필요로 하는 기능의 90% 정도까지 구현해 주고 있어요.
저도 포토샵으로 1시간이나 낑낑댔지만 그림 한장 그리는 방법조차 알아내지 못하기도 했어요.
슬픈 일이죠 (웃음)
너무 해야 할 일이 많았고, 배워야 할 것이 많았거든요.
에픽 시타델(Epic Citadel)
복셀(voxels) 얘기로 돌아가보죠.
저는 예전부터 복셀 개념에 매력을 느껴왔는데요,
왜냐하면 그 더 높은 충실도를 지닌 잠재력에 비해 비용이 적게 드는 기술이기 때문이었습니다.
하지만 언리얼 엔진은 그 복셀에 텍스처를 잘 쓰지도 못했고 애니메이션도 그다지 잘 구현하지 못했어요.
앞으로 미래엔 그것이 가능할 것이라고 보세요?
게임업계 전체는 앞으로 트라이앵글(triangles; 삼각형)에서 벗어날지도 모르겠지만...
팀 스위니:
미래에는 복셀이 큰 역할을 할 것이라는 건 확실합니다.
특히 광원문제에 대해서죠, 맞나요?
팀 스위니:
음, 광원문제는 복셀의 효율적인 사용법 중 한가지일 뿐이죠.
존 카맥 씨는 오래 전부터
복셀, 그리고 세계를 더욱 스파스하게 구현(sparse representation; 역주-희소행렬적인 구현을 가리키는 말인 듯 하네요)하는 일의 가치를 역설해 왔어요.
당시에 저는 그걸 정신나간 짓이라고만 생각했어요.
하지만 지금은, 그가 참으로 앞을 내다보는 식견을 갖고 있었다는 것이 명백해지고 있습니다.
복셀에 관한 것은,
복셀이란 매우 단순한 것이며, 데이터를 정렬하는 고도로 잘 짜여진 방법이기 때문에 트래버스(traverse)하기가 쉽죠.
다른 형태를 가진 데이터, 예를 들어 뼈만 있는 골조로 가득한 캐릭터 같은 데이터를 트래버스하고 싶을 때에는
원하는 공간으로 그것을 변형(transform)하기 위해 실로 엄청난 양의 프로세싱 작업을 해야 합니다.
무엇이 어디로 떨어지는지 계산해야 하고, 래스터라이즈(rasterize) 같은 따위의 일을 해야 하죠.
그러나 복셀은 트래버스하기가 훨씬 효율적입니다.
저는 여기에 커다란 차이가 있다고 봅니다.
한 장면(scene)을 렌더링하기 위해 사용하고 싶은 데이터의 표현(구현, representation)은
그 장면을 조작하고, 오브젝트를 움직이고, 그 상호작용을 어떻게 선택해서 사용하느냐에 따라 크게 달라집니다.
어떤 표현방법이 항상 우세하다고는 할 수 없어요.
스파스 복셀(sparse voxel)에 근간을 둔 접근법에서 장점이라면, 역동적으로 업데이트를 할 수 있다는 점이죠.
오브젝트가 움직일 때, 연관된 복셀 옥트리(voxel octree) 파트들에 점점 더 변화를 줄 수가 있는 것입니다.
알고리즘의 극단적인 경우도 계산해낼 수가 있어요, 그래서 복셀 옥트리를 그 근원이 되는 공간(space)에 고정시켜 놓지 않아도,
화면에 정렬하고 정확히 배열해 놓기만 하면, 복셀 옥트리가 2차원 시점으로 그려지는 것이죠.
반면 나머지 차원은 z 차원이 되는 것이고요.
복셀 옥트리의 투영이란 기본적으로 이런 것입니다.
모든 장면(scene)에 있는 모든 사물을 모든 프레임마다 적용할 수가 있어요.
그리고 모든 화면 공간 기술을 통합할 수가 있죠.
예를 들어 스파스 복셀 옥트리를 사용하여 커다란 스케일의 월드를 구현하는 화면 공간 앰비언트 오클루전(ambient occlusion) 기술이라던가요.
모든 장면의 래스터라이징이 곧바로 그렇게 구현된다고 상상해 보세요.
실시간(real time)으로 광원 및 그림자를 사용하고 렌더링해서 프레임버퍼를 만들어내는 거죠.
하지만 그런 방법이 메리트만 있다고 말하기는 어려운 면이 있습니다.
그 방법은 1~2 테라플롭 정도가 아니라 20~30 테라플롭이 필요한 알고리즘이기 때문이죠.
(2편으로 이어집니다)
2편: http://gaia.ruliweb.com/gaia/do/ruliweb/default/xbox/139/read?itemId=3&bbsId=G003&articleId=1044008
(IP보기클릭).***.***
(IP보기클릭).***.***
(IP보기클릭).***.***
(IP보기클릭).***.***
(IP보기클릭).***.***
(IP보기클릭).***.***
(IP보기클릭).***.***