Sunday, December 2, 2012

[Google HackFair 2012, Korea] CboxConsole 소개

오래간만에 포스트를 하네요. ^_^
2012년 11월 17/18일 양일간 Google Korea에서 개최한 Google HackFair에 참가를 할 수 있었습니다. 참가를 위해 출품한 프로젝트는 Cbox Console이라는 프로젝트 입니다.



Cbox Console의 경우는 상업적인 목적으로 탄생 한 것이 아니라, Chrome브라우저의 가능성을 선 보이고 싶어서 만든 프로젝트 입니다. 하지만, 개발 이후에 좀 더 발전 시키면 좋은 플랫폼이 될 듯 하여 v.0.2개발을 착수하였으며 조만간 보강하여 선보일 수 있도록 하겠습니다. 앞으로도 플랫폼의 상업적인 면은 배제할 것이지만, 게임 제작자들에게는 수익을 드릴 수 있는 방법을 강구 해 볼 예정입니다.
우선, 이해를 돕는데 도움이 될 듯 하여 구조도를 간략하게 그려봤습니다.



Native Client(이하 NaCl)을 이용하여 외부 기기와 연동을 하고, Cbox Console에서 Home과 Games부분을 컨트롤 하도록 하였습니다. Home의 경우에는 Script로 간단하게 제어가 가능 하지만, Game의 경우 외부 URL에 있는 부분을 제어해야 합니다.
우선 Extensions나 App개발에서 Contents Script의 경우 데이터를 연동하기가 까다로운 부분이 있어, 도입한 라이브러리를 소개 시켜드립니다.
https://github.com/ohgyun/pubsub라는 라이브러리를 도입하였으며, 사용법은 다음과 같습니다.

[App 부분] 


[manifest.json]



위와 같이 필요한 부분에 pubsub를 로드 시키고,


[Pub를 할 부분 / 데이터를 송출]




[Sub를 할 부분 / 데이터를 수신]




그리고, Contents Scrript의 경우 Dom은 컨트롤이 되나, Script는 이용할 수 없습니다.
그래서 다음과 같은 방법을 도입하였습니다.(v.0.2에서 Sandbox를 제작하여 보완 할 예정입니다.)
게임 컨트롤러 부분에서는






위 방식으로 cboxscript라고 정의 된 게임 페이지내부의 id 영역을 가져와서 실행을 시킵니다.

게임 페이지 부분에서는



위 방식으로 하여 게임을 컨트롤 할 수 있게 되었습니다.
이 외에도 랭킹 서버, 드라이버 연동  등 많은 부분이 있지만, 개념상 가장 핵심적인 부분이라고 생각 되는 부분을 간략하게 살펴봤습니다.
Cbox Console는 아직 부족한 프로젝트이지만, Web에서 할 수 있는 모든 게임의 가능성을 열고, Console Game기로서의 발전을 생각하고 있습니다. 별다른 장비 없이 Chrome과 자신의 게임 컨트롤러만 있으면 어떠한 게임도 즐겁게 할 수 있는 세상을 생각하고 있으며, 많은 관심과 참여 부탁드리도록 하겠습니다.
마지막으로 이렇게 해서 만들어진 Cbox Console v.0.1의 시연화면을 보시며 마무리 하도록 하겠습니다. 감사합니다.