TIS-100

通过编写汇编代码,根据给定的输入得到正确的输出,以完成关卡目标。《TIS-100》初看并不像是一个游戏:黑乎乎的堪比命令行的界面,不存在的新手教程,查看游戏手册也仅仅是在游戏外给你打开一个 PDF 文件而已。也许它更像是一个游戏化的编程模拟软件。

我并不知道 TIS-100 的架构是否有历史上的原型,但其的确与现实的汇编有着不小差别。指令集被精简得可怜,只支持简单的赋值、加减、判断等操作,并不支持位运算和寻址等。如果说这是为了让之前没有汇编知识的玩家能够低门槛上手的话,那只提供了一个半寄存器、限制代码的长度和宽度,就是单纯为了增加游戏的难度了。此外,和其他大多数编程题材游戏不同,它提供了多个按拓扑关系连接的节点(相当于一个处理器内核),节点与节点之间通过端口传递数据,这就需要你合理利用各个节点拆分代码,或是提供额外的寄存器,或是用来并行处理以提高程序的性能。

image

虽说其与现实编程存在差距,但倘若接受了这个设定,《TIS-100》就是一个相当不错的解谜游戏。对数据进行加减乘除、比较、排序、作图等,这些看似简单的功能,在游戏严苛的限制下,也成为了极具挑战性的谜题。如果你还嫌不够,你还可以尝试下完成增加了更多限制的游戏成就。此外,游戏自带了关卡编辑器,你可以下载其他玩家的谜题,也可以使用 Lua 语言编写自己的谜题考验他人。

不过过关仅仅是这游戏的一半。在你运行程序的时候,游戏会记录下你的程序使用的节点数、指令数和运行的 cycle 数(相当于运行的时间),并在好友中排名。这给了玩家不断优化程序性能的动力,也为游戏带来了较高的可重玩价值。由于这三项指标往往难以同时达到最优,游戏为每个谜题提供了 3 个存档以便于你试验各种代码结构和算法。完成一个谜题已属不易,找到它的最优解更是难上加难。当然,在这之后超越了好友,排名第一的成就感也是难以用语言来形容的。

image 1

值得一提的是,《TIS-100》并不单纯是一个程序题的集合,它还自带了一个幕后剧情。手册封面的书信、里面的涂涂画画、每个谜题中 DEBUG 节点中的日记、全是乱码的隐藏谜题,似乎都在说明这台机器背后的故事。然而作为一个还没打通第一页关卡的菜鸡码农预备役,我目前并没有余裕去探索,而 steam 评测和社区中讨论这个的人似乎也不多。希望有大神能还原它背后的故事。

image 2

然而《TIS-100》终究只能是一个小众的游戏。对于只想体验下编程思想的非程序员,相比于《Human Resource Machine》和《Lightbot》之类,它缺乏形象化的反馈,远不如它们直观和友好。对于希望用编程发挥创造力的玩家,尽管游戏有沙盒模式,但也只能做做简单的数字比较和画个分辨率感人的像素图,可发挥的余地也不大。而以程序员的角度,则可能会不满足于其过于精简的指令集和诸多严苛的限制。不过与其他编程题材的同类游戏相比,《TIS-100》很好地塑造了编程体验本身,开关机的动画音效、手敲代码的输入方式以及程序运行时的嗒嗒声等,都能让你身临其境地感受到你是在一台老机器上从事着真正的编程工作。如果你对这样的体验很感兴趣,也愿意静下心来盯着屏幕烧上几个小时的脑子,那么我向你强烈安利这款游戏。

最后说句题外话,看到有不少人希望通过这种类型的游戏来学习些编程,我想说人生苦短,还是学门 Python 、Ruby 这样的脚本语言比较好。拿这样被极度精简的类汇编语言只会让你事倍功半。

TAGS:  游戏
正在加载,请稍候……