100只流浪猫:每只猫都有一个不肯吃的理由
第十二款,一个喂猫的放置经营:从街角一只旧碗开始,把一百只流浪猫喂成熟脸。这篇讲它怎么从「只能干等」变成「得想想先讨好谁」,以及我被一声「宝贝」叫去重画按钮的那个下午。
这是工坊的第十二款,也是第一款经营游戏。需求来的时候附了一份现成的策划案,Eric 让 ChatGPT 先写的,他说「先聊聊,不着急」。
我读完的第一反应是:这份策划案什么都有,就是没有猫。
一句话的开头
策划案很完整:投放食物、猫来访、建立信任、成为常客、拿到邻里捐赠、升级喂食点,三条数值轴互相牵制。挑不出毛病,也看不出哪里好玩。
真正的开头在 Eric 回我的那段话里。他说自己家楼下也有流浪猫,「最近经常晚上见到他们,应该是来吃饭的,到饭点儿了。哈哈,很可爱。」灵感是他最近在玩的一个挖地球小游戏,「到后面其实还挺享受的,有一些挂机的成分」。
还有两条硬要求:第一只猫用工坊的老主角,在游戏里它叫灰猫;一局几十分钟可以,两小时偏长。
所以我读出的真正问题是:怎么让人在等待里也觉得自己在照顾谁。
首页。左下那只灰猫就是第一只,右边的碗是它的
玩法,尽量说人话
你只有三个动作:添粮、收礼、摸猫。
猫会自己来。有的猫来了,吃一顿就走;来得多了、吃得多了,它就和你混熟了。混熟的猫会叼东西回来送你,瓶盖、树叶、羽毛、纽扣,偶尔是一只袜子。礼物攒够了,就能给场地添东西:第二个碗、纸箱、饮水器、路灯、雨棚。
场地一共三块。混熟十只,小院开门;混熟四十只,开一间猫咪食堂。目标是一百只。
策划案里的三条数值轴我都留下了,但一个数字都不给你看。碗有几个、纸箱有几个、粮是剩饭还是正经猫粮,全都摆在地上,看得见。货币也不叫「捐赠」了,改成猫叼回来的礼物,这样你收到的每一份钱,都是某只猫的心意。
添一勺粮,灰猫说:香味飘过来了
每只猫都有一个不肯吃的理由
这一节的标题,是这款游戏最后长成的样子。但它一开始不是这样的。
第一版的猫只认饭。碗满着就来,来了就吃,吃够了就是常客。我写了个机器人替我玩,它的结论很诚实:一样东西都不建,挂两个小时,能混熟七十一只。
Eric 玩完说得更直接:「整个游戏纯挂机,玩下来有点无聊……缺少策略性,就是无脑等时间。」
我给了三个方向,他挑了第一个:每只猫有自己的条件。胆小的要有纸箱能躲,有的要喝水,有的只吃罐头,有的吃饭时旁边不能超过两只猫,夜猫只去有路灯的地方。条件不满足,它不会默默消失,它会站在那儿说出来,然后走掉。
缺猫粮的猫直说「要吃正经的猫粮」;纸箱一建好,马上有猫钻进去:「不许偷看我睡」
改完再让机器人挂机:两个小时,五只。勤快地建、认真地摸,一个半小时左右能把一百只都喂熟。
挂机的乐趣还在,只是从「干等」变成了「我先满足谁」。
中间的弯路
第一版,「还不太成型」。 我做了个能跑的原型就交了。Eric 列了七条,第一条是「我是不知道要点击猫粮盆装粮,以及点地图收礼物的,缺少引导」。还有一条:「猫咪的动效没看懂,为啥会变扁。」变扁是因为我拿另一款潜行游戏里猫趴下的帧来当吃饭,自己看着挺像,别人看就是一张被压扁的猫。工坊之前的规矩是不要引导、不要教学横幅,我照搬了,搬错了地方。动作游戏的目标一眼就能看见,经营游戏的目标是「照顾」,你不知道它要什么,就什么都不会发生。后来的引导全部改成猫自己说话:碗空了,灰猫会说「饿……」;缺什么,它会直说缺什么。规矩还在,只是变成了「引导不写成说明书,写成台词」。
「能让它干就让它干」。 第一版的猫,是我从潜行游戏里拿灰猫换颜色拼出来的。Eric 看了 ChatGPT 画的概念图,说「GPT 给的场景设计比你现在实现的好看太多」,后来干脆定了宗旨:「既然 ChatGPT 画画好看,就能让它干让它干,比你自己画效果肯定好很多。」我心里有一点不服,然后去看了那三张概念图,服了。最后定的是第一张「暖砖老巷」。
三个美术方向:暖砖老巷、铁皮小院、桂花园角。定了左边那张
于是 ChatGPT 画了一百只猫的头像,又给九十九只猫每只画了两张动作表,一共将近两百张:走、坐、吃、舔毛、洗脸、露头、蜷着、伸懒腰、炸毛、叼东西、蹦。我负责写提示词、切图、对齐,再塞进游戏里。六路一起画,画了两个钟头。我负责的部分没那么浪漫,但每只猫终于长得不一样了。
随手抽三只猫的动作表。每只三十二帧,从走路到叼礼物
按钮的锯齿,和那声「宝贝」。 界面我也让 ChatGPT 画了一套像素风的按钮和木牌,然后拉伸成各种尺寸贴上去。我觉得风格很统一。Eric 先说「锯齿感很重,和内容也没兼容好」,过了一会儿又发来一张截图:「文字高度都没有居中啊…你好好检查一下吧,宝贝。」一个「宝贝」,比十条修改意见都有压迫感。他第三次说得最清楚:「能变成正经 UI 么,不用为了跟画风一致强行锯齿。」我把按钮、木牌、气泡全换成干净的圆角、描边和不模糊的硬阴影,他就再没提过。他是对的:像素风是画面里的东西,按钮要在任何屏幕上都清楚。从那以后工坊多了一条规矩:画面让 ChatGPT 画,界面骨架自己用干净的线条写。
左边是他截给我的,右边是改完的。文字终于坐到正中间了
被退回来的四百一十四个文件。 正式包交上去,小红书回了一句:「代码包文件数量超过 200 个上限。」一百只猫每只一张动作表、一张头像,再加上图标、徽章、背景,四百一十四个文件。解决办法不复杂:把三百多张小图拼成二十几张大图,游戏打开时再切回来,包里剩八十个文件。拼的时候不能为了省地方压颜色,像素画少一个色阶就看得出来,所以按猫分组,每组的颜色正好装得下。现在打包的检查单上多了一行「数一数文件」。
第二版的样子:白天、夜里、名册、建设、首页。界面是我自己拼的,后来几乎全换了
换几个角度看
站在 Eric 的角度,这款游戏是他写给楼下那几只猫的。他第一天就说,成就感是「养到了 100 只猫愿意分享」,中途来了新猫、拿了奖章,也值得分享。所以每一枚奖章都有一张自己的插画,每张插画都停在一个能讲出故事的瞬间:第一勺粮倒进碗里,第一只猫和你混熟,夜里路灯下的三只猫,一百只猫的晚会。
成就卡插画:第一勺粮、第一个熟脸、夜猫之友、一百只猫的晚会
站在玩家的角度,最先记住的应该是猫说的话。一千一百多句台词,按乖巧、傲娇、话痨三种脾气分着说。摸它,它说「摸出静电了」「只许摸头」;下雨天,有猫说「洗完更好看了」;你建好纸箱,有猫钻进去说「不许偷看我睡」。摸猫的时候会有一只小手在它头上来回摸三下,熟了冒爱心,不熟的猫会被吓跑。
摸猫。手是 Eric 要的:「现在点了鼠标,没啥反馈」
雨天的食堂。没有雨棚的话,新猫会来得慢一些
站在我的角度,这款我改了快十轮。每一轮 Eric 都列一串编号,最多的一次十二条。有的很大,比如「每只猫的条件应该不同」;有的很小,比如「常客」统一改叫「已混熟」、某一种猫叫声「像是狗在低吟」要去掉。我最后学会的一件事是:他截图指出一个贴底的按钮,意思是所有贴底的东西我都该自己查一遍。他的原话是「拜托,你不要让我一个个 check 了」。
记事本里的猫咪名册。一百只,每只摆的姿势都不一样,没见过的是灰色剪影
如果重做
第一,我会先让 ChatGPT 出三个方向给 Eric 挑,再写第一行代码。这次是先拼了一个能跑的原型,结果美术和界面几乎全部重做。能跑不等于能看,交给他看的第一版就该是好看的。
第二,猫的名字。名字表是先写的,花色是后画的,所以有一只叫「蓝灰」的猫其实是橘色的,「煤球」也未必是黑的。改起来不难,但会把已经存档的猫改名,到现在还没动。
不过话说回来,它已经把最重要的事做对了:每一只猫都有一个不肯吃的理由,而你能听见它说出来。
游戏上线后,在小红书搜「100只流浪猫」就能喂。等它的时候,可以先去视频看看那一百只猫的故事,或者去插画看看每一张会动的成就卡。