posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 Golang Game Minigame Saas Rust Python Java 游戏开发 客户端开发 GameDev
cocos

《Cocos 游戏联机实战》4.3 插值与外推

远端玩家怎么动得平滑:讲清渲染延迟为什么故意把远端状态回放晚一个缓冲时间,对比插值(稳但有延迟)与外推(跟手但丢包会跳),交代快照缓冲与时间轴对齐、外推的衰减与上限,给出插值器与外推器的 L1 纯 TS 实现,并用 vitest 断言「抖动输入下输出连续」「丢包时外推不发散」。

7 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
cocos

《Cocos 游戏联机实战》3.2 兴趣管理与 AOI

上一节把「收快照、叠状态、写节点」的链路打通,但默认每帧发全部实体。AOI 要回答的是:怎样只同步客户端看得见的东西。本节对比四种空间划分方案的代价,给出带滞回带的视野判定与「进出视野差集」的纯 TS 实现加 vitest 断言,并说明《方块冲刺》双人竞速里 AOI 的真实价值在哪。

8 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
cocos

《Cocos 游戏联机实战》3.1 快照与增量同步

上一章用帧同步把确定性锁死,但它要求所有客户端跑同一份输入流。本章换到状态同步:服务端定期下发权威状态,客户端只负责表现。本节拆开全量快照与增量 diff 的取舍,用纯 TS 写一套实体表加字段比对生成 diff、接收端 patch 应用的算法,配 vitest 断言,并给出《方块冲刺》的快照消息格式与基线确认机制。

7 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
cocos

《Cocos 游戏联机实战》1.3 时钟、延迟与抖动

本节讲两端时钟为什么对不齐(Date.now 不同源与单调时钟的意义),给出 NTP 式时钟偏移估计的 L1 实现——多次采样、取最小 RTT 样本作权威偏移、滑动平均平稳化,并用假时钟断言偏移收敛;同时讲 RTT 与抖动计算、延迟预算怎么切(单向延迟 / RTT / 处理延迟),以及这些估计值在 4.2 和解、5.2 超时、9.3 延迟补偿里怎么被复用。

7 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
cocos

《Cocos 游戏联机实战》1.2 协议选型与序列化

本节讲联机协议怎么选:对比 WebSocket 上的 JSON、MessagePack 二进制与自定义紧凑二进制的取舍,给出用 const 对象加 as const 定义消息类型(禁用 enum)的方式,用 DataView 实现读写定点数、变长整数与字符串的 L1 编解码器并用 vitest 做往返断言,附《方块冲刺》的 INPUT / SNAPSHOT / ROOM_STATE 消息格式表。

8 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
cocos

《Cocos 游戏联机实战》1.1 网络分层、拓扑与权威边界

本节建立客户端侧联机的心智模型:讲清「权威」为什么默认在服务端、客户端只能决定输入与表现而不能决定胜负与伤害,对比 C/S、P2P、C/S 中继、主机制四种拓扑并说明《方块冲刺》双人竞速的选择,给出传输/会话/同步/表现四层与 assets/scripts/net/ 目录的对应,并写出 Transport 接口与可注入延迟丢包的假传输层完整实现。

8 分钟阅读
Cocos Cocos 游戏联机实战 TypeScript
engine

《游戏引擎实现原理》8.2 文档模型与脏标记

一份可编辑的场景文档长什么样?本节用扁平节点表存节点树,区分运行期句柄 id 与稳定标识 uid,把「改了一个节点,哪些东西要重算」交给脏标记来回答:任何改动沿父链向上标脏到根,刷新时按祖先先于后代的顺序处理。每次改动还追加一条变更记录,作为第 9 章撤销栈的接缝。

7 分钟阅读
游戏引擎 子系统与工具 编辑器
engine

《游戏引擎实现原理》8.1 编辑器与运行时的关系

编辑器与运行时到底共用什么、隔离什么?本节用一份共享的场景数据模型,把编辑态与运行态拆成两份实例:进入 Play 时深拷贝文档,运行时只改副本,Stop 后编辑态原样恢复。最后用一组 vitest 用例把快照、暂停与幂等停止在本机真跑一遍,并说明为何场景文档用扁平节点表而不是 ECS。

8 分钟阅读
游戏引擎 子系统与工具 编辑器