HTML5와 node.js로 만든 MMORPG 'BrowserQuest'


HTML5는 표준화 작업이 진행중인 프로젝트입니다. 상용 서비스에 사용되기에는 아직 완벽하지 않습니다. 하지만 가까운 미래에 웹 전반에 걸쳐 활약하는 표준 언어가 될 것이라는 점은 분명합니다. 따라서 HTML5의 활용은 가능한가, 불가능한가를 묻기 보다는 오늘이냐, 내일이냐를 물어야 하는 시점입니다.


HTML5는 웹의 다양한 서비스에 활용되는 많은 API들로 구성되어 있습니다. 웹에서 게임을 구동시키기 위한 기반 기술들도 착실히 발전해가고 있는데요. 그 중 특히 Canvas 2D, HTML5 Audio, WebGL, WebSocket 등은 게임 제작에 활용 되는 기반 기술들입니다. 이들은 다른 API들에 비해 좀 더 빠른 속도로 발전하고 있고 표준화 작업의 막바지인 'Last Call' 상태에 와있습니다. 그렇다면, 이 시점에서 현재까지의 기술로 어느 정도 수준의 게임이 만들어 질 수 있을까 궁금해집니다.


이 질문에 대한 좋은 답변을 내려줄 수 있는 게임이 하나 있습니다. 'BrowserQuest'는 파이어폭스의 mozilla 재단에서 실험적으로 개발 한 오픈소스 HTML5 MMORPG 게임으로서 순수하게 HTML5의 새로운 기술들로만 제작 되었습니다. HTML5의 최대 장점인 'One Source Multi Use' 컨셉에 따라 웹과 모바일 등 다양한 플랫폼에서 자유롭게 플레이가 가능합니다. 도트 디자인의 2D 게임인데다가 '젤다의 전설' 컨셉을 입혀서 옛 추억이 새록새록 솟아납니다. 플레이 영상을 한번 보시죠.



이제 이 게임이 어떤 기술들을 이용하여 제작되었는지 살펴볼 때 입니다. 이 게임을 개발한 업체는 'Little Workshop'으로 웹의 새로운 기술들을 적극적으로 사용하는 재미있는 회사입니다. 아마도 그런 성향 덕분에 mozilla에서 믿고 맡긴 것 아닐까요?

이 회사 홈페이지의 Work 섹션에는 흥미로운 게임의 배경 이야기들을 적어놓았는데요. 게임을 개발하게 된 계기, 컨셉, 그리고 어떤 기술들이 사용되었는지도 친절하게 설명하고 있습니다.

우선 mozilla에서 사람들에게 보여주고 싶었던 가장 첫 번째 기술이 'WebSockets' 이었습니다. WebSocket은 기존 웹의 단순한 네트워킹 기능을 뛰어넘는 실시간 양방향 통신을 지원하는 기술입니다. 이 기술로 자연스러운 멀티플레이어 게임을 만들어서 HTML5로의 실시간 웹 게임이 어느정도 수준까지 와있는지를 보여주고 싶었 던 것 같습니다.

렌더링은 여러 HTML5 Canvas를 레이어로 쌓아서 그려냈고, 다양한 디스플레이 환경에서 보기 좋은 화면을 구성할 수 있도록 리스폰시브(Responsive) 레이아웃이 적극적으로 활용되었습니다.

서버 사이드의 기술에서 주목할만한 기술은 바로 'node.js'입니다. node.js는 자바스크립트 언어를 서버측에서 사용하는 놀라운 발상으로 세상을 놀래킨 기술로서, 이벤트 구동 방식으로 작동하여 비동기 서버 제작을 가능하게 해주는 프레임워크입니다. 이 게임 역시 이를 이용하여 클라이언트와 서버, 양측에서 모두 자바스크립트를 사용하였으며 그 덕분에 중요한 로직들이 같은 언어로 공유되었습니다. 이들이 가장 심혈을 기울였던 부분은 단연 '많은 유저들을 무리없이 처리하는' 네트워크 가용성이었는데요. 게임 오픈 후 약 2달간 여러 서버에 로드 밸런싱을 하며 최대 3,000명의 동시 접속자와 100만명의 누적 접속자를 받아냈다고 합니다.

사실 HTML5로 '잘' 만들어진 게임을 찾기는 쉽지 않습니다. 업체 입장에서 미래가 불확실한 기술에 선뜻 인력을 투입한다는 것은 쉬운 결정이 아니죠. 이런 상황에서 mozilla의 쇼케이스 성격이 짙은 BrowserQuest는 HTML5의 기술이 현재 어디까지 와 있는지를 살펴 볼 수 있는 좋은 계기가 되었습니다. 특히, 서버 사이드에서 활용 된 node.js는 아직까지 게임 분야에서 적극적으로 활용 된 적이 거의 없기 때문에 더욱 의미 있게 느껴집니다.


0 comments:

댓글 쓰기

Powered by Blogger.

Popular Posts