현재 상당히 흥미로운 여러 웹 기술들이 새로이 모습을 드러내고 있습니다. HTML5와 CSS3가 길을 닦아나가고 있으며 여기에 구글사의 네이티브 클라이언트(Native Client)가 가세해 좀 더 풍부하고 다양한 일들이 가능하도록 하고 있습니다. 그런데 네이티브 클라이언트가 무엇인지 들어보신 적이 있으신가요. 이 네티이브 클라이언트는 구글 크롬(Google Chrome)에서 네이티브 코드(일반적인 프로그램)의 실제 실행을 가능하도록 해주는 기술로 말그대로 '프로그램 코드 실행'이 가능해지기 때문에 웹에서는 불가능한 일도 가능해지게 됩니다. 네이티브 코드 실행, 프로그램 실행이라는 말 때문에 엑티브 엑스(ActiveX)나 자바(Java)를 떠올리시는 분도 계실듯 하지만, 이 두 거대한 공룡과는 달리 훨씬 더 가벼우며 무엇보다 별도로 격리된 샌드박스(Sandbox) 안에서 동작하기 때문에 상당히 안전합니다.


로버트 아이작(Robert Isaacs)이라는 분은 이 '네이티브 클라이언트'라는 기술을 올바르게 잘 활용해, 크롬에서 도스박스(DosBox)를 실행할 수 있도록 해주는 NaClBox를 개발해 냈습니다. 도스의 고전게임을 한 번이라도 즐겨본 사람이 있다면 반드시 거치게 되는 바로 그 도스박스(DosBox)를 말이지요.


프로젝트는 아직 1년이 채 안되었지만 상당히 인상적입니다. 최근 들어서는 자신만의 도스(DOS) 게임을 업로드해 클라우드에 저장해 놓고 언제 어디서나 실행할 수 있도록 해주는 가장 흥미로운 기능을 클로즈드 베타(Closed Beta)로 오픈했습니다. 


이번 글에서는 현 시점에서 NaClBox가 어떤일을 할 수 있는지 살펴보며 클로즈드 베타가 제공하는 기능에는 어떤것들이 있는지 살짝 살펴보도록 하겠습니다. 로버트에 따르면 이 클로드즈 베타의 기능은 곧 일반에도 공개될 예정이라고 합니다.



크롬에서 도스 게임 플레이하기


구글사는 아직 정식 크롬 버전에서 바로 네이티브 클라이언트를 사용할 수 있도록 해두지는 않았습니다. 네이티브 클라이언트는 기본적으로 비활성화 되어 있습니다. 하지만 크롬의 시험 버전을 설치하지 않더라도 여전히 네이티브 클라이언트를 사용해 볼 수 있습니다. 크롬 웹 스토어(Chrome Web Store)에 올라와 있는 앱들은 특별히 손을 보지 않아도 바로 네이티브 클라이언트 기술을 사용할 수 있습니다. 따라서 이번글에서 소개할 에뮬레이터 환경을 실행할 수 있는 가장 빠른 방법은 크롬 웹 스토어로부터 NaClBox 앱을 설치하는 것입니다.  설치가 끝나면 크롬 도스박스인 NaClBox를 사용할 모든 준비가 끝나게 됩니다.



이제 NaClBox 갤러리(Gallery)로 이동해 플레이 할 수 있는 게임에 어떤것들이 있는지 살펴보시면 됩니다. 글을 쓰고 있는 현재 풀게임과 쉐어웨어 게임을 포함한 총 18가지 게임이 실행 가능한 상태이며 작곡을 위한 애드리브 트래커(AdLib Tracker)와 같은 프로그램도 포함되어 있습니다. 갤러리에 있는 게임들은 도스 명령을 입력할 필요없이 "플레이" 버튼을 클릭하는것 만으로 간단하게 실행할 수 있습니다. 로딩이 진행되는 동안 잠시 기다리고 나면 눈앞에 마법이 펼쳐지는 모습을 발견하시게 될겁니다. 혹시 실행에 문제가 생긴다면 NaClBox를 설치하지 않았기 때문에 발생했을 확률이 높기 때문에 앞서 언급했던 NaClBox를 크롬 웹 스토어를 통해 설치하시면 됩니다. 


운영체제에 따라서 각 게임의 조정키를 바꾸고 싶은 경우가 생길수도 있습니다. Mac OS X의 경우, Ctrl + 방향키 조합이 가상 바탕화면(Spaces) 사이를 전환하는 단축키이기 때문에 Ctrl 키를 사용하는 게임에서 불편함이 발생할 수 있습니다. 이런 경우 컨트롤키 대신 다른키를 사용하도록 변경해야 겠지요. 게임키 설정은 각 게임별로 따로 적용되며, 키를 바꾸려고 하는 경우에도 각 게임의 설정 화면이나 옵션으로 들어가서 해줘야 합니다. 



듀크뉴켐 1, 2(Duke Nukem I, II)나 Epic Pinball과 같은 훌륭한 게임도 몇 가지 포함되어 있으며, 로버트씨가 최초로 업로드 했다는 "원숭이섬의 비밀(The Secret of Monkey Island)" 데모 버전도 눈여겨 볼만 합니다. 원숭이섬의 비밀은 상당히 유명한 어드벤처 게임인데 도스 시절 컴퓨터를 사용해 보신 분이라면 아마 잘 알고 계시리라 생각합니다. 

한 가지 아셔야할 사실은 갤러리내의 게임에서 저장한 세이브 데이터가 영구히 보존되지 않는다는 점입니다. 이후 사이트에 다시 방문하게 될 경우 세이브 데이터가 존재하지 않을 겁니다. 이러한 제한 사항은 My NaClBox로 극복할 수 있습니다.



자신만의 도스 게임 플레이하기


"My NaClBox"는 사이트가 가진 가장 흥미로운 기능(그리고 오래 기다려왔던 기능)의 이름입니다. My NaClBox를 사용하면 자신만의 도스 게임을 업로드 할 수 있으며, 설정과 세이브 데이터가 서버에 저장되기 때문에 언제 어디서나 원하는 도스 게임을 즐길 수 있습니다. 한마디로 자신만을 위한 클라우드 기반의 도스 에뮬레이터가 생기는 셈이지요. 


현 시점에서 사이트의 이 기능은 클로즈드 베타(Closed Beata) 상태이지만 로버트씨의 말에 의하면 "CPU 부하가 큰 게임들을 좀 더 많이 즐길 수 있도록 동적 재컴파일 기능을 위해 노력하고 있다(...hard work on dynamic recompilation for playing more CPU intensive games...)"고 하며 머지 않은 시점에 모두에게 공개할 예정이라고 합니다. 혹시 클로즈드 베타에 가입해서 지금 당장 My NaClBOx를 사용해 보고 싶으실 경우 사이트내의 양식을 통해 클로즈드 베타 테스트 참여를 신청하시면 됩니다. (영문)




우선 My NaClBox 홈페이지로 이동하신 다음 화면 상단에 보이는 "베타 가입하기(Join the Beta!)" 버튼을 클릭합니다. 




푸른색 버튼을 클릭하면, 위와 같은 형태의 클베 신청을 위한 입력 화면으로 이동하게 됩니다. 여기에서 자신의 이름, 이메일, 그리고 게임 사용 예정을 적은 다음 "베타 신청 보내기(submit beta request)"를 누르시면 신청 과정이 완료되게 됩니다. 그리고 나서 메일로 오게될 답변을 기다리면 되겠지요. 물론, 모든 내용은 영어로 적으셔야 합니다. ^^;


전 운이 좋게도 베타 접근 권한을 획득하게 되었고 제가 좋아하는 게임들 중 몇 가지인 Terminal Velocity, Rise of the Triad, Frontier와 같은 게임들을 테스트해 봤습니다. 테스트 과정에서 느낀점은 이 기능 자체가 클라우드에 위치한 하나의 거대한 도스박스(DosBox)와 같으며 업로드 과정도 꽤나 매끄러웠다는 점입니다. 새로운 게임이나 프로그램을 추가하려면 왼쪽 메뉴에서 "프로그램 추가(Add Application)"을 클릭한 다음 이름을 입력하고 "생성(Create)"를 눌러주면 됩니다. 입력한 이름의 게임 그룹이 생성되면 "파일 추가(Add Files)"를 클릭해 파일 업로드 인터페이스를 열고 여기에서 게임이 저장된 폴더를 선택해 업로드하면 됩니다. 게임 폴더의 경우 8자 이내의 짧은 이름을 지정해 주는게 좋은데 이는 모든 실행 환경이 도스이기 때문에 그렇습니다. 그래서 저의 경우 "Terminal Velocity"의 경우엔 "terminal"로, "Rise of the Triad"의 경우에는 "rott"로 폴더 이름을 정해줬습니다.



게임 폴더를 업로드 하고나서 "Play Game"을 클릭하면 익숙하게 볼 수 있었던 DOSBox 창이 뜨게 됩니다. 그런데 데스크탑 버전의 도스박스가 특정 위치로 (예: C:\) 드라이브를 매핑(연결) 해줘야만 사용할 수 있었던 것과는 달리, NaClBox는 현재 게임이 저장된 디렉토리를 자동적으로 C:\로 사용합니다. 그래서 게임이 저장된 폴더를 업로드 하고나면 바로 접근해 들어가서 원하는 도스 명령을 실행할 수 있습니다. 예를 들면 앞서 언급했던 "Rise of the Triad"를 실행하고 싶을 경우 "cd rott"를 입력해 게임 디렉토리로 이동한 다음 "rott"를 입력해 바로 게임을 실행할 수 있습니다.



제가 테스트해본 모든 게임 실행의 성능은 전반적으로 매우 좋았습니다. 우선 갤러리에 있는 모든 게임(사이트를 방문한 모든 사람이 플레이할 수 있는 초기 화면의 18종 게임)들은 흠잡을데 없이 잘 동작했고, Terminal Velocity도 잘 동작했습니다. 고전 FPS인 Rise of the Triad의 경우 너무 부드럽게 잘 동작한 나머지 30분에 가까운 시간동안 처음 플레이했던 느낌으로 게임을 했습니다.



저장된 세이브 데이터들은 게임을 떠났다가 나중에 다시 돌아와도 그대로 남아 있었으며 조작키 설정, 최고 점수(High Score) 데이터도 그대로 남아 있었습니다. 제 생각에 이러한 기능들은 클라우드 기술을 정말 새롭고도 기발한 형태로 사용한 훌륭한 사례가 될것 같습니다. 




결론


My NaClBox는 아직 완벽하게 완성된 상태가 아니지만, 언제 어디서나 최신 버전의 크롬만 있으면 바로 접속해서 플레이 할 수 있는 클라우드 기반의 도스 고전게임에 큰 흥미가 생기실 경우 본문 중간부에서 언급한 클로즈드 베타 신청 양식을 통해 베타 가입을 한 번 시도해 보시길 권해 봅니다. 네이티브 클라이언트(Native Client)는  상당히 흥미로운 신기술임에는 틀림이 없어 보입니다. 앱들이 클라우드에서 풀스피드로 실행되도록 하는 "크롬 OS(Chrome OS)"에 대한 구글의 비전과도 딱 들어 맞는것 같고 말이지요. 크롬을 사용하는 대부분의 사용자에게 있어 네이티브 클라이언트는 생소한 신기술에 머물러 있지만, 결국에는 크롬에서 즐겨 사용하는 웹 앱들의 상당수가 이 새로운 오픈소스 기술을 사용하게 될것입니다.


이번글에서 소개한 NaClBox와 구글사의 네이티브 클라이언트(Native Client)에 대해 어떻게 생각하시는지요. 의견이 있으시면 댓글로 남겨주세요.


[+] 업데이트! - 2013년 08월 05일 확인: 온라인 멀티 플레이 기능이 추가되었습니다!

오늘 확인해 보니 도스 게임으로 친구와 멀티 플레이 게임을 즐길 수 있는 기능이 추가되었군요. 미처 생각지도 못했는데 이런 기능이 추가되다니, 정말 놀랍습니다. 어떻게 이런 기능까지 생각해 낸 것인지 궁금할 정도입니다. 기능을 실행하면 멀티 플레이 실행에 필요한 모든 과정과 설정이 자동으로 진행되며, 자동 설정이 잘 안될 경우에는 시리얼 포트(COM1)의 모뎀 연결을 에뮬레이션 한다고 합니다. 상당히 흥미로운 기능이지요. 좀 더 자세한 사항을 알고 싶으신 분은 링크의 이 글을 한 번 읽어 보세요. (영문)