2011-05-02 2 views
6

나는 방금 udp 트래픽이 불가능하다는 것을 의미하는 대칭 udp 방화벽 뒤에 내 전화기가 있다는 것을 발견했습니다. 내 3g 공급자는 우리 나라에서 가장 큰 t- 모바일 중 하나입니다. 나는 더 많은 모바일 3g 제공 업체가 udp 제한을 가지고 있다고 의심합니다.모바일 네트워크를 통한 실시간 멀티 플레이어 게임?

저는 실시간 게임을 개발할 계획입니다. udb는 빠른 움직임을위한 올바른 솔루션 인 것처럼 보였으 나 udp는 사용할 수 없습니다. 그 이유는 융통성 (어디에서나 Wi-Fi없이 여러 장소에서 플레이)과 큰 잠재 고객 (udp를 차단하는 3g 공급자)을 잃을 수 있기 때문입니다.

umts 및 3g와 같은 모바일 네트워크는 대기 시간이 길기 때문에 tcp (손실 된 패킷을 재발송하고 대기열에 넣음)는 이상적인 솔루션이 아닙니다.

다른 대안이 있습니까? 아니면 3g 이상의 실시간 게임 아이디어를 삭제해야합니까?

답변

3

게임 논리에 대한 대기 시간을 만족시켜 네트워크를 통해 실시간으로 달성하기가 매우 어렵습니다. 특히 1 인칭 슈팅 게임과 같은 게임을 만드는 경우 여기에서 대기 시간 문제를 극복 할 수 있습니다 : networked physics).

모바일 네트워크에 대해 이야기 할 때, 물론 더 편안해질 것입니다. 물론 WIFI 연결 만 커버 할 수는 있지만 물론 WIFI 연결이 없을 때 3G를 통해 게임하고 싶은 모든 사용자를 잃을 수 있습니다. 사용할 수 있습니다 (또는 그들은 단순히 WIFI로 변경하는 방법을 모르기 때문에 3G 연결로 붙어 있습니다). UDP, 소켓, 표준이 아닌 포트, 긴 시간 제한 및 안녕하세요 연결 끊김, 안녕하세요 이상한 헤더 및 안녕하세요 별난 프록시가 3G 번호를 커버하도록 선택한 경우 다른 번호로 번식합니다. 사업자 및 Voila '모든 문제를 커버.

난 그냥 구현 동안 이러한 것들을 기억, 당신을 겁 주려고하고 있지 않다 :
1. 없음 소켓 또는 없음 표준 포트의 사용 - 소켓 분명한 이유에서 운영자에 의해 허용되지 않습니다, 그들은 당신이 원하지 않는를 그 시간 동안 다른 유료 고객에게 서비스를 제공 할 수 있기 때문에 자원을 가져갈 수 있습니다.) 게임 로직이 허용하는 경우 소켓없이 프로토콜을 구현하십시오.
2. 바다 위의 친구들과 함께 게임을 테스트하거나 당신을 위해 할 수있는 군중 테스트 서비스를 사용하십시오. 자체 프로토콜을 통해 대기 시간을 보정 할 수 있습니다.
3. 서버를 배포하면 대기 시간 문제를 해결하는 데 크게 도움이됩니다.
4. 네트워크를 통해 많은 양의 데이터를 보내지 말고, 똑똑하고, 장치의 배터리에 친절히 따르십시오.
5. 데이터를 압축하십시오!

전체 공개 : 나는 스킬러에서 일하고 있으며, 사회 계층, 사용자 관리, 수익 창출 등과 같은 무료 도구로 안드로이드 개발자를위한 멀티 플레이어 SDK를 제공합니다. 우리는 멀티 플레이어와 관련하여 많은 문제를 보았습니다. 3G와 우리는 클라이언트와 서버 측에서 개발자의 삶을 편하게하기 위해 작성한 알고리즘으로이를 보완합니다. 우리를 시험해보고 싶다면 : www.skiller-games.com

0

많은 다른 모바일 플랫폼에서 작동하도록 설계된 클라우드 기반의 실시간 메시징 서비스가 있습니다. 게임에서 종종 게시/구독하기를 원할 것입니다. 따라서 http://pubnub.com입니다. 이들은 대기 시간이 적은 14 개의 데이터 센터로 클라우드 인프라를 관리합니다. API는이를 위해 설계된 보안 및 현재 상태 API로 게임에 이상적입니다. 베타 버전의 새로운 객체 데이터 동기화 API를 사용하여 코딩을 줄일 수 있습니다.

내가 좋아하는 중요한 이유는 수년간 비즈니스를 해왔고 API가 대부분의 전세계 3G 및 회사 네트워크에서 테스트 되었기 때문입니다.

기타 여기에는 pusher.com, realtime.co 및 Google의 새로운 https://cloud.google.com/pubsub/ 서비스가 포함됩니다.