1

我目前正在为一项任务编写一个基于回合的在线 rpg。在游戏中玩家可以互相聊天并在完成一个回合后发送他们的动作。处理玩家之间数据交换的最佳方式是什么。套接字或将所有信息存储在数据库中,并且程序会定期请求检查任何更新?除非有更好的方法。

请注意,这款游戏的规模很大,即很多玩家会同时在同一个服务器上玩多款游戏,所以我必须尽量提高效率。

4

3 回答 3

3

在 Silverlight 中,您只能连接回为 Silverlight 应用程序提供服务的主机,因此排除了客户端-客户端套接字。您游戏中的所有内容(包括聊天)都必须通过服务器进行。

Windows Communication Foundation (WCF) 非常适合在 Silverlight2 中使用。让你的游戏回合制让事情变得更容易一些,因为这意味着你不必在玩家之间实时保持完全相同的游戏状态(即:不以最大 100 毫秒的延迟为目标)。

于 2009-02-12T20:54:36.670 回答
1

如果可能,请使用 WCF。

于 2009-02-12T20:35:14.453 回答
1

有两种主要的可能性。您可以应用Sockets通信,也可以使用Duplex WCF。以下是权衡:

套接字 => 性能优于较低的生产力
双工 WCF => 性能较差但生产力更高

对于这两种场景,网上都有一些很好的例子,但如果决定使用 WCF 解决方案,这里有一些资源:

Peter McG的一个非常好的教程
来自 msdn 的有关双工 WCF 的信息。

于 2009-02-24T15:33:53.697 回答