2012-04-09 49 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