家属抱怨过,我开发的游戏都不是她喜欢玩的类型。所以我专门给她做了一个。
她喜欢塔防和三消,常扬言,世面上好的塔防游戏都玩过了。而我们俩一起蹲沙发打机的开心时光,大部分花在 Puyo Puyo & Tetris 上。

塔防已经不算小项目,但方块消除算是最简单的电子游戏类型。很多开发者的第一次自学项目都是「实现俄罗斯方块」。于是,我打算从三消着手。
我下载了 Candy Crush、2048,还有一些其他方块类页游,好好学习了一番。小游戏简单归简单,里面还是有很多门道的:
- 控制:为什么 2048 在操作上使用了整盘滑动,Candy Crush 是交换方块,Puyo Puyo & Tetris 是控制方块组合掉落?
- 随机:为什么 2048 的新方块是在盘面上随机位置生成,Candy Crush 是从上方掉落随机方块直到补满盘面,Puyo Puyo & Tetris 是单独上方掉落随机组合?
- 奖励:为什么 2048 能用「合并/积累」的单个机制同时完成了对玩家的不断奖励和对游戏进程难度的提升?而其他的方块游戏选择了「清消障碍」作为游戏机制和对玩家的心理奖励?

上面三个角度不是随便选的:「随机」即是人目前不完全知晓、且无法「控制」的环境状态。玩家如何在未知环境下通过允许的操作来追求「奖励」,是大部分游戏的核心所在。(其实这个模式可以泛化到非常广的 AI 领域,按下不表。)三者也并非独立存在:让玩家的控制能力与环境的不可控制因素达成一个「好玩」的平衡,本身就是对玩家的奖励,也是游戏机制设计的关键问题。
在学习借鉴过程中,我还第一次了解到,2048 是对另一个游戏《Threes!》的机制抄袭。《Threes!》由三名开发者合力14个月开发完成,但因为最后选择了买断制的商业模式,被免费游戏 2048 抢掉了风头:光是 App Store 上,后者的评分数量就已经是前者的 10 倍以上。而且,2048 对原作的简化「从 $1$、$2$、$3$、$3\times 2^x$,变成 $1$、$2$、$2^x$」其实是删除了原作的一个重要创意和机制平衡设计。令人唏嘘。
经过一天的调研和思考,我决定做一个缝合怪:Candy Crush 连锁消除机制 + 2048 的操作方式 + Puyo Puyo & Tetris 的可预见式外部随机掉落。目标:操作要简单直观、消除要视听爽感、策略难度的光谱宽、还能无限游玩沉迷。
除了「怎么缝得好看」以外,我个人的机制设计贡献基本只有一点:外部方块掉落从仅上方改为棋盘四面边缘,然后把 2048 的整盘滑动操作理解为「重力方向切换」,从而会触发掉落。也就是说,往上滑动(或者方向键上)除了让棋盘上所有方块都往上滑到底之外,也会让棋盘下方外部可预览的方块往上掉落。这引入了一个相当直观的策略点,同时让当前难度与玩家的操作直接挂钩(因为满盘意味着输)。
又过了两天,《方即是空 | Tintslide》就做好了。家属说,终于沉迷到我做的游戏了,甚至连我岳母也乐在其中。我非常欣慰。

想玩的话:
还有个小插曲。刚决定下来要做缝合怪时,我问 AI,市面上有没有用 2048 操作方式来三消的游戏,它说,有,然后给了我一个游戏名以及网站链接。是个空链接。游戏名我搜了也找不到。我想八成是幻觉了——已经有段时间没见着旗舰模型来幻这种低级的觉。
我顺口说了一句,想看看它怎么回:我搜不到,你确定这个游戏存在么。AI 陷入长考。过了一会儿,我做完其他事情回来,看到它回答(大意):「可能是暂时性的网络问题吧。但这个游戏其实也不难做,我已经给你做了一个,试试?」。
我马上打开它的思考过程,发现它在也找不到自己胡编乱造的游戏之后,沉默了一会儿,然后毅然决然地写起了代码。没想到啊没想到,AI 也为自己吹过的牛逼而努力充着胖子。
