【问题标题】:How to organize interaction between .NET online MMORPG server and client如何组织 .NET 在线 MMORPG 服务器和客户端之间的交互
【发布时间】:2012-05-09 02:31:30
【问题描述】:

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

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

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

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

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

是否有现成的解决方案?

【问题讨论】:

    标签: .net client-server mmo


    【解决方案1】:

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

    通信协议选择

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

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

    选择要发送的数据

    要记住的另一件重要的事情是发送最少的数据量,因此,与其序列化整个玩家对象,不如只发送 X;Y 作为玩家位置;)。

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-14
      • 2016-07-28
      • 1970-01-01
      • 2015-12-25
      • 2015-01-02
      • 1970-01-01
      • 2020-02-16
      • 2021-08-07
      • 2013-10-27
      相关资源
      最近更新 更多