<?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/%E5%AE%9E%E6%97%B6%E6%9C%8D%E5%8A%A1/</link><description>Recent content in 实时服务 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 26 Jan 2023 10:22:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E5%AE%9E%E6%97%B6%E6%9C%8D%E5%8A%A1/index.xml" rel="self" type="application/rss+xml"/><item><title>游戏服务器战斗命令管线架构设计</title><link>https://plumephp.com/game-server-combat-command-pipeline-architecture/</link><pubDate>Thu, 26 Jan 2023 10:22:00 +0800</pubDate><guid>https://plumephp.com/game-server-combat-command-pipeline-architecture/</guid><description>&lt;h2 id="问题背景"&gt;问题背景&lt;/h2&gt;
&lt;p&gt;项目里的战斗服一开始只是一个循环：网关收到玩家操作，转给房间进程，房间进程立刻改状态并广播。内测前两周，这套逻辑看起来很顺，直到策划加了位移技能、霸体、连击修正和观战。某天晚上，玩家反馈“我明明闪避了却被打中”，客服只能看到最终血量，研发只能翻几万行日志，最后发现同一帧里有三类命令被不同协程交错处理。战斗命令管线的价值就在这里：它不追求把所有逻辑拆得很花，而是把进入战斗状态机之前的每一步变成有序、可校验、可重放的流水线。&lt;/p&gt;</description></item></channel></rss>