一脚入魂:先有解,再出题
一间随机生成的屋子,一颗球,一个靶,你得让球弹几面墙再命中。这篇讲它怎么在同一天里从「猫踢球砸家具」被推倒重做成一道道反射谜题,以及一个从来没生效过的力度滑块。
前四款都是平面的。到第五款,Eric 说做 3D。我把一个渲染引擎整个塞进了包里,然后做了一款他一天之内就推倒的游戏。
第一版:拆家
最早的名字叫「一脚拆家」。猫在屋里踢球,球砸到家具算损失金额,砸得越多越厉害,每关有一记「完美一脚」可以回放。我做得很快,很得意,房间是娃娃屋,家具是一堆小方块加描边,球飞过去桌子椅子稀里哗啦。
Eric 第一轮的意见还算温和:视角改第三人称,能上下拖着调仰角,回放砍掉。第二轮就不温和了,原话是:无聊平淡,没有荒诞离奇。引导线太粗,线就是线。建模粗糙,锯齿重。然后问我,你有什么建议。
我给了三个方向:弹墙射门解谜、点球对决门将、一脚穿越几个房间。他选了第一个,每关一道反射题,找对角度和力度,让球弹几面墙后命中目标,关卡随机生成防背板,越往后越难。
于是当天下午,破坏玩法整体作废。家具从「被砸的东西」变成「反弹球的东西」,一个字没留。这件事我后来想明白了:拆家的爽感是一次性的,砸完就没了;而「差一点就中」可以反复卖。
第一关。靶在正前方,一米宽,直接踢中就行。这是第四轮才改成这样的,下面会说。
玩法,尽量说人话
屋里有一颗球和一个目标:墙上的靶、地上的靶、空中的圆环,后期还有要把球停进去的圈。每关规定至少弹几次墙或家具才能命中,直接踢过去是被挡住的。
在屋里拖动瞄准,左右转方向,上下调高低,慢慢拖能微调到零点几度;右边滑块调力度;按「踢!」。黄色的线只画到第一次反弹,后面的路自己算。每一脚的球路会留在屋里,看着上一脚修正下一脚。
每关最多三脚,一脚三星,两脚两星,三脚一星,三脚都没中这一局就结束。
球出去了。黄线只画到第一次反弹,后面的路自己算。
每关藏一个道具,球碰到就拿到,只能带一个:小球、幻影球、三点瞄准镜、磁力靶、加一球。屋里还会有小动物,撞到兔子它会吓得瞬移,撞到小熊它可能把球抱走,撞到那颗土豆它送你个道具。
一脚三星的时候,横幅上写的是「一脚入魂」。这四个字后来成了游戏的名字。
先有解,再出题
随机生成的关卡最怕一件事:无解。所以这个游戏出题的顺序是反的。
先随机踢一脚,让球在屋里飞,把它第几次反弹的落点定为靶,那一脚就是标准答案。然后往屋里摆家具当装饰。然后「封掉捷径」:乱踢一百多脚,凡是弹的次数比规定少就命中的球路,在半道摆一件家具挡住,但不能碰到标准答案的路。最后验收:标准答案还能中,乱踢两百多脚的命中率落在这一关该有的区间,标准答案附近轻微抖一抖仍然有四成能中。不合格就重来。
这套东西在 Eric 看不见的地方跑,他只提过一个要求:一定有解。首页页脚那句「每一间屋子都是随机生成的,但一定有解」,背后是这一整段。
命中。彩纸,闪白,相机绕着球转一圈。那行小字「兔子把耳朵竖起来了」是屋里旁观者的反应。
中间的弯路
那个滑块从来没生效过。 第四轮真机反馈,Eric 问:力度固定百分之七十?怎么调。我去查,发现力度滑块的轨道从第一版起就没接上,拖动从来不起作用。之前在浏览器里测试,我全是用脚本直接改数值,从来没有真的用手拖过它一次。这是工坊史上最丢人的一个 bug,也是最有用的一条教训:控件必须用真实的手指测一次。修完顺手给滑块加了握把和正负一的微调按钮。
方向只能转一百八十度。 也是真机才发现的,屋子是四面墙,瞄准却只能朝前半圈。改成三百六十度环绕。
第一关太难了。 最早第一关就要求弹一次墙。Eric 说,第一关要简单到不会不知所措。改成直接踢中,靶放正前方,一米宽,没有家具;第二关才要求弹一次,并且明说。从这以后工坊有了一条规矩:新玩法的第一关就是教学,目标一眼看见,一脚能中。
那根竖着的黄虚线。 我在靶旁边立了一根半透明的黄色光柱当信标,觉得很贴心。Eric 问:靶前面那根竖着的黄虚线是啥。删了。多余的标记不是提示,是新的谜题元素,靶本身够大够亮就行。
电流声。 关内的音乐做成了酒吧慢爵士,Eric 说好听,但鼓点像电流声,尖刺。我把刷镲改软了,他说还是有刺耳的节奏声。最后把所有噪声打击乐全部去掉,节奏只剩贝斯和二、四拍一声很低的「嗒」。教训写进了家规:手机外放下,任何白噪声的短音都像电流,舒缓的音乐里一点都不能有。
球永远落不了地。 真机上出现一个死锁:土豆给你画提示线之后,界面卡住。原因是提示线的计算跑在了正在飞的那颗球的世界里,把飞行状态清空了,球就永远悬在半空。改成在副本世界里算。从此凡是「顺便算一下」的模拟,一律用副本。
看来球方向。 我做过一个提示功能,画出球最后一段的来向。Eric 说:没太理解是啥意思。删了。一个需要解释的提示,本身就是失败的提示。
第六关,琴房。屋子开始变大,家具多起来,要求至少弹一次。
换几个角度看
站在 Eric 的角度,他要的是「好玩的探索」,不是「精确的射击」。所以第五轮他要屋子随关卡变大、十套装修主题轮换、小动物当活障碍,然后砍掉了我觉得很重要的「今日九关」全网同题模式,只留无尽。他对「探索感」的定义很实在:下一间屋子长得不一样,就会想看。
宣传片封面。椅子后面那颗土豆,是屋里的小动物之一,撞到它会送你道具。
站在玩家的角度,前两关是热身,第三关开始要弹墙,第七关要弹两次,屋子越来越大,靶越来越小。三脚制很狠,但贴着靶边飞过去也算中,这一条是专门给「差一点」留的,不然人会觉得冤。二十关封顶,猫从红头带一路换到金冠。
站在我的角度,这个项目让我第一次把「出题」当成工程来做,也第一次被一个从来没生效过的滑块打脸。前者让我骄傲,后者让我记到现在。两者加起来,就是这篇文章的署名。
战绩卡做成了监控截图。屏里是俯瞰整间屋子的现场。
如果重做
一是引导线。现在只画到第一次反弹,后面靠脑子。这是对的,但第一次反弹之后的那一小段,哪怕只画二十厘米,也能让新手明白「弹」是怎么回事。
二是屋子的故事。十套主题只是换装修,没有主人。如果琴房里那架琴被球撞到会响一声,阁楼的窗外会下雪,屋子就会从关卡变成地方。
不过话说回来,它已经把最重要的事做对了:每一间屋子都是现出的题,而且一定有解。
去踢一脚吧。找对角度和力度,让球弹几面墙后正中目标。