<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>战斗输入 on PlumePHP</title><link>https://plumephp.com/tags/%E6%88%98%E6%96%97%E8%BE%93%E5%85%A5/</link><description>Recent content in 战斗输入 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 09 Sep 2021 09:12:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E6%88%98%E6%96%97%E8%BE%93%E5%85%A5/index.xml" rel="self" type="application/rss+xml"/><item><title>战斗输入仲裁架构：服务端如何在预测、延迟和公平之间取舍</title><link>https://plumephp.com/game-server-combat-input-arbitration-architecture/</link><pubDate>Thu, 09 Sep 2021 09:12:00 +0800</pubDate><guid>https://plumephp.com/game-server-combat-input-arbitration-architecture/</guid><description>&lt;h2 id="背景问题通常不是突然出现的"&gt;背景：问题通常不是突然出现的&lt;/h2&gt;
&lt;p&gt;实时战斗服务端最难的地方，不是收到输入后执行技能，而是判断这个输入在当时是否应该成立。玩家本地看到自己在 320ms 前按下格挡，对手看到的是已经命中，服务端收到两个输入时又晚了几十毫秒。若完全相信客户端时间戳，外挂可以伪造过去；若完全相信服务端到达时间，高延迟玩家几乎没法玩。输入仲裁就是把这件事变成一套有边界、可观测、可解释的规则。&lt;/p&gt;</description></item></channel></rss>