### <span style="color:orange">2026年7月</span> — v1.3：人机对战，启动！

- 为 **八球和九球** 添加了可实际对战的电脑玩家。
  - 非常感谢所有为这个功能投票并给予支持的玩家！
  - <img src="Gallery/Images/bot_shooting.webp" alt="电脑玩家正在击球" width="50%">    
  - 现在可以在单人游戏中与电脑玩家对战。
  - 电脑玩家可以处理正常规则、手中球、开球、犯规以及球杆击球动画。
  - 你可以在设置菜单中调整它的瞄准精度、考虑的击球数量，以及分配给每次模拟的时间。
  - 与电脑玩家对战时必须启用自动裁判。
  - 电脑玩家的模拟计算量较大，因此仍建议优先在单人世界和安全环境中使用。
  - v1.3.2 新增了轻量化的**极速模式**。启用后，电脑玩家不会运行击球模拟，可以显著降低计算负载，但其表现也可能明显下降。
  - v1.3.4 起，电脑玩家默认会将模拟计算分散到多个游戏刻中，并可在设置中调整每游戏刻的模拟步数。请根据客户端或服务器的实际性能和负载酌情调整；如果降低后思考时间过长，可进一步考虑使用极速模式。
  - 在多人游戏中设置电脑玩家时，数据包现在会显示性能警告，并提供可点击的极速模式启用选项。
  - 电脑玩家现已初步支持动态球半径。该功能仍处于实验阶段，极端的球半径可能更容易出现数值误差。

- 为 Minecraft 1.21+ 添加了可调整的球半径和动态球桌缩放。
  - 现在可以在 Minecraft 中复刻更准确比例的球桌。
  - 球桌、袋口和视觉模型可以随所选球尺寸一起缩放。
  - 还支持精确的 1×2 球桌比例和固定球桌缩放，提供更高的自定义程度。

- 为多人服务器添加了可选的白名单系统。
  - OP 可以限制球桌放置、球桌配置和全局设置，同时保留普通玩家控制功能。
  - 启用设置白名单后，只有白名单中的玩家可以启动电脑玩家对局，以减少共享服务器上意外产生大量计算负载的情况。

- 改进了游戏内设置菜单和文档。
  - 设置现在按子类别整理，更容易查找和理解。
  - 添加并改进了多项设置说明的本地化。
  - 添加了简明的游戏内用户指南。

- 本次更新还包含多项修复和性能优化。
  - 大幅提升了数据包性能，使电脑玩家的模拟计算能够运行。
  - 添加了库边恢复系数效果，优化了摆球位置和手中球摆放，修复了一些规则问题，并进行了其他玩法改进。
  - 添加了斯诺克的自由球系统。

- 更新后，建议彻底移除现有球桌并重新放置。

- 详细内容请查看完整的 v1.3.X 版本发行日志。

### <span style="color:orange">2026 年 5 月</span> — v1.2.0：无需 OP，生存模式也能畅玩！

- v1.2.0 数据包现已全面支持非 OP 玩家与生存模式玩家，非常感谢社区投票与反馈！

- 新增 NoOP 版本：
  - 使用 `/trigger` 指令替代绝大部分函数调用和计分板设置
  - 支持无权限玩家打开命令窗口与调整几乎所有设置
  - 使用 `/trigger swPool__trigger set 1` 打开命令窗口
  - 默认数据包现为 NoOP 版本，需要指令权限的原版本更名为 Datapack-Base，仅保留用于开发

- 新增 1.20.5+ 生存模式配方支持：
  - 可使用非常简易的材料在工作台合成球杆与球桌核心，配方需求可开关

- 新增可合成球杆：
  <img src="Gallery/Images/stick_recipe.webp" alt="球杆合成配方" width="50%">
  - 使用不可破坏的弓实现，游戏过程中会自动给予隐形箭矢用于击球

- 新增可合成球桌核心：
  <img src="Gallery/Images/table_recipe.webp" alt="球桌核心合成配方" width="50%">
  - 放置后可生成对应配置的球桌
  - 可随时取消摆放并回收原物品
  - 球桌核心会记录合成时使用的台布与边框材料，生成对应风格的球桌

- 本次更新同时包含多项问题修复与性能优化，详细内容请参阅版本发行日志。

### <span style="color:orange">2026 年 4 月</span> — v1.1.0：更多自定义，更多可能！

- 基于玩家游玩 v1.0.0（包括测试版和正式版）后的反馈，v1.1.0 重点扩展了数据包的自定义功能。安装和加载提示信息已优化，让玩家可以更顺畅地开始游戏。

    <img src="Gallery/Images/custom_table_and_sticks.webp" alt="_MingshiYangUIUC_" width="50%">

- 现在你可以选择不同的球桌边缘的样式、球杆模型以及台布贴图。同时也提供了相关指引，方便你将自己的模型或贴图资源加入资源包中使用。

    <img src="Gallery/Images/rule_settings.webp" alt="_MingshiYangUIUC_" width="50%">

- 游戏规则变得更加灵活。在对局过程中，你可以关闭部分或全部自动裁判系统，数据包仍会帮助你以自己的方式手动执行规则。“中式八球” 已更名为 “八球”，以更好体现这种灵活性，并使这个模式对全球玩家更友好。
- 在击球调整界面添加手动设置击球力度的功能，如果担心击球时蓄力多少难以调整，可以通过点击手动设置相对于最大蓄力0-100%的力度。
- 同时，本次更新也包含多项问题修复与性能优化。详细内容请参阅各版本更新日志。
- 更多功能正在开发中！后续更新计划增加 _生存 / 冒险模式兼容性_ 以及 _玩家对战电脑_ 的玩法。

- 致谢    
  部分功能与改进来源于与社区玩家的讨论与反馈
  - CurseForge Snezfennico
  - Bilibili 74071024
  - Bilibili 1383472410
  - Bilibili 525464371

### <span style="color:orange">2026 年 3 月</span> — v1.0.0 正式版本已发布

- 数据包和资源包现已在 Modrinth 和 CurseForge 上公开发布。
- 进行了若干小幅修复与优化。具体请查看每个发布版本的记录。
- 将 **Item Display** 的支持向前延申至1.21。

### <span style="color:orange">2026 年 2 月</span> — 九球模式已经加入数据包，我们的数据包和资源包有了新的图标。

- 九球玩法已加入数据包，现在可以从大厅进入游戏，开始体验！和八球游戏一样，开球时可以选择用简易神经网络替代原有的碰撞模型。
- 数据包和资源包使用同一个包含我的世界和台球元素的新图标。为了区分，组件类型（数据包datapack/资源包resourcepack）在图中以文本显示。
- 改进代码使运行更流畅。

### <span style="color:orange">2026 年 1 月</span> — 1.21.4+ 版本采用 Item Display

- 玩家可能会发现，**Armor Stand 存在较明显的传送延迟问题**，包括实体在传送过程中渲染位置滞后于真实位置，以及由此带来的轨迹平滑效果。这会导致球的渲染位置和轨迹与实际模拟结果出现偏差。为解决这一问题，本数据包现已改用 **Item Display** 进行渲染。默认情况下，Item Display 不受传送延迟影响，因此可以 **精确还原球的位置与运动轨迹**，整体视觉效果与底层物理模拟高度一致。

- Item Display 的传送延迟行为可通过其 **`teleport_duration`** 数据进行控制。较大的取值会引入更明显的渲染延迟，同时使运动轨迹更加平滑。旧版基于 Armor Stand 的渲染效果大致相当于 `teleport_duration = 2`。  
  - `teleport_duration = 0`：完全离散的运动渲染  
  - `teleport_duration = 1`：在轨迹平滑与位置精度之间取得较好平衡（推荐）  
  - 更大的取值：可能会对轨迹产生过度平滑  
  具体配置方式请参考 **使用指南与演示**。

- 当 Item Display 发生旋转时，其 **`transformation`** 数据会持续更新，行为上类似于 Armor Stand 的 **`Pose`** 数据变化。尽管两者所采用的数学描述不同，但其均使用 **在世界坐标系中定义的三维旋转向量** 计算。

- *理论上可以将这个更新推送给一些更早的版本，但作者决定只支持 **1.21** 及更新的版本。鉴于早期版本中命令语法不断更改，为其重新适配将带来较高的维护成本，因此更倾向于保持旧版本的稳定状态，而只在新版本中引入这一改进。*

### <span style="color:orange">2025年九月</span> — AI开球模拟！

- 加入 **AI开球模拟**：用简易神经网络替代原有的弹性碰撞模型，开球效果更贴近现实。
- 数据生成与训练：在 Python 中用高精度物理仿真生成大量开球数据，训练神经网络学习球体压缩-反弹的瞬时过程；结合球堆对称性，模型可通过翻转和旋转泛化到全局。
- 实现方式：将神经网络参数手动转写为MC计分板运算，翻转/旋转也在游戏中完成，神经网络输出反向还原后给出每个球最终的速度和移动方向。
- 可在设置中开关此功能（默认开启），开启时八球开球会自动启用神经网络计算。提供四种模型复杂度，可自行权衡计算精度与性能。

### <span style="color:orange">2025年七月</span> — 中式八球已加入数据包，现在可以从大厅进入游戏，开始体验！

这是一个长期项目......

- 起初，设计的球体只是静态模型，只能直线（折线）移动，无旋转效果。当时只计划用单色球制作斯诺克和英式八球，因为它们不太需要旋转动画。
- 随后，通过引入更多物理模拟，支持了母球控制和台球旋转相关的物理，球的运动表现更加真实。
- 接着，将旋转信息映射为盔甲架姿态，实现了可视化旋转效果，并引入编号球（仅限练习模式）。这项技术实现早于 Minecraft 1.20 的 Transformation Rendering 功能推出。
- 现在，中式八球规则已完成，实现了带编号球的单人和多人完整玩法。

### <span style="color:orange">2025年七月</span> 进行了 1.20 和 1.21 版本的更新，台球数据包继续适配 Minecraft 1.16 之后的所有版本!
Minecraft 1.21.X 带来了目录结构的重命名和大量命令语法的更改。现在已经不再适合在一个数据包文件中切换多个版本。资源包也发生了多处变化。 
数据包和资源包是基于 1.16-1.20 的内容使用[自动脚本](build_packs_for_1.21.py)生成的，该脚本进行必要的更改以使模块在新版本的 Minecraft 中按预期工作。

🔴<span style="color:aqua">如果使用的 Minecraft 版本是 1.21.X，请安装与游戏版本匹配的数据包和资源包。</span>  
🔴<span style="color:aqua">在游戏中加载数据包时不再需要设定版本。</span>  
🔴<span style="color:aqua">请同时确保安装了 1.21 版的 [数学数据包](https://github.com/MingshiYangUIUC/Math-Minecraft-Squid-Workshop-Project)。</span>  
🔴<span style="color:aqua">~~目前，Windows 用户的快捷安装脚本不支持安装 1.21.X 版本的数据包与资源包。~~已移除。</span>
