2011-05-02 105 views
6

我剛剛發現我的手機位於對稱udp防火牆的後面,這意味着udp流量不可用。我的3g提供商是t-mobile,這是我國最大的提供商之一。我懷疑還有更多的移動3g提供商具有udp限制。通過移動網絡實時多人遊戲?

我打算開發一個實時遊戲。 udb似乎是快速移動的正確解決方案,但我無法使用udp,因爲那時我失去了靈活性(隨地玩,沒有wifi的許多地方)和大量觀衆(阻止udp的3g提供商)。

像umts和3G這樣的移動網絡具有很高的延遲,所以tcp(重發丟包和排隊)並不是理想的解決方案。

有沒有其他的選擇?或者應該放棄3g以上的實時遊戲?

回答

3

,實現了與你的遊戲邏輯滿意的延遲網絡實時這是非常困難(特別是如果你正在像第一人稱射擊遊戲,你可以讀到這裏克服一些延遲問題:networked physics)。

當談到移動網絡時,它變得更加困難: 當然,你可以讓你的生活更加輕鬆,只覆蓋WIFI連接,但是當沒有免費的WIFI連接時,你將失去所有想要玩3G的用戶是可用的(或者他們只是堅持3G連接,因爲他們不知道如何改變爲WIFI)。如果您選擇覆蓋3G,歡迎來到運營商地獄:沒有UDP,沒有套接字,沒有非標準端口,沒有長時間的停留,和hello斷開連接,你好奇怪的標題和你好奇怪的代理,現在乘以不同的數量世界各地的運營商,以及Voila,你會回答他們所有的問題。

我不是在嚇唬你,只記得你的實施過程中這些東西:
1.沒有插座或無標準端口的使用 - 插座不是由顯而易見的原因,運營商允許的,他們不希望你獲取資源,因爲在那段時間內,他們可以爲其他付費用戶服務;)如果您的遊戲邏輯允許,請嘗試在沒有套接字的情況下實施協議。
2.與海底的幾位朋友一起測試你的遊戲,或者使用可以爲你做的人羣測試服務。您可以通過自己的協議來校準延遲。
3.分配您的服務器將極大地幫助解決延遲問題。
4.確保你沒有通過網絡發送大量數據,要聰明,用設備的電池溫柔。
5.壓縮你的數據!

爲了充分披露:我在Skiller工作,我們爲Android開發人員(除其他人員)提供多人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/服務。