Documentation
¶
Overview ¶
Package game 提供游戏引擎机制,分为 core(实时模拟)和 meta(成长/社交)两个子组。
选包标准:
- 解决的问题在非游戏场景中极少出现(帧同步、AOI、战斗评分、战利品掉落等)
- 通用数据结构(如 FSM、优先队列)即使被游戏包使用,仍属于 foundation/
- 可依赖 foundation/、messaging/(如 stream)、orchestration/(如 delayqueue)
Core 子包(实时模拟):
gameloop — 定步长游戏循环(lockstep / 状态同步骨架) match — 有状态实时会话(actor 模型) gameroom — 房间 FSM(Waiting→Running→Draining) spatial — 网格空间索引(含 aoi 子包做 AOI 差集) replicate — 状态同步原语(DirtySet/Versions/Projector) inputclock — 输入时钟同步 snapbuf — 快照环形缓冲 lagcomp — 延迟补偿 versus — 1v1 / NvN 对战编排 matchmaker — 匹配队列 rating — 评分系统(Glicko-2、TrueSkill 子包) pathfind — A* 寻路 geohash — GeoHash 编码
Meta 子包(成长/社交机制):
loot — 战利品/掉落表 leveling — 等级经验系统 questlog — 任务/成就系统 leaderboard — 排行榜 reddot — 红点提示系统 momentum — 连续行为奖励/惩罚(连胜/连败)
Directories
¶
| Path | Synopsis |
|---|---|
|
Package gameloop 是一个「机制而非策略」的定步长游戏循环原语,用于在 beauty 上 搭帧同步(lockstep)/状态同步的服务端骨架。
|
Package gameloop 是一个「机制而非策略」的定步长游戏循环原语,用于在 beauty 上 搭帧同步(lockstep)/状态同步的服务端骨架。 |
|
Package gameroom 提供 dedicated server 房间生命周期 FSM(Waiting→Running→Draining→Closed)。
|
Package gameroom 提供 dedicated server 房间生命周期 FSM(Waiting→Running→Draining→Closed)。 |
|
Package geohash 提供经纬度的 Geohash 编码/解码、邻居计算与覆盖查询,纯标准库。
|
Package geohash 提供经纬度的 Geohash 编码/解码、邻居计算与覆盖查询,纯标准库。 |
|
Package inputclock 记录客户端帧与服务器帧映射,并估算 RTT(延迟补偿入口)。
|
Package inputclock 记录客户端帧与服务器帧映射,并估算 RTT(延迟补偿入口)。 |
|
Package interpolate 提供客户端渲染侧的状态插值与抖动缓冲。
|
Package interpolate 提供客户端渲染侧的状态插值与抖动缓冲。 |
|
Package lagcomp 在 snapbuf + inputclock 之上提供 server rewind 查询(延迟补偿)。
|
Package lagcomp 在 snapbuf + inputclock 之上提供 server rewind 查询(延迟补偿)。 |
|
Package leaderboard 提供排行榜的内存排名缓存:用堆排序维护每个榜的有序结构, O(log N) 查"我的名次"、按名次取记录,避免高频读时每次 ORDER BY 击穿数据库。
|
Package leaderboard 提供排行榜的内存排名缓存:用堆排序维护每个榜的有序结构, O(log N) 查"我的名次"、按名次取记录,避免高频读时每次 ORDER BY 击穿数据库。 |
|
Package leveling 提供经验值 / 等级曲线原语:给定当前经验加一笔增量,算出新等级、 是否升级、跨了几级、当前等级内进度。
|
Package leveling 提供经验值 / 等级曲线原语:给定当前经验加一笔增量,算出新等级、 是否升级、跨了几级、当前等级内进度。 |
|
Package loot 提供加权随机抽取原语:抽卡 / 开宝箱 / 怪物掉落 / 直播抽奖。
|
Package loot 提供加权随机抽取原语:抽卡 / 开宝箱 / 怪物掉落 / 直播抽奖。 |
|
Package match 提供有状态实时会话原语,采用 actor 模型: 每个会话(房间/对战/协作编辑)由独立 goroutine 驱动,固定帧率 tick, 所有输入(业务数据、成员变更、同步信号)经带缓冲 channel 串行消费, 状态封装在 goroutine 内,无需锁。
|
Package match 提供有状态实时会话原语,采用 actor 模型: 每个会话(房间/对战/协作编辑)由独立 goroutine 驱动,固定帧率 tick, 所有输入(业务数据、成员变更、同步信号)经带缓冲 channel 串行消费, 状态封装在 goroutine 内,无需锁。 |
|
Package matchmaker 提供基于属性匹配的组队原语。
|
Package matchmaker 提供基于属性匹配的组队原语。 |
|
Package momentum 提供"连击 + 热度时间衰减"原语:按 key 追踪连续触发的连击数, 并维护一个随时间指数衰减的热度值。
|
Package momentum 提供"连击 + 热度时间衰减"原语:按 key 追踪连续触发的连击数, 并维护一个随时间指数衰减的热度值。 |
|
Package pathfind 提供网格地图上的 A* 寻路,纯计算、纯标准库、零依赖。
|
Package pathfind 提供网格地图上的 A* 寻路,纯计算、纯标准库、零依赖。 |
|
Package prd 提供伪随机概率补偿(Pseudo-Random Distribution)算法。
|
Package prd 提供伪随机概率补偿(Pseudo-Random Distribution)算法。 |
|
Package questlog 提供任务 / 成就的进度追踪:定义一组带目标值的任务,累加进度, 达标后可领取(一次),支持前置依赖与周期重置。
|
Package questlog 提供任务 / 成就的进度追踪:定义一组带目标值的任务,累加进度, 达标后可领取(一次),支持前置依赖与周期重置。 |
|
rating
|
|
|
glicko2
Package glicko2 提供 Glicko-2 评分原语:根据一组对局结果更新玩家的评分、 评分偏差与波动性。
|
Package glicko2 提供 Glicko-2 评分原语:根据一组对局结果更新玩家的评分、 评分偏差与波动性。 |
|
trueskill
Package trueskill 提供 TrueSkill 评分原语:用高斯分布 (μ, σ) 表示玩家实力, 根据 1v1 或多队伍对局结果做贝叶斯更新。
|
Package trueskill 提供 TrueSkill 评分原语:用高斯分布 (μ, σ) 表示玩家实力, 根据 1v1 或多队伍对局结果做贝叶斯更新。 |
|
Package reddot 提供小红点 / 未读聚合树:把散落各处的未读数按树形层级聚合, 父节点的未读 = 所有子节点未读之和,叶子清零自动向上传播。
|
Package reddot 提供小红点 / 未读聚合树:把散落各处的未读数按树形层级聚合, 父节点的未读 = 所有子节点未读之和,叶子清零自动向上传播。 |
|
Package replicate 提供状态同步的增量投影原语:DirtySet + AOI diff + Delta。
|
Package replicate 提供状态同步的增量投影原语:DirtySet + AOI diff + Delta。 |
|
Package snapbuf 提供固定深度的环形快照缓冲,用于延迟补偿/server rewind。
|
Package snapbuf 提供固定深度的环形快照缓冲,用于延迟补偿/server rewind。 |
|
Package spatial 提供网格空间索引:把实体按坐标分桶到固定大小的网格单元, 支持"范围查询"(附近的人/实体)与 KNN(最近的 N 个),避免全量遍历。
|
Package spatial 提供网格空间索引:把实体按坐标分桶到固定大小的网格单元, 支持"范围查询"(附近的人/实体)与 KNN(最近的 N 个),避免全量遍历。 |
|
aoi
Package aoi 在 pkg/spatial 之上提供兴趣区域(AOI)集合 diff:enter/leave/stay。
|
Package aoi 在 pkg/spatial 之上提供兴趣区域(AOI)集合 diff:enter/leave/stay。 |
|
quadtree
Package quadtree 提供自适应四叉树空间索引,用于实体密度不均匀的 2D 场景。
|
Package quadtree 提供自适应四叉树空间索引,用于实体密度不均匀的 2D 场景。 |
|
Package versus 提供"限时多方对抗计分"原语:N 个阵营在一段倒计时内实时累计分, 到点定胜负。
|
Package versus 提供"限时多方对抗计分"原语:N 个阵营在一段倒计时内实时累计分, 到点定胜负。 |
Click to show internal directories.
Click to hide internal directories.