XNA 에 대한 고찰
작성자: 네이선 파우츠(Nathan Fouts) 작성일: 2013 년 2 월 5 일
네이선 파우츠(Nathan Fouts)는 2006 년에 인섬니악 게임즈(Insomniac Games)를 그만 두고 인디 개발자로 나섰다. 그는 개발 플랫폼으로 마이크로소프트의 XNA 를 최종 선택했는데, 이 글은 그 툴에 대해 돌아보고 평가하는 것이다. 마이크로소프트는 XNA 서비스를 중단1한다고 지난 주에 밝힌 바 있다.
XNA 게임 스튜디오(XNA Game Studio)는 마이크로소프트(Microsoft)가 개발해서 2006 년에 발매한 툴 세트이다. 미드 레벨의 코드 기반 개발용 라이브러리 세트로, 에디터가 탑재된 언리얼(Unreal)이나 유니티(Unity)는 하이 레벨에 속한다.
XNA 는 2010 년에 마지막으로 업데이트됐다. 마이크로소프트는 2014 년 지원 중단 계획을 지난 주에 공식적으로 발표2했다. 또한 윈도우 8 에서도 XNA 를 지원하지 않을 예정이라고 밝혔다.
이제, XNA 가 개발자와 게이머들에게 어떤 존재였는지 알아보자.
인디 개발자로 성공하기 전에
시간을 거슬러 2006 년으로 가보자. 싱어 송 라이터 씨 로 그린(Cee Lo Green)이 TV 보다 라디오에서 더 잘 나갈 때다. 영화 <보랏(Borat)>이 선풍적인 인기를 누리고 있다. 제임스 본드(James Bond) 영화는 훨씬 더 나아져서 주인공이 아주 터프해 보인다. 조지 워싱턴 부시(George W. Bush)는 대통령 재임에 성공했고, 부통령은 사냥 중에 친구를 쐈다!
인디 게임은 아직 인기가 없다. 인디 게임을 광적으로 좋아하는 사람들은 “그렇지만 <엔(N)>과 <랙돌 쿵푸(Rag Doll Kung Fu)> 게임을 해본걸요. 켄타 조는 천재인 것 같아요!”라고 말하기도 한다. 그렇지만 인디 게임 산업은 아직 수 백만 달러를 벌어들일 정도로 성장하지 않았다. 험블 번들(Humble Bundles)도 없고, <마인크래프트(Minecraft)>와 <브레이드(Braid)>가 나오려면 몇 년을 더 기다려야 한다. 대부분의 게이머들이 인디 게임을 모른다.
나는 인섬니악 게임즈에서 일한다. <레지스탕스: 인류 몰락의 날(Resistance: Fall of Man)>의 무기를 개발한다. 플레이스테이션 3 발매와 동시에 출시됐다. 지난 해에 엑스박스(Xbox) 새 버전이 나왔다. 마이크로소프트는 엑스박스 최초 버전 발매 이후 처음으로 엑스박스 라이브 아케이드 스토어(Xbox Live Arcade store)를 업그레이드 했다. 게이머들이 <지오메트리 워즈(Geometry Wars)>를 수백만 번 다운로드 했다는 소문이 들린다. 수백만 번이라고? 소규모 게임인데다가, 오프라인 매장에서 파는 것도 아닌데! 게다가, 겨우 5 달러라고? 잠시만, 몇 사람이서 그 게임을 만들었다고? 겨우 두 명? 정말?
내 스튜디오를 내고 콘솔 게임을 디렉팅할 계획으로, 오래 알고 지낸 프로그래머 친구에게 마이크로소프트의 MDX(Managed DirectX)에 기반한 엔진으로 작업해 달라고 부탁했다. 여러 시스템이 들어와야 하기 때문에 작업이 느리게 진행되어서 몇 달이 걸렸다. 드디어 일을 어느 정도 마무리했을 때, 우리는 게임 디자인과 새 엔진을 사용법에 대해서 의논했다.
그런데, MDX 가 XNA 새 버전으로 대체될 거란 말이 들린단다. 친구는 XNA 첫 버전을 다운로드 했기 때문에 그간 작업한 결과가 전부 무용지물이 된 셈이다. 그의 말에 따르면, XNA 새 버전의 기능을 그가 모두 만들어 내려면 몇 년은 걸릴 것이다. 그간 그가 해온 미드 레벨 게임 개발 라이브러리 구축 작업의 수준을 뛰어넘기 때문이다.
XNA 첫 버전 로고
XNA 의 용도
XNA 게임 스튜디오는 프로토타입 개발의 이상향이다. 당신이 꿈꾸는 것이라면 뭐든지 만들어 낼 수 있을 정도로 로우 레벨이다. 그러면서도, 하이 레벨 시스템들의 장점을 고루 갖춘 덕분에 작업 부담을 굉장히 많이 줄여준다. 그래픽, 오디오, 인풋, 스토리지, 네트워킹 등이 뛰어난 API 에 담겨 있다. C/C++에서 C#으로 넘어가는 과정에서, 이런 라이브러리를 무료로 사용할 수 있다는 게 믿기지 않을 정도로 좋았다.
나는 1998 년부터 게임 개발을 했는데, 주로 C/C++과 언리얼스크립트를 사용했다. 그 전에 C#으로 프로그래밍을 해 본 적이 없었는데도, XNA 를 쓴 지 4 개월 만에 레벨 에디터, 애니메이션 에디터, 오브젝트 구성 시스템을 아주 강력하고 튼튼하게 구축했다. XNA 기반 에디터를 사용한 지 일 년 만에, 내 첫 번째 인디 게임인 <웨폰 오브 초이스(Weapon of Choice 3 )> 개발을 마쳤다. 대부분 혼자 작업했고, 결과물이 좋아서 2010 년 기네스 기록에 올라가기도 했다. XNA 는 그 정도로 강력한 툴이다.
XNA 는 고급 3D 비주얼을 효과적으로 지원할 뿐만 아니라 2D 렌더링 작업 기능도 고루 갖추고 있어서, 아마추어와 프로 모두 사용하기에 좋다. 기능을 최대한 사용하면 가비지 콜렉션(Garbage Collection)과 플로팅 포인트 처리 속도가 느려져서 작업에 큰 걸림돌이 되기도 한다. 그러나, XNA 로 만든 뛰어난 게임들을 보면 알 수 있듯이, 해결 가능한 문제들이다. 업계에서도 XNA 의 진가를 알아봐서, <게임 디벨로퍼 매거진(Game Developer Magazine)>에서 주는 프론트라인 상을 두 개 받았다.
XNA 는 엔진보다는 사용성이 뛰어난 라이브러리 시스템으로서 더 빛을 발한다. 그래서 다른 엔진들처럼, “XNA 느낌”이란 게 없다. 인기 많은 XBLA(Xbox Live Arcade, 엑스박스 라이브 아케이드) 및 스팀 게임들이 XNA 로 만들어졌다. <디시워셔(The Dishwasher)> 시리즈와 <테라리아(Terraria)> 같은 게임이 그 예이다. 한편, 메릴랜드에서부터 켄터키, 아리조나에 이르기까지 전국의 학교에서 XNA 를 학교 프로젝트에 사용하고 있다.
※ 자세한 내용은 첨부(PDF)화일을 참고하시기 바랍니다.
|