腾讯游戏学院 第十章 网络同步技术 学习打卡
同步
-
一致性
-
及时性
-
鱼和熊掌的关系
输入模块
- = 函数输入
核心逻辑模块
- 函数
输出控制模块
- 函数输出
输出模块
- 画面
定点数
- 以32位定点数为例
- 内部的原始表示方式为32位整数
- 基于定点数的四则运算
- 用整数运算来实现定点数的运算
- 基于定点数的开方及超越函数
- 多项式拟合、迭代法、查表法等
- 基于定点数的随机函数
如何得到一致性的逻辑及对应的状态
- 保持客户端的版本一致
- 不要依赖不确定性的外部逻辑(比如UI交互逻辑)
- 限制外部逻辑(比如UI交互逻辑)对核心逻辑的调用
- 谨慎使用多线程
简介
- 同步状态数据
- 易上手难维护
- 核心处理模块结构
- 单点计算
- 直接把用户输入数据传到服务器,服务器做完之后,把状态同步到各个客户端,达到状态一致,非常简单也非常粗暴
- 分布式计算
- 由每一个客户端分别去负责某一部分核心逻辑的运算,然后再把我负责运算的一些状态传到客户端,其他客户端也把它们负责运算状态传给我
- 单点计算
冲突问题
-
仲裁权
- 多方竞争仲裁权
-
强一致性
- 冲突避免
-
弱一致性
区分核心/非核心一致性
- 是否影响核心博弈结果
- 核心一致性
- 仲裁单点化异步交互
- 非核心一致性
- 仲裁分散化延迟同步
- 核心一致性
| 游戏类型 | 核心一致性 | 非核心一致性 |
|---|---|---|
| 赛车 | 冲线 道具(拾取/使用/命中) |
位置 赛道碰撞 |

本文探讨游戏开发中的网络同步技术,包括帧同步与状态同步的优劣对比,以及在网络不佳情况下的应对策略。深入分析了游戏类型与同步技术之间的匹配,并提供了弱网络环境下优化网络传输的具体方法。
最低0.47元/天 解锁文章
1522

被折叠的 条评论
为什么被折叠?



