当前位置:  开发笔记 > 编程语言 > 正文

基于回合制的多人游戏:WCF还是Socket?

如何解决《基于回合制的多人游戏:WCF还是Socket?》经验,为你挑选了1个好方法。

我想就我的问题提出建议.

我们正在创建一个具有以下功能的多人互联网国际象棋游戏:

    游戏将支持非常大量的并发用户

    我们将保存每个游戏在磁盘上的物理移动(例如使用SQL Server数据库)

    我们也将使用相同的SQL Server for Sessions

    多个游戏服务器将用于负载平衡/可扩展性

    所有游戏服务器都将相互连接

    所有游戏服务器也将连接到该SQL Server

    由于这是国际象棋游戏,因此只有2个用户可以玩游戏

    无限数量的用户可以作为受众(广播)实时查看此游戏

    观众/游戏用户可以选择私下或公开发送和接收聊天消息.

    我们将在数据库中维护自己的用户列表.因此,我们需要一个自定义身份验证系统.

客户端将是桌面Windows窗体/ wpf应用程序.我们也在考虑基于在线浏览器的版本,但我们已将其用于未来,目前我们专注于桌面版.

现在我的问题是?

    我们应该使用哪种技术,套接字或WCF?

    序列化,XML或二进制或自定义二进制文件的首选方法是什么?

任何其他建议/建议/方向也欢迎.

谢谢



1> 小智..:

在这里我的意见.

套接字

(+++)比WCF更快(特别是如果你使用UDP)

(+)将来你会在硬件上花费更少,因为带套接字的app会有更好的可扩展性

( - )你将花更多的时间在开发上

( - )你将在开发上花更多的钱

( - )您需要设计自己的协议或使用足够合适的协议

( - )很难退出API

( - )对第三方开发者来说很难

WCF

(+)避免运输级别的任何问题

(+)易于扩展API

(+)它将节省您的开发时间

(+)易于提供第三方API

(+)你将花更少的钱用于开发

( - )它比套接字慢

( - )你将在硬件上花更多的钱,因为使用WCF的应用程序将具有更差的可扩展性

无论你要使用什么类型的序列化,WCF都会比套接字慢.

无论如何你不会使用"HipHop for PHP".我认为,答案是,使用WCF创建简化的客户端和服务器应用程序.使用不同的绑定,序列化等将其加载到最大值(如您所愿).如果WCF可以处理负载并具有良好的保留,那么我假设您可以使用它.如果不是 - 使用套接字.

也许是使用这两种技术的最佳方式.性能至关重要的套接字(例如,将游戏服务器彼此连接),其他部分的WCF(例如发送和接收聊天消息).

我相信这两种技术还有很多其他论点.但我认为问题是:你想让它更快或更容易维护.它是一个经常添加功能的应用程序,还是一个负载将以几何级数增长的应用程序.等等

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有