1

我目前正在考虑构建一个简单的 MMORPG。

这个想法是拥有一个 .NET 服务器和可下载的客户端应用程序。

组织客户端-服务器交互的最简单有效的方法是什么?

我想到了一个网络服务,但它看起来效率很低,只要客户端必须快速执行许多游戏动作(例如移动、拾取物品、攻击其他玩家等)

创建自定义通信协议是一项非常复杂的任务。

是否存在任何现成的解决方案?

4

1 回答 1

1

我在开发游戏通信协议方面不是很有经验,但是,由于一段时间没有答案出现在这里,我可以与您分享我的意见。

通讯协议选择

我想你可以结合两种沟通方式:

  • UDP用于需要快速接收且您经常发送的信息,因此丢失单个数据包不会成为问题。您可以使用 UDP 发送信息,例如:动画的播放器位置
  • TCP用于获取重要且您必须确保已收到的信息,例如捡起的物体、玩家击中其他玩家、任务开始/完成等。

选择要发送的数据

要记住的另一件重要的事情是发送最少的数据量,所以宁愿只发送 X;Y 作为玩家位置而不是序列化整个玩家对象;)。

设计通信 API 并在服务器和客户端之间划分职责可能取决于一些事情,例如游戏类型和安全性与性能:做更多的计算并将更多的责任放在客户端可以导致更好的服务器性能,但会降低安全性游戏,因为这样更有可能有人会尝试作弊)。

一些示例链接只是为了让您入门:

于 2012-05-07T18:07:27.783 回答