数据学
数据学部分内容比较复杂,因为数据的获取,流动,存储本身始终贯穿游戏过程。
这一部分将包含以下内容:
- 数据的获取:数据包是Minecraft在高版本添加的内容,旨在用json文件替代原版的部分注册,以实现为玩家提供更低的创作门槛与更大的创作空间的目的。但这也需要一套系统来完成json文件与代码内实例的转换,这就是我们将会提到的数据生成(Datagen)与编码器(Codec)
- 数据的流动:在之前的内容中我们已经提到过:Minecraft运行时分为客户端和服务端两端,而绝大部分游戏内容的运算是只在服务端进行的。因此,我们需要把我们在服务端生成的数据发送给客户端,这就是我们的网络(Network)系统。
- 数据的存储:为了在游戏关闭时将我们变更的数据记录,以决定下一次游戏启动时的状态,我们需要把数据进行存储。我们将会在特殊能力(Capability),信息附加(DataAttachment),世界信息存储(WorldSavedData)等地方讲到这些内容。
数据系统在neoforge的版本更新中发生了不少变化,其中流动和存储两部分的变化最大。在这部分中您可能会有“为什么功能几乎相同却被拆分成两套系统”的疑惑,这是正常的,因为其中一种更像是旧版本的系统更换了名字,而另一种则是正在尝试的新系统。