무엇이 최선의 건에 대한 다양한 게임 서버는 이야기 할 필요가 각각 다른?

StackOverflow https://stackoverflow.com/questions/608674

문제

이 게임은 낮은 그래픽(SVG)전략 게임이다.각 서버는 게임으로 도메인합니다.모든 서버에 할 수 있어야한 이야기를 각각 다른 선수로 이동할 수 있습니다(게임)에서 도메인을 도메인/send"메신저 외교"etc..

우리가 선택한 이는 아이디어로 그것이 우리가 할 수 있습을 확대하는 세계 지도 끝없이,그것은 두 번째 파티를 연결하는 게임 서버를 우리와 그대 세계합니다.만약 한개의 서버(및 백업)이 실패하면 게임은 여전히 계속 실행(부산 환경).

우리는 단지 시작에 불과합니다.어떤 플랫폼에서 거기는 우리에게 보는 것입을 개발하는 데 도움이 같은가?

도움이 되었습니까?

해결책

이전에 Jabber로 알려진 XMPP는 시작하기에 좋은 장소 일 수 있습니다.

다른 팁

많은 이에 따라 얼마나 많은 데이터를 공유할 사이에 서버에 있습니다.당신이 원하는 각 서버는 그것을 처리하는 자신의 도메인이지만,어떤 계정에 데이터베이스,데이터에 대해 소유 정보,지형의 도메인은 이러한 데이터가 될 것 중앙 및/또는 배포하고 당신은 어떻게 그들이 동기화됩니다.그래서 옆에서의 작용 게임,거기에 또 다른 설정된 메타데이터는 서버 통신해야 합니다.으로 게임에 대한 데이터,아마 당신은 주위에 전달,이벤트 데이터 개체에 대한 정보를 데이터를 소유권 및 제어 할 수 있습니다.이 상단에있는 일부 게임에서 메타데이터가 시계를 유지하 도메인 시간 동기화됩니다.

나는 것 아마의 시스템을 사용하는 비동기 큐를 가진 다른 우선순위에 대한 메타데이터 요청에 응답 메시지입니다.프로 XMPP 위에 메시지를 교환하는 당신을 가져올 수 있는 존재한 정보,인증,암호화와는 다른 장점이 있습니다.하지만 시작에서,배달 프로토콜 자체만큼 중요하지 않는 구조의 메시지와의 교류이다.본질적으로 배달 프로토콜을 사용할 수 있습니다.

: 한 플레이어를 전송하는 게임 유닛 X 에서 도메인을 도메인 B.도메인 서버에 보내는 메시지와 이벤트 도메인 B server.을 처리하는 동안 큐의 이벤트는 메시지를 보내는 요청하는 요청을 큐에 대한 데이터에 대한 단위 X 와 권한을 제어하는 수정/데이터의 유닛 X요청 큐의 우선 순위가 더 높을 것 처리하기 전에 다른 행사에 도메인 A.도메인 보내는 요청된 데이터 및 제어 토큰을 도메인 B 응답 큐 가장 높은 우선 순위입니다.한편 도메인 B 서버가 이미 처리되 3 다른 이벤트를 기다리지 않고,세션에 있습니다.

  • 참고: 해야 하는 오래된 버전이나 제거 데이터에 대한 단위×이 시점에서.는 경우에 요청에 대한 데이터에서 도메인 C,그것은 앞으로 이 요청을 서버 B 니다.
  • 참고: 위의 예에서 최적화할 수 있습을 보낼 데이터에 대한 단위 X 와 직접 해당하는 이벤트,하지만 내가 원하는 간단한 예제를 보여줍니다.

중요한 것은 당신이 설계하는 것이 데이터 캡슐화 프로토콜,아마 어떤 XML 스키마.프로토콜에 대한 이벤트를 처리합니다.이벤트 목록,허용된 응답을,오류 메시지,회복이다.사람들은 모든 게임에 특정합니다.

Erlang과 CouchDB를 진지하게 고려하거나 Google Appengine에서 구현했습니다.

그것이 진정으로 배포되면 중앙 서버에 대한 계획이 없다고 생각합니다. 즉, 당신이 실제로 찾고있는 것은 다양한 서버들 사이의 통신 메커니즘이라는 것을 의미합니다. REST와 XML-RPC는 서버가 서로 대화하여 사용자가 서로 이동해야한다는 의사 소통 할 수있는 간단한 메커니즘입니다.

Daniel이 말한 것처럼 XMPP와 같은 것을 사용할 수는 있지만 다른 서버 소프트웨어 세트를 게임 자체를 실행하는 모든 것과 함께 믹스에 연결해야합니다 (설명에서 추측하는 것은 아마도 웹 일 것입니다. 어떤 종류의 앱 서버).

개발 관점에서 볼 때 웹 앱 개발에 강한 모든 언어/프레임 워크가 작동해야합니다. Ruby on Rails, Python on Django, 수많은 프레임 워크와 Java, 심지어 PHP (ICT)가 개발 작업에 효과가있을 것입니다.

나는 과거에 이와 같은 것을 고려했지만 다양한 서버를 심사하는 문제 (즉, 파손되거나 악의적 인 서버를 어떻게 처리하고 플레이어가 동시에 같은 부분을 2 ~ 3 개의 다른 서버로 이동할 수 있습니까?) 드롭 아웃 서버 (마지막으로 존재했던 플레이어에게 어떤 일이 발생하는지) 등은 매우 어려운 것처럼 보였습니다.

첫 번째 질문은 게임이 실시간인지 이벤트 중심인지, 클라이언트가 브라우저인지 여부입니다. 이벤트 중심처럼 들리지만 서버는 결과적으로 결과적으로 결과를 Java 애플릿, 임베디드 플래시 영화 등으로 만 결과로 푸시 할 수 없다는 것을 기억하십시오. 사용자 정의 클라이언트가있는 경우 HTTP를 사용할 필요가 없습니다. -서버-> 서버 및 서버-> 클라이언트 통신을 의미하는 서버의 스타일 시스템은 동일한 방식으로 수행 할 수 있습니다.

P2P 게임에 대한 "관심 관리"논문을 찾아야합니다. 정말 흥미로운 접근 방식에 직면하게됩니다. Google Schoolar는 당신에게 정말 좋은 서류를 선보일 것입니다.

그러나 분산 응용 프로그램을 개발하는 것은 단순한 단일 서버 접근 방식보다 훨씬 더 복잡합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top