2012-04-09 48 views
2

我正在爲個人電腦進行在線回合制卡片遊戲。它設有一個大廳,它將自動更新活動遊戲列表,因此我將向許多客戶發送許多更新。我將有一個遊戲服務器。對於我來說,延遲對我來說並不算什麼大問題,如果球員有時需要等待額外的1/4秒,直到他們的牌被顯示出來,那麼這真的不值得我關注。我關心的是可靠性和穩定性。我希望能夠舉辦很多4人比賽,我也允許人們觀看特定的比賽。TCP vs Enet與大堂在線紙牌遊戲?

我也需要登錄他們,並記住他們的會話,如果他們斷開連接,以便他們可以回到遊戲中,如果他們斷開連接。

我在辯論的是如果我應該使用基於UDP的Enet或可靠的舊TCP/IP協議。

我最終需要能夠向他們發送附加內容,例如額外的副本,這些副本將採用zip文件的形式。但爲此,我確定有一個庫可以幫助我從HTTP源獲取這些庫。

如果任何人有任何一方或雙方的經驗,我會很感激您的意見。

Thnks

+0

你在談論的會話管理肯定會讓我傾向於TCP/IP。但我不熟悉Enet提出更加自信的答案。 – 2012-04-09 14:18:44

回答

2

我與經典的TCP,而不是一些圖書館已經竊取了正確的排序以及分組傳送可靠性爲不爲它設計的協議堅持下去。

Enet的說法是在爲「實時」遊戲提供速度的同時,擁有TCP的一些好處。這句話讓我想起FPS,這根本不是你的應用程序。

+1

我同意,並且由於您不太關心速度,因此使用基於UDP的庫沒有動機。 – vidit 2012-04-09 14:21:36

0

我還沒有與ENet合作過,但我已經快速閱讀過它的文檔,看起來它在某些情況下可能有用。

第一個問題:你需要一個可靠的數據包傳送機制,還是不可靠好? ENet可以做到可靠,但在這一點上,它有點類似於TCP,除非你需要它支持多流,否則我不確定這值得與之混搭。

如果不可靠是可以的,那麼下一個問題是:你需要ENet的數據包分段支持嗎?如果你的數據包會很小,那麼我會直接使用UDP。我很不清楚ENet如何使用UDP套接字以及它如何管理連接,所以我不清楚你是否有更多的開放式TCP套接字或許多開放式ENet連接。

+1

我需要可靠的數據包,因爲遊戲需要順序發生。 – jmasterx 2012-04-09 16:10:51