2012-05-29 62 views
1

我正在玩基於撲克牌的Android遊戲(準確地說是Bridge),可以玩四個球員在時間。並且會有一個可通過Web訪問的服務器,設備將連接到該服務器,並且服務器將跟蹤遊戲進度。爲Android創建多人遊戲服務器的理想方法(一款非常基本的圖形遊戲)

我的遊戲非常基礎,當涉及到圖形時,我可以在不使用任何遊戲引擎的情況下獲得UI。雖然我應該爲Android開發遊戲(客戶端),但我想在未來的遊戲端口中開發服務器,它可以是RE-USED,即使它被移植到其他移動平臺或甚至桌面。

因此,我認爲第一個可能的候選人的服務器體系結構具有RESTful Web服務,這樣我可以與任何客戶端,只要客戶端的編程到底支持HTTP方法充分利用服務器。

但後來我意識到,因爲在整個遊戲過程中設備和服務器之間會存在持續連接,所以擁有這樣一臺服務器會好起來,在請求被響應後連接將終止(我不是確定如果是真的)?

或者我應該使用DatagramSocketDatagramPacket的Java方式來構建服務器嗎? (將確保服務器的可重用性?)

任何其他意見或建議?

注:我不是新的Java或Java中,網絡編程,但我是新既Android的發展和創建RESTful服務。

回答

1

我認爲您的基於HTTP的計劃適合這種情況,我不認爲持續連接的問題與緩慢基於遊戲的遊戲(如橋接)有關。

編輯:正如tdreger所建議的,幾乎所有的Android文檔都建議您計劃通過不同的渠道進行例行連接失敗和重建,因爲html連接似乎是最具彈性的解決方案。

我想請你把它獨立客戶端的想法是正確的和重要的 - 在這種光線的HTTP想法顯然要好得多,因爲它會容易編寫其他語言的客戶端應用程序(你可能會想要 - 用於Web客戶端的Javascript和用於iOS應用程序的Objective-C)。

我也認爲Android開發會更容易,因爲Android和appache對這些類似HTTP的連接有強大的支持。

+0

好的,我應該繼續RESTful的方式?我還沒有開始深入研究如何在Java中創建RESTful服務,因爲我認爲在開始工作之前首先確定這種情況,之後才意識到RESTful不是這裏的解決方案。 – Kushal

+1

是的 - 我認爲以適當的方式作爲fdreger的Restful方式表示,寧靜以下是比特定技術更適合的策略。 – Elemental

3

在爲Android編寫代碼時,不要規劃持久連接。連接斷開很頻繁(並且通常有很好的理由,比如從GSM切換到wifi)。 HTTP是一個偉大的,受歡迎的並且經過驗證的選擇(你可以從你的方式中獲得一些較低級別的堆棧,並且可以專注於處理有效負載)。

BTW:在這個上下文中說「RESTful web服務」毫無意義 - 你需要的是一個提供數據和接受命令的HTTP服務器,而不是一個將你的遊戲邏輯組織爲一組有狀態資源的心智框架。