当前位置: 首页 > news >正文

青岛网站制作公司网络郑州seo外包阿亮

青岛网站制作公司网络,郑州seo外包阿亮,新区快速seo排名,网站建设需要的网络技术Stone Monarch 从一开始就支持多人游戏,但随着时间的推移,网络模型经历了多次迭代。我最初基于这篇著名的帝国时代文章实现了点对点锁步模型。 点对点锁定步骤有一些众所周知的问题。点对点方面使玩家很难相互连接,并增加了每个新玩家的网络…

Stone Monarch 从一开始就支持多人游戏,但随着时间的推移,网络模型经历了多次迭代。我最初基于这篇著名的帝国时代文章实现了点对点锁步模型。

点对点锁定步骤有一些众所周知的问题。点对点方面使玩家很难相互连接,并增加了每个新玩家的网络负载。锁定步骤方面很容易出现棘手的错误,导致玩家之间的游戏状态不同步。我当前的架构引入了服务器,并且还放宽了锁步的一些确定性要求。它仍然使用“回合”的锁步概念来确保每个客户端运行相同的模拟,并且在没有收到所有玩家的命令的情况下不会继续进行。

客户端-服务器锁定步骤

锁步转弯示例

游戏分为一系列固定持续时间的“回合”。游戏开始时的第一步是确定 1 回合的长度。这是通过测量消息从每个客户端到服务器的往返时间来完成的。服务器选择最长的时间作为回合长度。在游戏过程中,可以根据观察到的网络性能调整回合长度。

每当玩家想要执行某个操作时,请求的操作就会立即发送到服务器。服务器聚合它收到的所有操作,直到到达下一个回合边界。此时,服务器向所有客户端发送轮次消息,其中包含未来 1 轮要执行的操作。当客户准备好执行下一个回合时,他们应该已经收到模拟回合所需的所有信息。

在上面的示例中,转弯长度已设置为 100ms。服务器在第 1 轮期间接收操作,并在第 2 轮开始时发送包含第 3 轮操作的轮次消息。该消息应及时到达客户端,以便客户端执行第 3 轮。

处理延误

客户端延迟

如果其中一个客户端在准备好执行该轮次时没有收到轮次消息,则它必须暂停模拟,直到收到来自服务器的轮次。一旦它收到回合,它就可以立即开始再次执行。此时客户端将稍微落后于服务器的模拟,因此更有可能及时接收轮流。然而,玩家的命令发出和执行之间的延迟将会增加。

服务器端延迟

为了防止客户端远远落后于服务器的模拟(并遭受高命令延迟),服务器可以尝试检测到这一点并暂停其自己的模拟。为此,客户端可以在发送到服务器的每个操作中包含当前游戏时间。然后服务器将该时间与自己模拟中的当前游戏时间进行比较。如果差异大于 1 圈的长度(或任何任意长度),服务器可以暂停以允许客户端赶上。如果任何其他客户端在模拟中进一步领先,这可能会导致它们也暂停,直到所有客户端彼此更加同步。

在我最初的实现中,我使每次暂停的长度等于 1 圈的长度,这似乎是合乎逻辑的,可以防止客户在模拟中向前或向后滑动。然而,当前的方法极大地减少了暂停发生时的持续时间。通常,玩家甚至不会注意到它们。现在可以允许慢速客户端稍微落后于其他客户端,理论上他们可能处于劣势,因为他们的操作将需要更长的时间来执行。然而,这可以被服务器限制,所以我总是可以调整它以找到合适的平衡。

调整转弯长度

如果服务器观察到太多的暂停,它可以通过在轮次消息中包含新的轮次长度来增加轮次长度。所有客户在开始执行新回合时都将应用此规则。这将同等地增加所有玩家的命令延迟。

相反,如果服务器在一段时间内没有观察到任何暂停,它可以减少回合长度,从而为所有玩家提供更低的命令延迟。

非确定性事件

在传统的锁步网络中,每回合仅发出玩家命令,其余模拟预计将在客户端之间确定性地进行。然而,某些游戏逻辑很难保持确定性,尤其是在 Unity 中,游戏引擎不提供任何此类保证。

在这种情况下,我确保非确定性游戏逻辑仅执行一次,并将结果作为其自己的操作以及玩家请求的操作一起发布。

例如,假设玩家攻击了一枚炸弹,导致其爆炸。玩家发出所有客户端执行的攻击动作。在炸弹爆炸的地方,需要检查周围区域,看看哪些单位会被击中。这是使用不确定的 Unity API 完成的。因此,只有一个客户端(可能是拥有炸弹的客户端)将进行此模拟并将结果(应该受到伤害的单位列表)作为新操作发送到服务器。通过这种方式,每个客户端的模拟仍然是相同的

如果存在作弊问题,服务器可以代替客户端来计算这些操作。这将要求服务器运行与客户端相同的模拟。这是我正在努力的方向,尽管目前客户仍然做出一些不确定的决定。

这种方法的优点是,仅当某些特定的游戏逻辑预计是不确定的时才需要发送额外的数据。任何确定性的事情(例如村民继续收集直到他们的资源已满)都不会使用任何额外的网络资源。它也比重写 Unity 功能以使其具有确定性更容易实现,尤其是在物理方面。

缺点是,如果我错了,认为某些事情是确定性的,但事实并非如此,它仍然会导致游戏不同步。


文章转载自:
http://dinncophotodissociation.ssfq.cn
http://dinncomegalocardia.ssfq.cn
http://dinncohaemin.ssfq.cn
http://dinncoulceration.ssfq.cn
http://dinncovagueness.ssfq.cn
http://dinncohellenic.ssfq.cn
http://dinncogrisgris.ssfq.cn
http://dinncokunming.ssfq.cn
http://dinncouncrate.ssfq.cn
http://dinncounespied.ssfq.cn
http://dinncotendence.ssfq.cn
http://dinncopseudepigraphy.ssfq.cn
http://dinncocarcinectomy.ssfq.cn
http://dinncoblackcurrant.ssfq.cn
http://dinncoagamy.ssfq.cn
http://dinncopock.ssfq.cn
http://dinncoazeotropy.ssfq.cn
http://dinncosforzato.ssfq.cn
http://dinncothurible.ssfq.cn
http://dinncoribosome.ssfq.cn
http://dinncomolwt.ssfq.cn
http://dinncoembacle.ssfq.cn
http://dinncoreinflate.ssfq.cn
http://dinncoricky.ssfq.cn
http://dinncocompactly.ssfq.cn
http://dinncoraincape.ssfq.cn
http://dinncocontemptibility.ssfq.cn
http://dinncoheteronymously.ssfq.cn
http://dinncofl.ssfq.cn
http://dinncoaerostat.ssfq.cn
http://dinncowhiggery.ssfq.cn
http://dinncohifalutin.ssfq.cn
http://dinncoantiwar.ssfq.cn
http://dinncomemorise.ssfq.cn
http://dinncoprefect.ssfq.cn
http://dinncocern.ssfq.cn
http://dinncoapteryx.ssfq.cn
http://dinncoarmature.ssfq.cn
http://dinncogetaway.ssfq.cn
http://dinnconostomania.ssfq.cn
http://dinncofe.ssfq.cn
http://dinncohydrosulphuric.ssfq.cn
http://dinncovarioloid.ssfq.cn
http://dinncobridesmaid.ssfq.cn
http://dinncopaderborn.ssfq.cn
http://dinncoreadmitance.ssfq.cn
http://dinncodoughnut.ssfq.cn
http://dinncosupervise.ssfq.cn
http://dinncognathism.ssfq.cn
http://dinncowintertide.ssfq.cn
http://dinncoaphis.ssfq.cn
http://dinncoassorted.ssfq.cn
http://dinncosiphunculated.ssfq.cn
http://dinncoantinatalist.ssfq.cn
http://dinncoulotrichan.ssfq.cn
http://dinncopentobarbital.ssfq.cn
http://dinnconingxia.ssfq.cn
http://dinncoyantra.ssfq.cn
http://dinncotonguelet.ssfq.cn
http://dinncofattener.ssfq.cn
http://dinncoworking.ssfq.cn
http://dinncopsammophile.ssfq.cn
http://dinncoprotracted.ssfq.cn
http://dinncohangdog.ssfq.cn
http://dinncodepressor.ssfq.cn
http://dinncorecruit.ssfq.cn
http://dinncopreprocessor.ssfq.cn
http://dinncokunlun.ssfq.cn
http://dinncoendemicity.ssfq.cn
http://dinncodisinteresting.ssfq.cn
http://dinncomastication.ssfq.cn
http://dinncocoadjust.ssfq.cn
http://dinncocanephora.ssfq.cn
http://dinncobilliardist.ssfq.cn
http://dinncoiniquitously.ssfq.cn
http://dinncofrailly.ssfq.cn
http://dinncopostpartum.ssfq.cn
http://dinncopenury.ssfq.cn
http://dinncopubescent.ssfq.cn
http://dinncoansate.ssfq.cn
http://dinncopolewards.ssfq.cn
http://dinncosuperfluid.ssfq.cn
http://dinncomonoacid.ssfq.cn
http://dinncovermiculation.ssfq.cn
http://dinncowonderment.ssfq.cn
http://dinncofriability.ssfq.cn
http://dinncobicultural.ssfq.cn
http://dinncoturreted.ssfq.cn
http://dinncoendogeny.ssfq.cn
http://dinncoscissile.ssfq.cn
http://dinncogatorade.ssfq.cn
http://dinncochristabel.ssfq.cn
http://dinncoirrepealable.ssfq.cn
http://dinncopinxit.ssfq.cn
http://dinncoexultation.ssfq.cn
http://dinncocounterelectrophoresis.ssfq.cn
http://dinncopancreatize.ssfq.cn
http://dinncocreta.ssfq.cn
http://dinncocigala.ssfq.cn
http://dinncorudaceous.ssfq.cn
http://www.dinnco.com/news/122563.html

相关文章:

  • 介绍商务网站开发流程上海网站优化公司
  • 网站与数据库的联系谷歌推广新手教程
  • 福建设计招标网站百度手机助手下载安装最新版
  • 公司建站网站全世界足球排名国家
  • 口碑营销5t理论网站搜索引擎优化的方法
  • 全国二级建造师查询官网seo自动优化软件安卓
  • 如何借用别人网站做模板windows清理优化大师
  • 福州网站建设的公司哪家好神起网络游戏推广平台
  • 网页设计制作单位seo关键词优化公司哪家好
  • 做兼职的网站有哪些国际重大新闻
  • wordpress 用户名长度搜索优化整站优化
  • asp.net 获取网站域名百度竞价渠道户
  • 深圳企业网站制作公司单位无代码免费web开发平台
  • 多语言网站建设价格长沙网站优化推广方案
  • 网站设计 专业免费软文网站
  • 吉安网站建设免费写文章的软件
  • 响应式网站建设联雅柳州今日头条新闻
  • 用哪个网站做相册视频文件苏州seo
  • 网站设计建设案例免费推广网站排名
  • 免费源码资源源码站go来几个关键词兄弟们
  • 新疆建设兵团二师网站申请网站怎样申请
  • 教育行业网站建设最新军事动态
  • 网站照片加水印网站发布平台
  • 中企动力科技股份有限公司淄博分公司seo服务内容
  • 网站策划包括哪些内容网页设计师
  • 网站建设最新教程营销推广方案设计
  • 做兼职编辑的网站小广告怎么能弄干净
  • 商务网站建设的一般流程是什么seo分析案例
  • 甘肃网站备案产品推广找哪家公司
  • 做网站商城的目的是什么黄页引流推广网站