欢迎光临散文网 会员登陆 & 注册

TeaCon 茶后谈第 360 期

2023-05-19 13:52 作者:TeaCon  | 我要投稿

你知道吗?曾经原版 Minecraft 的内部代码限制使其最多只允许注册 32 种状态效果(Effect)。同时,每一种状态效果都需要对应一个固定的数字 ID。对于原版游戏来说这或许够用了,但实际上 Minecraft 1.7.10 中已经有二十余种状态效果——如果一个模组开发者想要添加新状态效果,那么他不仅要面对少得可怜的空闲 ID,还要面对其他所有模组的竞争,稍有不慎便可能导致「某一个模组注册了『口渴』状态效果,但因数字 ID 完全一致,马上就被另一个模组中的『辐射』状态效果覆盖掉了」的尴尬局面出现。彼时的模组开发者们为了对付这个问题想出了不少办法,例如专门添加配置文件选项允许用户重新指定状态效果 ID,以及通过技术手段将状态效果的数量限制放宽到 128 甚至 256 等——许多模组都内置了一段放宽数量限制的代码。这段代码相当有特色且广为流传:你能在适用于 Minecraft 1.7.10 的 IC2、植物魔法、Biomes O’ Plenty、Reika 的 DragonAPI 等各种模组中找到这段神奇的代码。此问题在 Minecraft 1.9 中有所缓解——Minecraft 在这个版本中终于为状态效果引入了专门的注册表,但因为 Minecraft 在处理客户端与服务器之间的通信时,使用一个字节来表示一种特定的状态效果,所以我们这时仍然最多只能有一个字节最多可以表示的 256 种状态效果。这个问题直至 Minecraft 1.13 才得到彻底解决——这之后的 Minecraft 版本可以注册数十亿种互不相同的状态效果,目前来看是绝对够用了。【本期编辑:3TUSK,ustc_zzzz】

TeaCon 茶后谈第 360 期的评论 (共 条)

分享到微博请遵守国家法律