色盲辅助功能曾是我们积压任务中最不紧急的一项,直到我体验了《蓝王子》开启色盲模式后的效果。那款游戏在这方面做得非常出色,让我惭愧地意识到必须认真对待这个问题,而不是简单提高对比度就敷衍了事。

我们的游戏是台球/桌球类肉鸽游戏,彩色球和彩色球袋是整个游戏的核心机制。如果无法一眼识别球的颜色,游戏就无法进行,所以"直接加个色盲模式开关"并不可行。

我们为每种颜色的球设计了独特的图案,《蓝王子》在这方面做得很好,我们毫不羞愧地借鉴了这个创意。我们没有从纹理包中提取通用的条纹/圆点/棋盘格,而是从40-70年代的壁纸设计中寻找灵感——那个时期的图案造型鲜明独特,专为从房间另一侧就能注意到而设计,也更契合我们地下酒吧的主题。每种图案都隐约呼应了它所替代的颜色/主题(绿色的机械主题是生长,所以用藤蔓;紫色设计成一个巨大的"君主"球,主题一目了然;红色的机械主题是"我就是喜欢《闪灵》的地毯图案,别骂我")。更重要的是,每个图案都有独立的形状语言,即使球体变小或远离镜头时也不会混淆。

我们还为每种图案设定了独立的明度范围(即在不考虑色相的情况下,图案本身的明暗程度),因为这才是真正同时解决所有色盲类型的关键。如果整个系统依靠明度对比而非色相/饱和度,那么无论缺失哪种视锥细胞都不影响识别。为了确保万无一失,我们让整个游戏在纯灰度模式下也能正常游玩,完全不依赖颜色信息,效果依然良好。之后我们又通过几种色盲模拟滤镜进行验证,检查对比度在真实的红色盲/绿色盲/蓝色盲条件下是否仍然有效,而不仅仅是"我们在灰度模式下看着还行"。

比预期耗时更长的部分是确定球袋图案的放置位置。第一版方案是将图案直接渲染在球袋上,这听起来很直观,但实际效果很糟糕。球袋形状不规则,图案会因几何结构而扭曲或被截断,导致两个原本完全可区分的图案印在球袋上后几乎一模一样。最终解决方案是在每个球袋上方放置一个带有图案的小球。同样的图案,同样的"形状",永远渲染在球体上。事实证明,渲染表面的形状一致性对可读性的影响几乎与图案本身同等重要。事后看来显而易见,但当时我们并没有意识到。

有了这些图案后,我们还将它们的柔和版本融入了正常(非色盲模式)的球体材质中,只是因为将它们微妙地融入材质后视觉效果很酷。这原本不在计划中,但最终成了意外惊喜。

最后一点,也是我们花了最长时间才意识到的:游戏中的彩色UI文本,特别是黑板风格的文字,完全依赖色相差异来形成对比,与背景几乎没有明度差异。这对大多数玩家来说完全没问题,但对某些玩家而言却几乎无法阅读。我们将所有文本的明度对比度提升后,无论是否色盲,游戏体验都得到了显著改善。

我最大的感悟是:把色盲模式当作后期附加的滤镜几乎行不通,而那些能帮助色盲玩家的设计通常也能让游戏对所有玩家更清晰。多花些时间在这上面,值得做好。

如果有人对图案设计流程或模拟测试工作流程有疑问,我很乐意深入解答。不是打广告,但如果有人想实际体验效果,可以试试Steam上的《Spooker》试玩版。如果你是色盲玩家,特别希望能收到你的具体反馈。