2011-02-10 2 views
0

Game Center 매치 메이킹/멀티 플레이어를 사용하여 2 인승 턴베이스 게임을 구현했습니다. 즉 GKMatch을 사용했습니다. 잘 작동한다. 한 가지 문제가 있습니다. 한 명의 플레이어가 연결을 끊으면 (즉, 앱을 종료 할 때) 다른 플레이어가이를 알게되기까지 어느 정도 시간이 걸립니다 (match:player:didChangeState:). 때로는 30 초.Game Center 멀티 플레이어, 매우 긴 연결 시간 초과

좋은 UX가 아닙니다. 다른 플레이어가 이미 30 초 전에 연결을 끊으면 플레이어가 아무 것도 기다리지 않기를 바랍니다.

2 질문 :

  • 이 단지 샌드 박스 서버에 문제가 있습니까?
  • 그렇지 않은 경우이 대기 기간을 단축/제거하려면 어떻게해야합니까?
+0

아마도 네트워크 문제가 원인 일 수 있습니다. 다른 네트워크로 시도해 보셨습니까? – ender

+0

안녕하세요, 비슷한 유형의 문제가 있습니다. 저는 4 인용 멀티 플레이어 게임을 구현했습니다. 이제 1 명의 플레이어가 연결이 끊긴 상태에서 3 명이 모두 연결이 끊어지면 1 플레이어가 연결 해제되고 나머지 3 명이 계속 플레이해야합니다. 그것은 가능합니다. 그리고 –

답변

0

나는 내 자신의 코드에 의해 처리 전화를받을 수있는 게임을 종료 .. GC의 notifyPlayer에 DC에 이르기까지 모든 것을 의존하지 않았다 .. 내 코드에 대한

, 플레이어 A는 홈 버튼을 누를 때, 의미 응용 프로그램 대리인의 applicationDidEnterBackground에서 플레이어 A가 게임을 종료했음을 알리기 위해 데이터가 플레이어 B에게 전송됩니다. 이렇게하면 플레이어 A가 종료 될 때 플레이어 B가 즉시 플레이어 A가 종료되었음을 알게됩니다. gamecenter가 사용자에게 알리기를 기다리는 대신 ..

+0

불행히도 이것은 내 문제를 해결하지 못합니다. 내 게임은 iOS 4 백그라운드 작업을 사용하여 백그라운드에서 일시적으로 계속 진행되므로 사용자가 홈 버튼을 눌렀을 때 연결이 닫히는 것을 원하지 않습니다. – Rits

+0

이것은 까다 롭습니다 .. 하하 .. 플레이어 A가 홈 버튼을 눌렀을 때 BG에서 실행하기를 원했기 때문에, 플레이어 A가 정말로 게임을 종료하고 싶어하는지 어떻게 알 수 있습니까? 게임이 어떤 조건에서 연결 해제됩니까 ?? – xuanweng

+0

플레이어는 20 초 동안 자신의 차례를 할 수 있습니다. – Rits