Rev. 2.73

WPilot은 Johan Dahlberg씨가 Node.JS로 구현한 멀티플레이를 지원하는 웹소켓 게임입니다. 100% 웹브라우저 기반으로 구동되며, 고전 게임인 XPilot, Thrust 그리고 Gravity Force에서 영감을 받았다고 합니다. 이 게임은 "proof-of-concept" 프로젝트입니다. 어떠한 플러그인을 사용하지 않고도 HTML5 기술만으로 구현 가능성을 증명하려는 시도입니다.

게임 룰은 아주 간단합니다. 총 7개의 스테이지로 구성되어 있으며, 상대방을 쏴 죽이면서, 자신은 맞지 않도록 움직이고, 일정 점수를 획득하는 플레이어가 해당 라운드에서 승리합니다. 조작 또한 쉽습니다. 방향키를 이용하여 회전 및 추진 그리고 보호막을 사용합니다. 보호막이 시전되면 상대방의 총알을 흡수하고 벽에 부딪히면 튕겨납니다. 스페이스바를 눌러 총알을 발사합니다. 총알을 발사하고 보호막을 사용하는 데에는 에너지를 소모하니 주의가 필요합니다. 추가적으로 엔터키를 눌러 플레이어간 채팅(영문으로만 가능)을 할 수 있으며, "r"키를 눌러 준비상태로 전환할 수 있습니다. 준비된 상태의 플레이어를 잡으면 점수를 획득합니다. "s"키는 현재 스코어를 확인하는 창이 나타나는데 안누르는 것이 좋습니다; 게임중 호출할 수 있는 채팅창에는 몇몇 특수 명령을 내일 수 있습니다. 예를 들어, "/name Firejune"을 입력하면 이름이 변경됩니다. 이외 대부분 명령은 관리자를 위한 것으로 관리자 권한을 얻거나, 맵을 변경하거나, 특정 플레이어를 쫓아낼 때 사용됩니다.

획득가능한 아이템도 있습니다. 이 아이템은 일정 시간동안 유닛의 성능을 향상시킵니다. 녹색 아이템(Rapid fire)은 발사속도를 증가시키고 에너지 소비 비용을 절감합니다. 파랑색 아이템(Ricochet)은 총알이 벽에 부딛혀 튕겨 다니는 상태가 됩니다. 끝으로 빨간색 아이템(Spread fire)은 WPilots에게 가장 무서운 능력을 부여하는데 두개의 측면 대포가 추가로 장착됩니다. 이 이템을 먹은 플레이어를 보았다면 즉시 도망가십시오.

이상은 사이트의 설명을 옮긴 것이고 개발얘기로 들어가 봅시다. github로 부터 WPilot을 클론하여 실행했을 때에는 약간 이상한 현상을 보였습니다. 총알이 나가지 않는 현상과 파이어폭스에서는 플레이되지 않는 현상이었습니다. 총알이 나가지 않는 현상은 서비스되고 있는 곳의 소스를 비교 결합하여 해결할 수 있었고 파이어폭스에서 진행되지 않는 현상은 서비스에서도 마찬가지로 발생하고 있었습니다. 원인은 파이어폭스가 아직 WebSocket을 제공하지 않기 때문이며 이러한 경우 대체되는 플래시소켓 소스가 제대로 작동하지 않아서 였습니다. 이 소스는 Socket.IO에서 제공하는 플래시소켓 소스와 유사했으며, 이것으로 교체하고 초기화하는 코드를 추가하여 파이어폭스에서도 정상적으로 플레이할 수 있도록 하였습니다.(WPilot은 Socket.IO 모듈을 사용하지 않습니다.) 이로써 브라우저가 context.fillText를 포함한 Canvas API만 지원하는 브라우저들(e.g. IE9)에서도 즐길수 있게 되었습니다. 그리고 크로스-도메인을 지원하도록 몇몇 옵션을 추가했습니다. 조금더 큰 화면에서 즐기실 분은 wpilot.firejune.io를 이용하세요.

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar