HTML5로 만드는 PvP 게임

Google I/O에서 흥미로운 세션이 있어서 잠시 들어봤습니다.
HTML5로 Player vs Player 게임을 만드는 프로젝트 발표인데요.
온라인 게임 초창기 작업과 비슷하게 매우 다양한 웹쪽 툴을 써서 개발하였습니다.


특히 메인 서버를 두고 전체 게임에 대한 계산을 중앙에서 처리하고,
클라이언트 쪽에서 또한 계산을 주기적으로 한다음 서버와 통신하면서 보정을 해가나는 구조는
PvP 게임을 처음 만드는 분들에게는 상당히 유익한 구조 설명이 되겠습니다.
서버쪽 데이터를 우선순위에 두는 것은 당연한 것 같고요.
발표한 colton의 결론입니다.

1) HTML5 PvP Game Possible.
HTML5로 PvP 게임 가능하다

2) Bandwidth reduction crucial for high-performance gameplay
패킷 통신 량을 줄이는 것이 퍼포먼스에 치명적으로 중요하다.

3) Invest in proper client-side prediction and latency hiding
구현하고자 하는 PvP 게임에 맞는 적절한 예측 알고리즘, 딜레이를 숨기는 알고리즘에 대한 연구가 필요.

4) Websocket works really well
웹소켓 정말 잘 된다~ ㅎㅎㅎ

5)Canvas works for simple things.
Especially if you don’t want to write a GL engine
Use Off-dom caching for faster canvas performance
GL로 가지 않고도 간단한 게임은 캔바스로 구현 가능하다.   Off-dom 캐슁을 사용하라.

5)Atlasing is crucial for decreasing load-times
아틀래이싱(이미지를 하나로 만들어, css에서 해당 이미지를 참조하는 것)이 로딩 타임 감소에 결정적이다.

6)Utilizing HTML5 for UI was a mega win
다른거 필요없고 UI를 위해 HTML5를 사용하라~

소스코드와 데모사이트는 아래에서 확인하세요.
http://gritsgame.appspot.com
http://code.google.com/p/gritsgame/
그리고 Colton의 1시간 짜리 발표 영상입니다.

게임 구현을 위한 기술입니다.
발표시에 언급된 기술만 정리하자면…
Boilerplate / HTML5 / JS / Box2D / OGG / NodeJS / Socket.io / Tiled(map editor) / Texture Packer

정도입니다.