2012-01-14 2 views
0

그것의에 대한 최신 저거넛 보석 (https://github.com/maccman/juggernaut)저거넛 보석

나는의 말을하자, 대한 건축 생각하고, '도트 게임'. 이 메타 게임은 매우 간단합니다 : 로그인 한 각 사용자 (Juggernaut와 관련하여 채널 구독)는 JS 캔버스의 임의의 색상 점입니다. 사용자는 자신의 점을 어떤 방향 으로든 움직일 수 있습니다. 그게 전부 야.

저거넛은 연결된 클라이언트의 모든 데이터를 전송하고 푸시해야합니다. 예를 들어, 레일,

1) 클라이언트 (들) AJAX 같은 도트와 플레이어의 ID ([1, [10299])의 좌표를 가압 :

현재 나뿐만 아키텍처 immagine.

2) 레일은 저거 너트 푸시는이 채널을 듣고 모든 클라이언트에 다시 좌표)

3 저거넛

이 데이터를 푸시합니다.

Juggernaut.publish("coordinates_channel", [1, [10,299]]) 

문제 : 내가 픽셀 단위로하는 JS 캔버스에 '점'객체의 움직임을 필요로 할 때

1), 난 너무 많은 AJAX 요청을 전송해야합니다. 예를 들어, 내 점이 초당 20 픽셀을 움직이면 초당 20 회의 요청을 보내야합니다. 용납 될 수없는.

2) Juggernaut.publish를 비동기 루프 (예 : EventMachine 사용)로 랩핑해야합니까? 왜냐하면 1000 명의 클라이언트 (점 1000 개, 업데이트 된 좌표가있는 데이터의 일정한 흐름)를 옮겨 놓기 때문입니다 ...

혹시 저거 너트 보석을 사용하여 잘못된 클라이언트 서버를 얻었습니까? 이 구현에 대해 어떻게 생각하십니까?

감사합니다.

답변

3

WebSockets/Long polling/다른 혜성 기술은 대기 시간이 짧기 때문에 게임이 지연됩니다. 나는 웹 소켓을 통해 실시간 게임의 구현을 보았습니다. 어느 쪽이든 뒤떨어 지거나, 게임 메카닉이 특화되어 있습니다. 플레이어의 움직임을 느리게하여 대기 시간을 줄이는 것과 같습니다. 클래식 AJAX는 확실히 의문의 여지가 없습니다.

여기에 지연
Valve Source Multiplayer Networking
Unreal Source Multiplayer Networking

+0

감사 개선에 일부 리소스를합니다. 링크가 정말 흥미 롭습니다. 몇 년 전에 Quake3에 관해서 똑같은 것을 읽었습니다. –

관련 문제