2010-10-25 77 views
2

我對多人遊戲相當陌生。我爲自己的樂趣做了一些,但沒有深刻的。xmpp的點對點多人遊戲

無論如何,我想製作一款非常跨平臺的遊戲。客戶端將在我發佈遊戲的設備(最有可能的計算機(通過閃存),iPhone和Android)上與他們的Facebook帳戶連接。我是一個有限的預算(實際上更像是沒有預算)的獨奏開發者。所以,我想通過點對點連接來製作遊戲。我想避免使用客戶端/服務器設置,因爲維護服務器的成本很高。我遇到的問題是沒有辦法通過互聯網連接同行,而且遊戲並不意味着要通過本地wifi進行播放。

所以,我有一個想法。我可以使用Facebook內置的xmpp聊天功能通過互聯網發送遊戲的多人遊戲通信嗎?我之前有過用於多人遊戲的xmpp頭像。有沒有人有任何其他想法?我知道xmpp可以通過點對點連接,但是可以通過互聯網以某種方式完成。我不希望用戶不得不亂用路由器設置來玩。

感謝您的幫助!

+0

這取決於您是否希望添加多玩家聊天,或者您是否嘗試使用協議來同步遊戲數據? – mikerobi 2010-10-25 19:40:11

+0

我很害怕我沒有澄清。我正在使用它來同步數據。 – Lance 2010-10-25 19:41:45

回答

0

P2P系統的主要問題是NAT和防火牆。防火牆可以在本地打開,NAT不能在99%的情況下。在IPv6世界中不會有NAT,所以P2P將免費。

現在你想使用Facebook的XMPP API的P2P多人遊戲。那麼......由於上述原因,Facebook的XMPP實際上是客戶端/服務器。 Facebook的所有API都是將傳輸層隱藏到應用程序中,這意味着您可以在實際通過Facebook服務器傳輸時將消息發送給「其他用戶」。 Skype是P2P +服務器環境的另一個例子。如果兩個用戶站在NAT後面,則會自動使用代理服務器。

這主要是與FB的XMPP是相同的,所以你可以用走的,除非你的Facebook用戶會看到很多奇怪的消息在他們的聊天窗口:)

+0

Grr。我以前很怕那個。有沒有辦法在消息進入聊天窗口之前獲取消息。可能不會。你有關於如何通過互聯網進行點對點通信的任何想法。我想使用Facebook的聊天服務器,這樣它就可以使用他們的帶寬:P我讀了一些地方,你可以使用服務器來連接你的用戶,然後這個遊戲可以是點對點的。當然,我不知道該怎麼做。感謝您的快速回答! – Lance 2010-10-25 20:01:19

+0

對不起,我也不知道。你可能會嘗試自己嘗試,mabye聊天消息有一個特殊的格式,它被過濾。 XMPP是一個協議,並不僅僅是聊天。我不是那方面的專家。我發現你的NAT問題並從這個角度回答你。但我不是Facebook API的專家 – 2010-10-25 20:03:39

+0

好的,謝謝。我只是意識到我有另一個問題......遊戲需要能夠一次連接兩個以上的人。 – Lance 2010-10-25 20:14:52

0

我認爲你不能建立一個多玩家遊戲只需使用facebook jabber服務器。您需要在自己的服務器上安裝定製的jabber組件,以便在遊戲用戶之間傳輸的xmpp數據包上執行遊戲業務邏輯。

這將(可能)涉及在您的末端編寫定製Jabber組件協議XEP-0114Bosh Connection Manager組件。如果您正在尋找使用PHP開發應用程序,您可以看看Jaxl庫(PHP中的XMPP組件和客戶端庫)

+0

好的,謝謝。我想我已經決定放棄使用xmpp來同步遊戲的想法(至少對於對等)。一廂情願的想法,但我不認爲我可以把它關閉。 – Lance 2010-10-26 23:05:28

+0

我想我會嘗試構建一個使用非常少量帶寬的簡單匹配服務器(至少與完整的客戶端/服務器設置相比)。其中一個用戶將成爲超級對等或本質上的服務器。我將看看NAT的突破性進展,看看我能否引入同行並讓他們接管後續內容(無需使用全功能專用服務器)。 – Lance 2010-10-26 23:09:00