所以去年我在AppStore上发现《人力资源机器(Human Resource Machine)》这款游戏时,感到兴奋莫名,这不仅是从独特画风上吸睛的一款编程游戏,它在关卡设计上也把编程游戏向大众的距离推进了一大步,所幸AppStore也把它视若珍宝,三不五十就在各种专题里把它拉出来展示一遍。
当然,最开始引起我注意的,是制作人的名号而非游戏本身,它可是《小小炼狱》和《粘粘世界》的合体,整体风格带着浓烈的卓别林的《摩登时代》式的魔幻,玩家所扮演的员工需要不断完成一个个毫无意义的指令,每完成一关就能上一层楼,机械工作并机械度假,虽然玩家能享受到关卡设计,但游戏主角想必并不知道自己到底是为了什么。而它具体的玩法设计,则仿佛是开发者不惜一切也要把编程魅力展示给普罗大众的具象表达(也可能是写程序写到崩溃的报社行为)。
具体来说,游戏的每一关都会给玩家提供有限的一些指令,玩家需要做的是通过这些指令写出一个算法,满足产品经理的需求。听起来就像是程序员的日常,事实上你也确实时常能体会到程序员的崩溃心情。
令我印象深刻的是在某一关当中,玩家需要写出一个判断两个数是否同号的算法,同号则都输出,异号则放弃。在这个解决问题的过程中,我的思绪已经由淡定扭曲到了毫不沾边的绝对值,直到某一刻灵光乍现,才突然间意识到这其实是利用简单的逻辑门来解答的。虽然暴露了智商,但是却令我每每体会到数字电路的精巧逻辑,当你操纵着指令以最简洁的算法完成需求的时候,那种成就感无以言表,乃至于对这样智慧的产物感到深深震撼。
虽然多数评论都把它看做一款编程游戏,但我还是认为这是开发者在努力展示着计算机语言的魅力,哪怕完全不懂编程的人也能轻松理解并且上手,数字电路的思想也不打折扣。是的,游戏整个流程都没有用到什么进阶的算法,也许对于许多程序员来说它显得单一和欠缺挑战性,但在推广数字电路的魅力方面,对于一个新手——至少对于我来说,它完全的成功了。
《人力资源机器》还是一款独具黑色幽默品质的游戏,虽然它的关卡不算复杂,但是难度曲线和可重玩性都非常优秀,却又将完美通关条件与“产品经理和程序员的矛盾”结合在了一起,也就是说,追求完美的玩家们同样也在忍受着产品经理给你提的一个个要求,也许开发者们就是有这种一边像你安利科学的美丽,一边用现实无情抽打玩家的恶趣味吧。在这个欺骗性的画风之下,《人力资源机器》讽刺的一面还真是有种自嘲感。
说起这样数字电路的游戏,便难以绕开一款古老的JAVA神作——《机器人奥德赛(Robot Odyssey)》。相比之《人力资源机器》这种科普向老少咸宜的编程游戏,《机器人奥德赛》已然是一款高智商游戏了。游戏中可供玩家操纵的三个机器人可以实现简单的动作,通过布尔数学体系逻辑的基本操作,来帮助玩家完成关卡,可以说是一个学习数字电路的游戏,尽管真实情况要比那复杂得多。
通过这些“TRUE”或“FALSE”的简单逻辑门命令,玩家需要完成一系列非常复杂的操作,有种说法是任何一个能够独自通关的玩家都能有资格成为一名软件工程师,可见这款游戏硬派到了何种地步。不过它依然有大量的追随者,也产生过“玩了13年才通关的玩家”这样的传奇故事。
看来运用到逻辑门的游戏总是有一种特殊魅力的,简单的几个命令经过各种变化及排列后时常产生惊人的效应。如同《三体》当中那个有名的场景:百万人组成的人列计算机,通过三人一组,每组各自完成自己的“ON”或“OFF”指令,形成一个庞大而复杂的数字电路,通过这样原始的办法可以实现复杂的计算。