요즘 국내에서는 신작과 게임엔진을 함께 제작하는 개발사가 많지 않다. 언리얼 엔진이나 크라이 엔진 또는 유니티 엔진 등 상용 엔진을 주로 사용한다. 엔진을 개발하는 기간이 오래 걸리고 상용 엔진의 기술력을 따라잡기 어렵기 때문이다.
이런 가운데 마이에트는 지난 5일 오픈 베타테스트를 시작한 <레이더즈>와 앞으로 선보일 <건즈 2>에 자체개발 ‘리얼 스페이스 엔진 3.0’을 사용하고 있다.
10년 이상 게임을 만들어온 마이에트에게 엔진 개발은 당연한 일이다. 10년 전만 해도 상용 엔진이 거의 없었기 때문에 개발사들은 각자의 엔진을 갖고 있었다. 그때부터 꾸준히 엔진을 갈고닦은 마이에트는 ‘리얼 스페이스 엔진’이 기능이나 편의성 면에서 상용 엔진에 뒤처지지 않는다고 자부한다.
디스이즈게임은 “엔진 기술을 개발하는 것이 재미있고 이를 위해 죽을 만큼 공부한다”는 마이에트의 엔진 개발팀을 만나 이야기를 나눴다. /디스이즈게임 남혁우 기자
가까운 쪽부터 정호기 프로그래머, 유종문 프로그래머, 나자영 이사.
■ “엔진은 게임을 쉽게 개발하기 위한 통합환경”
TIG> <레이더즈>가 지난주 오픈 베타테스트(이하 OBT)를 시작했다. 소감이 어떤가?
나자영: 첫날부터 안정적이라 안심이 되는 한편 더 긴장하기도 했다. 언제 어떤 일이 벌어질지 모르기 때문에 마음을 놓을 수 없다.
TIG> OBT 이후 엔진팀은 어떤 일을 하게 되는가?
나자영: 아직 초기라서 할 일이 많다. 정상적으로 플레이할 수 없다는 유저가 일부 있어서 이를 해결하고 있고, 그 외에도 리포트되는 것을 수정하며 안정성을 강화하고 있다. 이외에도 렌더링에서 강화하고 싶은 부분이나 이펙트 기능 확대 등 <레이더즈>와 <건즈 2>에 추가하기 위한 기능을 개발하고 있다.
TIG> 기본부터 묻고 싶다. 게임 엔진이란 무엇인가?
나자영: 간단하게 설명하면 게임을 쉽게 만들 수 있도록 다양한 툴을 모아 놓은 통합환경이라고 할 수 있다.
TIG> 예를 든다면?
정호기: 게임을 개발할 때 캐릭터, 지형, 건물 등 일일이 수작업으로 만들거나 추가해야 하는 요소가 많다. 엔진은 번거롭고 시간이 오래 걸리는 작업을 마우스 클릭만으로 해결하는 것처럼 빨리 개발할 수 있게 해주는 연장이라고 할 수 있다.
윤종문: 어떻게 쌓느냐 따라서 다양한 사물을 만들거나 표현할 수 있는 퍼즐블럭인 레고처럼 무엇이든 만들 수 있는 툴이라고 할 수 있을 것 같다. 게임은 그 블럭을 어떻게 조합하느냐에 따라 나오는 결과물인 셈이다.
나자영: 게임 개발에 관련된 대부분의 작업을 지원한다고 보면 된다. 그래픽 작업에 필요한 툴을 만들거나 그림자나 터지는 효과 등 이펙트를 만들기도 한다. 엔진 프로그래머를 간단하게 말하면 프로그래머와 아티스트 등 개발팀 모두를 지원하는 ‘서포터’라고 할 수 있다.
리얼 스페이스 엔진 3.0의 통합 에디터.
캐릭터 의상 실시간 변형 툴 영상
■ “리얼 스페이스는 개발자 편의를 강조한 엔진”
TIG> 엔진을 만드는 데 얼마나 시간이 걸렸나?
나자영: <레이더즈> 개발 기간과 겹친다. 약 6년 정도 됐다. 같이 커온 만큼 의미가 깊다.
TIG> 자사에서 개발한 리얼 스페이스 엔진의 장점은 무엇인가?
정호기: 리얼 스페이스 엔진은 개발 편의성에 초점을 맞추고 있다. 클라이언트 프로그래머가 사용하기 쉽고 원하는대로 나오고, 커스터마이징하는 등 아티스트가 표현하고자 하는 것을 대부분 표현할 수 있다.
우리는 콘텐츠 개발자의 시간을 벌어줘야 좋은 퀄리티를 낼 수 있다고 생각한다. 그들이 불편해하는 것을 관찰하고 도움이 되는 도구를 만들어 게임에 바로 적용할 수 있도록 노력하고 있다. 앞으로도 다른 팀들과 협업해서 빠른 개발이 가능하도록 만드는 데 초점을 맞출 것이다.
콘텐츠팀이 빠진 상태로 아티스트와 협업해 기능을 추가하기도 한다. 가끔은 디자인팀이 수시로 내려와서 힘들기도 하다(웃음).
이펙트를 위한 개발 툴도 직접 개발했다.
TIG> 엔진을 개발하면서 힘들었던 점은? 구현하기 까다로웠던 기술이 있다면?
정호기: 리얼 스페이스엔진은 디퍼드 렌더링 기반이다. 이 방식은 포워드 렌더링에 비해 많은 빛을 표현할 수 있고, 포워드 렌더링 방식보다 광원 처리속도도 빠르다.
하지만 디퍼드 렌더링은 독자적으로 렌더링하는 작업과 다량의 동적 라이트 소스에 취약하다는 단점이 있다. 그래서 기능들을 조심스럽게 추가했음에도 결국 포화상태에 이르게 됐다.
그런 상황에서 헤어 라이팅과 스킨 쉐이더를 추가해 달라는 요청을 받자 앞이 막막해졌다. 고민고민 끝에 겨우 집어넣을 수 있었는데 앞으로 추가요청이 있으면 더 힘들어 질것 같다.
나자영: 기술적인 측면보다 무엇을 선택할지에 대한 고민이 많았다. 엔진 기술은 앞서 말한 렌더링 방식처럼 어느 하나가 무조건 좋다고 할 수 없는 것이 많다. 그래서 지금 어떤 것을 선택하는 것이 제대로 된 방향인지 선택하기가 어려웠다.
선택을 했다고 해도 언제 기술을 개발할지에 대해서도 판단하기가 어려웠다. 기술을 개발하면 앞으로도 자주 사용할 것을 알고 있지만 시간이나 여건상 개발하기 어렵고 또 ‘지금 만드는 것이 맞는 것인가?’ 하는 의문이 들기도 했다.
TIG> 대형 개발사들은 언리얼 엔진 등 주로 상용 엔진을 사용한다. 직접 엔진을 개발하게 된 이유는?
나자영: 휴대폰을 예로 들면 케이스 재질과 기판처럼 유저가 직접 사용하는 부분과 핵심 기술은 거리가 있다.
게임도 비슷하다. 유저가 직접 체감할 수 있는 부분을 개발하는 사람이 있고, 내부 로직을 만드는 사람이 있다. 내부 로직은 겉으로 표현되지 않지만 이 부분이 튼튼해야 유저가 사용하는 콘텐츠 개발이 한결 수월해진다.
우리가 직접 엔진을 만들면 전체적인 과정 중에서 어디에서 문제가 발생했는지 확인하고 통합적인 문제 해결이 가능하다. 반면 상용 엔진은 문제가 발생했을 때 우리가 세부적인 부분을 컨트롤하지 못하고 개발사에 문의해야 하기 때문에 해결하는 데 시간이 오래 걸리는 면이 있다.
또한 자체개발 엔진은 우리가 커스터마이징할 수 있는 부분이 자유롭고, 우리에게 맞는 기술을 개발한다는 자부심 그리고 비용적인 측면에서도 득이 된다고 생각한다.
물론 엔진 전문 개발사에서 만든 상용 엔진이 우리보다 퀄리티는 뛰어난 것을 알고 있다. 그래서 이를 따라잡기 위한 노력을 계속하고 있다.
TIG> 게임의 그래픽을 보면서 엔진이 ‘좋다’ ‘나쁘다’는 이야기를 많이 한다. 실제로 엔진이 그래픽에 얼마나 영향을 미치는가?
정호기: 엔진이 게임에 적용되는 모든 그래픽을 표현하기 때문에 100%라고 생각한다. 그래픽이 훌륭하다는 것은 그것을 뒷받침할 만한 엔진의 성능이 있어야 가능한 것이다. 그렇기 때문에 엔진의 한계에 따라 그래픽의 차이가 나게 된다.
나자영: 게임엔진이 그래픽에 큰 영향을 끼치는 것은 맞다. 다만 엔진의 성능상 잘 만드는 데는 한계가 있지만 못 만드는 데는 한계가 없기 때문에 같은 엔진이라도 그래픽은 천차만별로 달라진다.
<레이더즈>와 <건즈 2>도 같은 엔진을 사용했지만 분위기도 다르고, 사용하는 방법도 굉장히 다르다. 엔진의 영향이 100%라고는 말했지만 사용자에 따라 제로(0)가 될 수도 있다. 결국은 아티스트의 역량이 중요한 것 같다.
TIG> 최근 개발자들 사이에서 이슈가 되는 것은 무엇인가?
정호기: 예전에는 최신 기술에 민감해서 기능을 개발할 때는 항상 해외 사이트를 찾곤 했다. 하지만 지금은 <레이더즈>가 서비스를 시작한 만큼 안정화에 더 신경 쓰고 있다. <레이더즈>가 안정되고 <건즈 2>가 나온 이후에 트렌드 따라잡기에 나설 것 같다.
최근 내부 주요 이슈는 여자친구다. 대부분 혼자 노는 걸 좋아하거나 주로 프로그래밍팀끼리 놀다 보니 대부분 여자친구가 없다. 모두들 착하고 좋은 사람들이니 여자친구를 소개해 주시면 무척 감사하겠다(전원 웃음).
■ “우리의 툴로 더 좋은 게임을 만들 때 보람을 느낀다”
TIG> 엔진 개발을 어떻게 시작하게 됐나?
정호기: 처음에는 프로그래밍과 전혀 상관없는 대인 서비스 팀에서 일했다. 그러던 중 내가 게임을 개발하고 싶다는 생각이 들어서 프로그래밍 공부를 시작했다.
공부를 하다 보니 점점 게임보다도 기술을 배우고 만드는 것 자체가 더 재미있어졌다. 이후 게임 개발을 위해서는 엔진이 필요하다는 것을 알게 되면서 엔진 위주로 공부의 방향을 바꿨다.
처음부터 엔진 프로그래머로 입사한 것은 아니고 콘텐츠, 클라이언트 프로그래머를 거쳤다. 다른 프로그래머 일을 할 때도 집에서 꾸준히 엔진 공부를 한 결과 엔진팀에 들어올 수 있었다.
유종문: 나도 콘텐츠와 클라이언트 프로그래머로 시작했다. 이후 엔진을 개발하고 싶다는 욕심이 생겨서 이직하게 됐다.
콘텐츠와 클라이언트 개발을 할 때는 프로그래밍만 한 건 아니었다. 기획자나 아티스트와의 커뮤니케이션이 중요했다. 그런데 개인적으로 프로그래머들과 이야기하는 것은 부담이 없는데 다른 부서와 이야기하는 것은 어려웠다.
프로그래머끼리 일하고 대화할 수 있다는 점도 엔진팀에서 일하게 된 이유 중 하나다. 말하고 보니 프로그래머 특유의 폐쇄성은 보여주는 것 같기도 하다. 그렇다고 오해하지 않길 바란다. 다들 좋고 밝은 사람들이다.
나자영: 2000년 초반에 외산 엔진이 들어오면서 게임엔진이라는 개념이 생겼지만 우리가 게임을 처음 만들기 시작하던 십수 년 전만 해도 따로 엔진이라는 것이 없었다. 그저 게임을 만들기 위한 툴을 함께 개발했을 뿐이다. 개인적으로는 자체엔진을 쓴다는 것 자체가 이슈가 된다는 게 더 신기하다.
TIG> 엔진을 개발하면서 어느 때 보람을 느끼는가?
정호기: 개인적으로 비주얼 렌더링 쪽으로 관심이 많다. 그래서 광원 효과나 물 효과를 내가 원하는대로 만들었을 때의 쾌감과 성취감이 좋았다. 어려울수록 성취감은 더욱 커지는 것 같다.
그리고 하나의 툴을 만들어서 작업시간의 낭비 요소를 없애서 지속적으로 개발시간을 줄일 때 굉장한 보람을 느낀다. 예를 들어 가까이 있는 캐릭터는 디테일이 높지만 멀리 있는 캐릭터일수록 디테일을 떨어뜨려서 게임의 부하를 줄이는 기술을 추가할 때의 일이다.
이미 많은 게임에 적용된 기술인데 초기에는 멀리 있을 때, 중간 거리, 가까울 때 3가지에 따라 캐릭터를 일일이 수작업으로 만들다 보니 시간이 굉장히 오래 걸렸다. 어떻게 도와줄까 고민하다가 가까울 때의 캐릭터를 입력하면 자동으로 3가지 버전의 캐릭터를 만드는 툴을 개발했다. 이로 인해 작업 기간이 대폭 줄어들었고 무척 뿌듯했다.
LOD 기능 자동 적용 툴 영상
유종문: 콘텐츠나 클라이언트와 성취감의 차이가 있는 것이, 엔진은 유저에게 보여주는 것보다 다른 프로그래머가 작업할 수 있는 근간을 도와주는 일이다. 겉으로 잘 드러나지 않다 보니 유저보다 프로그래머를 사이에서 더 인정받는 편이다.
엔진은 과학으로 비유하자면 순수과학이라고 할 수 있다. 게임에 직접적으로 영향을 미치는 것은 아니지만 간접적으로 오래 영향을 미친다. 그만큼 다른 프로그래머가 우리가 만든 툴로 더 좋은 퀄리티의 콘텐츠를 만들어 낼 때 큰 보람을 느낀다.
TIG> <레이더즈>에서 가장 신경 쓴 부분은 무엇인가?
정호기: 로딩하고 렌더링해야 할 것이 많은 MMORPG이기 때문에 랙 없이 원활하게 움직이는 것이 가장 중요했다. 그래서 어떤 하나의 효과를 강조하기보다 개별 기능의 최적화에 신경을 많이 썼다.
만약 어느 한 부분에서 로딩이 길어지면 3층(레이더즈 개발팀)에서 내려와서 로딩이 느리다고 해서 게임을 출시하지 못하겠다고 압박을 넣기도 했다(웃음).
TIG> <레이더즈>와 <건즈 2>는 같은 엔진으로 개발 중이다. 그럼에도 다른 부분이 있을 것 같다.
나자영: MMORPG인 <레이더즈>는 리소스를 많이 쓸 수 없다 보니 제약이 많다. 같은 기능이라도 제한이 덜한 <건즈 2>는 더 리소스를 많이 쓰면서 고퀄리티 그래픽을 선보일 수 있는 것 같다. 대신 <레이더즈>는 넓은 맵에서 쾌적하게 플레이할 수 있다는 것이 장점이다.
TIG> 언리얼 엔진 4 테크 데모가 공개됐다. 어떤 생각을 했는가?
정호기: 이번 테크 데모는 다이렉트X 11을 적극 활용해 훌륭한 모습을 보여줬다. 몇 년 전부터 다이렉트X 11을 주제로 한 책이 많이 나오고 있는데 우리는 아직 다이렉트X 9로 개발하고 있어 관심을 갖지 못하고 있었다. 이제 <레이더즈>도 한숨 돌린 만큼 열심히 공부해야겠다고 생각했다.
윤종문: 엔진 데모를 보면 정말 퀄리티가 좋다고 느꼈다. 반면에 한국은 엔진 개발자가 많이 줄어는 것 같아서 안타까웠다. 엔진 개발을 위한 환경이 더 잘 조성되면 좋을 것 같다.
나자영: 툴에서 바로 게임을 실행해 테스트하는 모습을 보면서 언리얼 엔진도 빠른 개발의 추세에 동참한 것이 아닌가 싶었다. 우리가 맞게 가고 있긴 하구나라는 생각이 들더라. 이제 사실적인 표현은 거의 극에 달한 것 같다. 이제는 아티스트가 원하는 것을 얼마나 잘 표현할 수 있도록 도와주느냐가 더 중요한 것 같다.
또한 각종 물리효과나 상호작용으로 변화는 환경, 그래픽 카드의 연산을 가속화하는 기술을 보면서 역시 대단하다는 생각도 했다.
실시간 텍스쳐 편집 툴 영상
■ “엔진 프로그래머 준비는 국영수 중심으로”
TIG> 물리적인 효과가 많이 들어가다 보니 물리학이나 수학에 대한 공부도 많이 필요했을 것 같다.
나자영: 내부에도 물리학이나 수학책을 보는 분들이 많이 있다. 책장에도 몇 권 꽂혀 있다. 일부에서는 물리나 수학 공식을 사용할 수만 있으면 된다고 하는데 그보다는 물리에 대해 조금 더 깊이 있게 공부하는 것이 좋다고 생각한다.
예를 들어 물리 효과를 보다 쉽게 적용할 수 있는 툴인 피직스의 경우 실행하면 엄청나게 많은 수의 파라미터가 우리를 반긴다. 나도 여기에 나오는 관성 텐서라는 용어를 몰라서 헤맨 경우가 있다. 적어도 어느 정도 괜찮은 물리효과를 바란다면 기본적인 공부는 필수라고 생각한다.
이외에도 매달 업데이트되는 언리얼 엔진 문서를 보면서 새로운 기술을 공부한다. 이렇게 죽도록 공부해야 한다는 것 역시 엔진 프로그래머의 장점(?)이라고 생각한다(웃음).
정호기: 예전에 자유낙하 프로그램이나 넉백 효과를 만들 때 자연스럽게 떨어지는 움직임을 만들기 위해 중력 가속도 같은 물리법칙을 많이 적용했었다. 학생 때는 물리에 큰 흥미가 없었는데 모니터로 직접 중력도 조절하면서 물리가 어떻게 적용되는지 확실히 알 수 있었다. 아마 학생 때도 이렇게 배웠으면 더 열심히 하지 않았을까 생각한다.
TIG> 엔진 개발을 목표로 하고 있는 사람에게 하고 싶은 말이 있다면?
나자영: 국영수 중심으로 공부하라고 말해주고 싶다. 특히 국어(웃음). 농담이 아니라 실제로 프로그래밍팀 내부에서 또는 다른 팀원들과 소통하고 요약해서 전달하는 것이 무척 중요하다. 또한 기술의 깊이 만큼 폭넓은 지식도 필요한 것 같다. 대부분의 코드는 인터넷에 존재하는 만큼 대부분 구글을 통해 찾을 수 있다. 하지만 관련 지식이 없다면 찾는 것 자체가 불가능해진다.
가장 주요한 건 역시 프로그래밍 실력이다. 역량의 70~80%는 차지하는 것 같다. 또한 프로젝트가 길어질수록 정신력이 중요해지므로 인문학적인 수양도 필요한 것 같다.
정호기: 개인적으로는 미니게임을 많이 만들었다. 이 기능은 어떻게 만드는지, 저런 기능을 어떻게 구현하는지 직접 만들어 보고 찾아보면 좋은 결과가 있지 않을까 생각한다.
처음 공부할 때는 책 위주로 하는 것이 좋은 것 같다. 게임 프로그래밍 젬스 같은 한 분야의 고전이라고 불리는 책은 괜히 고전이 아닌 것 같다. 그런 책을 정독할 필요가 있는 것 같다.
TIG> 리얼 스페이스 엔진을 상용화할 계획도 있나?
나자영: 그럴 계획은 없다.
TIG> 그 이유는?
나자영: 상용화를 위해서는 엔진 개발 능력 외에도 추가적인 능력이 필요한데 아직은 그런 여력은 없는 것 같다. 상용화 요청은 제법 많이 오고 있지만 전부 거절하고 있다. 이야기를 들을 때마다 뿌듯하지만 감당하기 어려 것 같다.
단기적으로는 <레이더즈>를 랙 없고 저사양에서 돌아갈 수 있는 게임으로 만들고 싶다. 이후에는 엔진을 업그레이드하며 차기작을 준비하고 싶다. 다음 세대를 준비하는 것이 우리의 역할이다.
개발자 3인은 카메라가 어색하다 보니 쑥스러워하는 모습을 보이기도 했다.