2009-06-18 4 views
0

많은 수의 멤버를 지원하고 실시간 액션을 제공하는 bbg를 구현하고 싶습니다.실시간 브라우저 기반 게임

현재 게임이 실행 중이지만 조만간 불타 버릴 것 같습니다.

내가 사용하는 방법은 폴링입니다. 내가 유휴 사용자의 낭비가 서버를 태워 버릴 것 같아요 (서버는 C#이고 클라이언트는 자바 스크립트입니다)

어떻게 해결할 수 있습니까?

답변

1

항상 약간의 지연이 있습니다. 난 당신이 하나의 업데이트에 대한 폴링 있는지 확실하지 않습니다,하지만 당신은 행위에서 볼 수의 일부 지연 강렬한 서버 자원 낮추기 위해 다음 모든 업데이트에 대해 한 번

  • 설문 조사를. 한 번의 호출에서 "생명의 수"를 폴링하지 않고 다른 호출에서 "위치"를 폴링하지 마십시오.

  • 업데이트가 적어 질수록 폴링이 적습니다. 많은 업데이트가있을 때 자주 폴링합니다. 새로운 업데이트가 없거나 적을 때 자주 폴링합니다.

  • 마지막으로, 업데이트가 발생한 시간에 대한 여러 업데이트를 보내겠습니다. 그러면 플레이어 x가 5,5로 이동 한 다음 누군가를 공격하고 5,8로 이동한다고 가정 해 봅시다. 그것은 한 가지 설문 조사에서 다시 나타나는 세 가지 다른 사건 일 것입니다. 프런트 엔드는 사용자에게 이해되는 방식으로 이러한 변경 사항을 시간에 따라 표시 할 책임이 있습니다.

나는 이것이 최종 해결책이라고 생각하지 않습니다. 이는 폴링 측면을보다 잘 처리하는 방법에 대한 제안입니다.

0

실시간으로 반응해야하는 항목이 있으면 폴링이 작업을 수행하지 않습니다. 장기간 실행중인 HTTP 연결 등을 통해 지속적인 연결을 사용해야 할 필요가 있습니다. (혜성)

+0

나는 Comet에 관한 연구를했다. 하지만 그것은 여러 요청을 아주 잘 처리 할 수없는 것 같습니다. 나는 혜성을 어떻게 구현하는지 궁금하다. – thethanghn

0

HTTP의 지속적인 연결/폴링은 까다로울 수 있으며, 어쨌든 매우 효율적이지는 않습니다. 서버 푸시 된 메시지를 지원하는 플러그인 기반 게임으로 마이그레이션하는 것이 좋습니다. 어쩌면 Unity이 기본적으로 게임용이지만 Flash가 더 유비 쿼터스 한 것을 원한다면 Flash이기 때문에 가능합니다.

정말로 HTML을 고수하고 싶다면 플러그인을 통해 메시지를 전달하고 응답에 DOM을 다시 쓰는 하이브리드 솔루션이 효과적 일 수 있습니다.

+0

플러그인을 사용할 수 있습니까? – thethanghn

+0

플래시, 실버 라이트, 자바 및 유니티 모두 필요한 것을해야합니다. – SpliFF

3

아마도 http://goldfishserver.com일지도 모릅니다 (예 : 혜성 서버). 웹 페이지에 푸시 알림을 허용하는 간단한 API를 제공합니다. 즉, 데이터가 업데이트되면 Goldfish 서버로 전송 (일부 페이로드 데이터)하고 클라이언트 브라우저는 동일한 데이터로 통보됩니다.

회전 기반 게임은 금붕어에 이상적입니다. 디자인에 따라 더 큰 '대형 시스템'을 사용할 수도 있습니다.

면책 조항 : 나는 금붕어를 연구하는 개발자입니다.

관련 문제