二维码的掩码、纠错和版本,会怎样体现在游戏的生灵身上
相同的内容会生成相同的二维码
二维码的规格规定了内容中的文字按什么顺序、用什么方式编码。只要生成条件相同,相同的内容总会得到相同的黑白排列。
在 Qraft 的用二维码孵化生灵的游戏中,只要读取的内容相同,无论在哪台设备上读取,孵化出的都是同一只生灵。外形和招式只由内容决定,能力会因读取方式 (相机、图片、文字) 和孵化的那一周而略有不同。生灵的一部分性质,来自这段内容所对应的二维码本身的性质。
掩码:让黑白分布均匀的 8 种图案
只把内容编码后直接排列,可能会出现黑色成片聚集,或出现与定位标记相似的图案,读取器容易因此出错。于是要在编码上叠加 8 种固定图案中的一种,把黑白互换。这就是掩码。
使用哪一种图案,由生成的一方把 8 种全部试一遍,选出分布最不偏的一种。选中的编号写在二维码内部的格式信息里,读取器先用这个编号去掉图案,再读取内容。在游戏中,这个掩码编号与生灵属性的决定方式有关。只差 1 个字符,选中的掩码也可能不同,所以即使是相似的 URL,也可能孵化出属性不同的生灵。
纠错:脏了也能读取的额外编码
二维码中除了内容本身,还加入了纠错编码。即使一部分弄脏或缺损,也能根据剩下的编码通过计算还原原来的内容。纠错分为 L、M、Q、H 四个等级,可还原的量分别约为数据的 7 %、15 %、25 %、30 %。
等级越高,额外的编码越多,同样的内容所需的二维码也越大。为了让所有内容在相同条件下比较,游戏在求取性质时把纠错等级统一为一种。无论你读取的二维码是用 H 还是用 L 生成的,只要内容相同,孵化出的生灵就相同。
版本:模块的数量与生灵的体力
版本表示二维码模块的数量,从 1 到 40。版本 1 是 21 × 21 个模块,每升高 1 个版本,长和宽各增加 4 个模块,版本 40 是 177 × 177 个模块。内容越长,就需要越大的版本才能容纳。
在游戏中,由版本较大的内容孵化出的生灵,体力会稍微多一些。这是给长 URL、联系人这类费工夫的内容的一点小奖励。各版本的容量参考,整理在介绍版本差异的文章中。
内容类型:网址、Wi-Fi、联系人、支付、文本
二维码的规格本身并不区分内容是 URL 还是名片。读取器是根据内容的书写格式来判断种类的。例如 Wi-Fi 的二维码以「WIFI:」开头,联系人则用 vCard 或 MECARD 格式书写(介绍 Wi-Fi 二维码的文章)。
游戏把内容分为网址、Wi-Fi、联系人、支付、文本这 5 种,每种都有不同的必杀技。图鉴的卡片上会显示版本和内容类型,多读取、比较身边的二维码,就能看出是哪种性质在起作用。