game

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

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 个阵营在一段倒计时内实时累计分, 到点定胜负。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL