重要概念
在 FFXIV 开发的上下文中,有一些概念和术语用法具有特定含义。虽然 XIVAPI 抽象了这些细节中的大部分,但有几个特定概念对于有效使用其功能至关重要,下面详细说明。
作为实时服务 MMO,FFXIV 定期接收”补丁”和”热修复”。这些通常涉及游戏客户端文件的更新。这些更新之一之后的游戏文件内容被视为版本,通常以引入更改的补丁命名。在更新之间,游戏文件是完全静态的——它们在游戏过程中永远不会更新或修改。
虽然可以得出松散的相关性,但最佳实践是考虑_任何_更新都可能导致客户端文件的_任何_更改。因此,游戏版本的更改应被视为 semver 术语中的”主要”更新。
像许多应用程序一样,FFXIV 将其大量内容和数据存储在关系数据库中。这些数据中的很大一部分包含在游戏客户端文件中,采用称为 excel(不,不是 Microsoft 产品)或 exd 的专有文件格式。
虽然可以在 excel 和传统 RDBMS 之间得出相似性,但它不是完美的 1:1 映射。Excel 专门用于在 FFXIV 中作为静态数据使用,因此具有非标准功能。
在 excel 中,单个数据集合称为表格,类似于数据库中的表。
继续使用数据库类比,表格包含一个或多个列,或字段。每个字段都有一个数据类型(字符串、数字、布尔值等),该字段的所有值都一致。
但这只是类比的极限。除了基本(“标量”)数据类型之外,字段经常被分组为集合,例如固定大小的数组和结构体,它们存在于表格的各个行中。
每个表格都有一个内置的 ID 字段,即行 ID,它充当表格的主键。一些专门的表格还将包含一个_子行_ ID。当存在时,行 ID 和子行 ID 的组合充当复合主键。
表格将定期包含充当类似外键的字段,通过其 ID 引用其他表格中的行。这些链接称为关系。在许多情况下,这些关系的目标表格可以是多个不同表格中的一个——选择目标表格的方式因字段而异,最终由数据集外部的游戏逻辑决定。
版本和本地化
Section titled “版本和本地化”FFXIV 正式本地化为日语、英语、德语和法语。这些本地化都使用相同的”全球”游戏客户端,包含为所有 4 个语言环境准备的内容。
除了上述内容外,还有单独的中文和韩文游戏客户端可用,每个都提供各自语言的本地化。这些客户端遵循与全球客户端不同的版本控制,通常包含稍微过时的内容。
在某些情况下,表格可能包含既需要随时可用且经常使用的数据,又包含不经常访问和/或加载缓慢的数据。为了处理这个问题,表格偶尔会沿着该访问要求线拆分为两个或更多单独的表格,所有表格共享它们的行 ID。
按照惯例,_大多数_这些拆分导致不经常访问的数据被移动到带有 Transient 后缀的表格。
例如,Action 表格包含有关玩家和敌人技能的数据。虽然这些数据中的大部分在整个游戏中经常用于显示技能详情,但技能的描述仅在鼠标悬停提示中显示。因此,描述存储在 ActionTransient 表格中,而不是 Action 本身。白魔法师技能”Cure”的数据可以在两个表格的行 ID 120 处找到。
游戏文件包含有关表格结构的最少信息。对于任何表格;只有其名称、支持的语言、字段数量和这些字段的类型可用。
为了充实这些信息,可以使用模式,为每个表格中的字段提供名称和结构。这些模式是社区的努力,并不完全全面或准确。
XIVAPI 使用的模式列在[软件]页面上。