indienova Picks:程序写累了就玩玩编程游戏吧

作者:游戏发现
2016-07-01
9 31 5

我们都知道一款游戏的开发包括很多方面,代码编写是其中必不可少的部分。几乎没有一款游戏可以脱离开编程这个环节。有时候,这些发生在游戏背后的开发过程也会被放到游戏当中,今天就给大家介绍几款跟开发、编程、技术有关的游戏。一方面在现实社会中的程序猿们可以在虚拟世界中大展身手拿点儿成就;另一方面,对程序有恐惧感或者想要了解编程的玩家,也可以借着游戏方式来了解一下技术宅们的世界。

其中部分游戏虽然披上了一层编程、技术的外皮,其玩法核心依然还是协调和统筹,但这些解谜游戏由于有了编写程序这一层现实基础作为支撑,所以玩起来会给玩家带来很不同的感觉。游戏爱好者不管如何看待电脑技术,都是可以尝试着玩玩这些游戏的。

TIS-100

TIS-100

Randy 叔叔突然去世,你的姑姑在整理他的遗物时发现了一台老旧的 TIS-100 型电脑(BIOS 是 1975 年的),姑姑当然搞不清楚这种老古董机器,于是,她把这台机器寄给了你,也就是玩家,希望玩家能够将 Randy 叔叔未完成的工作继续下去。

所以,游戏一开始就是一个老式电脑启动的画面,而在系统自检结束的时候出现了错误,于是进入了一个几乎全部由文本字符组成的 DEBUG 界面。这时,游戏就已经正式开始了。

为了帮助玩家更好的理解这台机器的运作,游戏本身提供了一个 TIS-100 电脑的说明书,通过阅读这份简短的说明书,玩家可以对机器的运作方式和操作语言有一定的了解,并根据这些基础知识来将这台机器恢复正常运作。

tis-manual

TIS-100 操作说明书

通过阅读说明书,我们会了解到 TIS-100 其实具备一套自己独有的非常精简的汇编指令集,只包括如 MOVADDSUBJMP 等最基本的汇编指令。而玩家的工作则是通过组织这些指令,将它们放到处理流程的各个节点上,使输入到输出的结果符合要求。所有这些指令都要求玩家亲自一个字符一个字符地敲进去的,简直就像真的在为一台老式计算机编程一样。

在解开谜题后,玩家还可以继续对自己的算法不断调优。每一次运行都会有 Cycle、Node、Instruction 记录,这些数据可以拿来跟你的 Steam 好友们做比较,以寻找差距。值得一提的是,TIS-100 还有一个颇为有趣的特性,它具有多个计算模块,每个模块之间的计算都相互独立,因此,在这台计算机上可以十分轻松地实现并行编程,有些时候看起来不错的线性解决方案说不定还有更好的优化方案,这为这款游戏的可重玩性打下了坚实的基础。

游戏本身还有一条主线,玩家在完成叔叔的遗愿同时,同时能了解到故事的背景(每一个可以 DEBUG 的模块上都包含一条日记信息)。通关之后想必会真相大白吧,虽然我距离通关还遥遥无期。

截至到发稿:Steam 上 1,289 篇用户的游戏评测中有 97% 为好评

Human Resource Machine

human-resource-machine

来自粘粘世界(World of Goo)的设计者和制作小小炼狱(Little Inferno)的团队,《Human Resource Machine(人力资源机器)》同样也是一款献给技术宅的解谜游戏。在大厦的每一层中,玩家都要从上司那里接受一份任务。玩家需要通过给小职员编程来自动化完成这些任务。如果任务成功,玩家就会晋级到更高级别,更上一层楼。

游戏的风格沿袭了开发团队之前作品的可爱卡通范儿,同时编程界面也很容易操作,只需要进行简单的拖拽。当然,也有很多人抱怨说操作太慢,如果能像 TIS-100 一样手敲代码就更爽快了。当程序运行起来的时候,看着小人儿来来去去,忙忙碌碌,倒满有种小小的成就感。

通过这款游戏,确实可以起到一些锻炼逻辑思维能力的作用。本作自带简体中文,对编程有兴趣的不妨上手试试。

截至到发稿:Steam 上 1,006 篇用户的游戏评测中有 94% 为好评

Hack ’n’ Slash

hack_slash

这款游戏之前 indienova 有过介绍。总体来说是个塞尔达风格的闯关游戏。在拥有了特殊的武器之后,玩家就可以通过编辑脚本修改游戏中角色的属性。比如:当一个敌人出现的时候,你可以直接修改它的攻击属性,将攻击力编写成负数,这样它再次攻击你的时候,其实就是为你补血了。

随着游戏的进行,玩家得到的权限会越来越大,可以修改所有许可的对象和方法,甚至游戏的全部脚本。

其实这个设定真的很有意思,但可惜开发者将重点几乎全放在了编程部分,游戏本身的可玩性做得非常一般,所以,没能成为一个经典游戏。

截至到发稿:Steam 上 590 篇用户的游戏评测中有 56% 为好评

Glitchspace

glitchspace

这款游戏 indienova 之前也曾有过介绍的。为了写这次的 Indienova Picks 我重新打开这款游戏,发现相比第一版本已经有了相当大的变化。

跟前面介绍的几款游戏比起来,本作摇身一变成了第一人称 3D 视角模式,显得高大上了很多,而且操作起来也很流畅。游戏中不停的会出现 Glitch 的情况,也就是时刻提醒这我们这是一个不稳定的环境。还好我们手里的设备可以对这个世界进行改造,以达到我们的目的。

在游戏中,红色方块都是可以进行重新编程的,而编程方式就是输入输出的连接和数据的设置等等。玩家经常会面对被阻挡、无法跨越或者数据流袭击等局面,这个时候就需要对附近的红色方块进行重新编程,比如改变位移(三维空间的)、尺寸、弹性等等。通过这些改变,就能够让玩家顺利通过,面对下一个谜题。

游戏一开始的题目都很简单,再往后就会稍稍变得复杂,关卡都是简单明了,感觉很清新。不过游戏中大量的函数都只是昙花一现,并没有得到特别好的应用,甚至可以说很长时间内感觉都是在进行教学,然后教着教着游戏就结束了。所以说,关卡设计上还存在许多缺憾。

完成游戏后,还有沙盒模式可供自由发挥,开放了所有的函数,所以可以持续不断地玩下去。

另外这款游戏已经提供了 VR 的支持,目前同类型游戏中,这可能还是第一款。有 VR 设备的读者一定要找机会尝试一下。

截至到发稿:Steam 上 182 篇用户的游戏评测中有 89% 为好评

Codespells

如果问起在奇幻的世界中,哪一个职业和程序员最为接近,肯定会有很多人脑海中复现出一名老巫师的形象。名著《程序语言的构造和解释》又称巫师书(The Wizard Book),大概也是觉得巫师调用神秘符号唤起未知力量的过程,和编程有某种内在的神似。而 Codespells 这款游戏,则干脆令脑洞成真,作为一个巫师,你能够施展的所有法术,都需要通过编写程序来获得。

目前这款游戏尚处于抢先体验阶段,内容不算丰富,支持玩家使用风,水,火,地四系元素魔法,包含五个多人进行的小游戏模式和一个随机地形的沙盒创造模式。

本作既支持使用 JavaScript,也支持控件式编程,十分灵活:

1
2

随着内容的进一步完善,相信这会是一款十分有趣的游戏。

截至到发稿:Steam 上 109 篇用户的游戏评测中有 76% 为好评

Hacknet

Hacknet

尽管并不会真的需要用到任何编程知识,但相比很多模拟黑客入侵的游戏而言,Hacknet 模拟黑客体验的努力着实值得好好夸赞一番。

本作的界面模拟出了一个十分黑客范儿的类 Linux 操作系统,玩家的全部操作都会显示在一个命令行终端上,看上去十分高端。嗯,是的,我没有说错,这款游戏居然真的会要求你象征性地了解一点基本的 Linux 命令,例如,如果键入 rm -Rf * 就会真的将当前路径上的文件都给删掉,而游戏提供的各种工具也需要在终端中键入带参数的相关命令来调用,例如,使用 porthack 命令来破解服务器的端口。此外,这款游戏还格外强调真实性,如果玩家在入侵一台服务器后忘记清理掉痕迹的话,那么很快就会被追踪而来的人反黑成蓝屏。

不仅如此,这款游戏提供了一个不算很广阔的开放世界,玩家的操作并不局限在一个又一个黑客任务之中,而是可以随意黑入任何一台你有能力黑入的服务器,充分满足自己的窥私欲。这些电脑里藏着大量与主线无关的琐碎彩蛋:比如,玩家费尽心思破解开某个加密文件会失望地发现只是一个色情网站的网址;又比如偷看别人的聊天记录发现某个男子脚踏两条船。特别一提的是,作者还在某个地方藏了许多 steam key,第一个发现的玩家可以将这些 key 分享给朋友让他们可以免费激活这款游戏(我知道你在幻想什么,不过,显然,时至今日这些 key 早就已经全部被激活了,少年醒醒)。其他方面的设计也同样能体会到作者匠心独具,比如,某个路径下会有一个文件专门用来定义当前操作系统的皮肤文件,如果觉得自己的电脑界面不够酷,可以通过指令从别的电脑中把这个文件拷贝过来换成其他模样(玩家还会在某处发现一个专门用来更换系统皮肤的工具,同样将它下载到自己的电脑上,就可以通过命令行来切换皮肤了,耶,真酷)。

尽管披着十分极客的外衣,这款游戏却对新手十分友好,即使完全零基础的小白也能够轻松上手:游戏中需要用到的命令十分有限,而且还提供了十分完备的教程。不仅如此,终端中还支持使用 tab 键补全命令,十分友好。此外,这款游戏涉及到的黑客攻击操作,基本上都依赖固定的工具。玩家的解密更多的是围绕剧情进行的,并不要求玩家思考任何有关程序的内容。

此外,游戏的主线剧情也非常有趣,你将跟随一位失踪黑客的遗留线索探寻混乱未知的网络世界,随着攻陷一台又一台的服务器,玩家在逐渐成长为黑客高手的过程中一点一点接近真相。这种对未知的好奇心也是吸引玩家一直将游戏进行下去的重要动力。

总而言之,本作营造出的独特感觉出色得难以形容:配合动感的音乐,嚣张地飞快敲击着黑入他人服务器的命令,紧盯着各种不断滚动的进度条,不禁产生一种黑客大牛附体的幻觉。喂,喂,醒醒,这真的只是幻觉!

截至到发稿:Steam 上 3105 篇用户的游戏评测中有 92% 为好评

Colobot

CKi_W3ZWoAAQU3V

忽略掉过时的画面,开源游戏 Colobot 是一款完美到令人惊讶的太空主题解密游戏。

令人难以想象的是,这款早在 2001 年就诞生的游戏中,已经出现了时下十分热门的沙盒建造要素,更妙的是,在这款游戏中,你可以使用一门类似 C++ 和 Java 的专用编程语言 CBOT 为机器人编写控制脚本。你需要不断探索新的星球,完成各种任务,你需要不停地优化机器人的ai,让它们能够更好地帮你面对各种复杂的挑战。在最近的版本更新中,这款游戏已经支持类似 RTS 对战的玩法,这让游戏变得更加富有乐趣了。这种玩法究竟是什么样子的呢?读者可以参看上面的演示视频。

试试这款免费的开源游戏吧,不仅能够让你成为拯救全人类的英雄,还能真正掌握编程的技能。

截至到发稿:GitHub 上已有 292 名用户为本项目标注 星星

Colobot

官网链接 去下载

Screeps

cover

最近刚刚上架 steam ,目前尚处于抢先体验阶段的 Screeps 中也允许你使用代码控制机器人。

更加独特的地方在于,它是一款多人在线的沙盒 RTS 游戏,一旦加入游戏,你控制的单位将 7 X 24 小时处于线上,而你的领地附近,则充斥着其他玩家的军队。你所能做的一切,就是使用 JavaScript 为自己的机器人单位编写控制 AI,然后寄希望于这些聪明的机器人能够战无不胜,攻无不克。

不同于前面介绍的有些游戏,这是一款货真价实的编程游戏,使用的也是现实世界热门的编程语言,非要说缺点的话,按月付费的模式略坑。

截至到发稿:Steam 上 44 篇用户的游戏评测中有 100% 为好评

Pony Island

s

indienova 曾在有关 Ludum Dare 的专题中介绍过 Pony island 这款诞生在 gamejam 上的 meta-game。这款游戏也巧妙地将编程元素融入到玩法之中。

indienova 作者罗林桑德认为:

本作的一大惊人之处正在于制作者对编程语言所进行的天才般的解构。以编程语言作为游戏要素的游戏并不鲜见,但是像 Pony island 中直接脱胎于游戏剧情,并直接影响游戏进程,而且能够处理得这样肆意狂放,又不失极客情趣,实在让人拍案称奇。从本质上来说,游戏中后台世界中的代码语言,与艺术家徐冰所创作的“天书”的伪语言有异曲同工之妙——它无限接近一种介于汇编语言和高级语言的形式,但又毫不存在严谨的语句表示。代码中随意充斥着的各种拟声词和网络俚语,无不隐喻着黑客亚文化的滥觞,这种略带俏皮的表达也间接体现着恶魔的性格。更重要的是,本作还进一步对这种伪语言进行了二次解构:游戏过程中不乏利用可视性的语法对“游戏程序”进行的“破解”关卡,而语法中除了常规的顺序、循环、判断等一维结构外,还出现了向左、向右、分裂甚至传送门等二维结构,这种可以类比于图形语言中的语法形式借用,让这种伪语言拥有了一种更为系统性的视角。

(本段引用自他对 Pony island 的评测

总而言之,如果你希望体验 metagame 的乐趣,对编程题材也有特别的兴趣,本作绝对不容错过。

截至到发稿:Steam 上 2892 篇用户的游戏评测中有 95% 为好评

Minecraft

111

上面这部令人瞠目结舌的视频来自一名中国玩家野心勃勃的宏伟工程:在现象级游戏 Minecraft 中复现一台可编程的16位计算机。引用他的原话介绍:

本工程基于一个叫 Minecraft 的游戏,我使用的版本是1.4.7。之所以使用一个游戏作为平台,是因为这个游戏可以做到实时运行超大规模集成电路模型(大于10000个逻辑门)并且提供壮观的可视化效果(三维数字电路)。

Minecraft 自由开放的规则令玩家的创造力得到了充分解放。早在这款游戏的早期阶段,就有人巧妙地利用一些方块的特性制造出自动化机器。而随后版本添加的活塞和红石电路则彻底引爆了玩家的想象力:通过红石在游戏中模拟门电路和时序电路元件,Minecraft 在某些玩家手中变成了 PLC 模拟器,各种神奇的工程项目开始层出不穷,上面视频展示的项目就是其中一个例子。

红石电路蕴含无穷的可能性,可是非得了解不少专业知识才能真正发挥它的妙用。在目前的版本中,Minecraft 已经加入了命令方块,让一些事情可以变得更加容易。这个神奇的物品允许玩家使用带参数的指令来改变游戏中的世界,也支持运行特殊语法的指令式脚本。唔。更像一款程序猿游戏了呢。

Minecraft

官网 去购买

Minecraft Mod:Redpower

maxresdefault

原版 Minecraft 可玩性颇高,但无数来自社区的热心开发者通过编写 Mod 把这个方块组成的世界变得愈发“无所不能”。

对很多尝试过 Minecraft 模组的老玩家来说,Redpower 绝对是一个如雷贯耳的名字, 这款模组中出现过的许多设计,业已成为其他 Minecraft 模组的设计标准,甚至官方的更新内容,也从中借鉴过不少。也这正是这款模组,首次试图将一台真正意义上的电脑引入到这个方块组成的世界之中。

Redpower 的电脑相对于笨重夸张的红石电路更接近我们一贯的印象:唔,显示器,磁盘驱动,主机,线缆,就像在真实世界中一样,你需要按照一定的连接顺序将它们组装成一台可用的设备。但一旦开机,你会发现自己有点傻眼,这款使用着黑屏绿底的界面、给人的印象早就复古到掉渣的电脑居然需要我们掌握一门即便在现实生活中也很少会见到的基于堆栈的冷门语言 forth。

连玩家社区也有人看不下去了,开发出了使用 basic 脚本调用系统 api 的功能:简单来说,就是一种让你的RP2电脑可以使用入门级编程语言basic的方法:所谓的 Minecraft Basic (考虑到后来 Minecraft 被微软收购的命运,不仅感觉这个词可谓对 Microsoft Basic 的绝妙双关)是第一个也应该是唯一一个为红石2电脑控制设计的Basic语言解释器。来自社区的 BiGFoot 同学将过去微软版本的 Basic 6502 代码编译完善,使其可以用于 redpower 的 RPC8 电脑。此外,Minecraft Basic 添加了文件系统,以及对 io 扩展,外部硬件的全面支持。MB 甚至添加了允许更快启动序列的引导程序(可选,也可以使用原版)。总之,Minecraft Basic 让你事半功倍,基本替代复杂的 forth 语言来操作 redpower 中的电脑。

Redpower 的作者 Eloraam 后来决定自己开发一款游戏来重新实现 Redpower 中的一切,大家可以关注她的推特来了解项目的更新进度,目前看起来还处于极为早期的阶段,下面是她最近公布的一张早期截图:

Yrrp9u1

Eloraam 的新游戏

Eloraam 的博客

redpower 相关消息 去逛逛

Minecraft Mod:Computercraft

computercraft

相比已经很多个版本没有更新的 Redpower,提到电脑 Mod,新生代的 Minecraft 玩家可能更容易想到的是 Computercraft。

ComputerCraft 是一款为 minecraft 世界增加了电脑,显示器,有线或无线网络,机器人,打印机以及其他电脑外设的模组,所有相关设备和红石信号均可以很轻松地通过 lua 语言进行编程操作。你可以通过电脑控制红石信号来更轻松地操作红石设备,比如密码门,计算器电路,程控的造石机、红石大炮等等,也可以用强大的程控机器人按系统预设或者自己编写的程序实现自动开挖矿洞,建筑,耕地,播种,合成,附魔,屠杀怪物等各种复杂的操作。此外,你可以安装各种外设和别人编写好的程序扩展游戏体验。Computercraft,不仅将 Minecraft 带入信息时代,也为玩家创造了一个十分良好的学习编程的环境。

最后要强调的一点是,相比很多其他编程游戏,Minecraft 中的编程其实有一个十分独特的优势,它更容易给人带来成就感,因为通过与游戏的其他元素联合,利用电脑来控制自动化机器的生产,除了享受编程乐趣外,看着生产流水线上不断出现的“产品”,满足感也油然而生。

Computercraft

官网 去逛逛

Hacked

maxresdefault (2)

即便在移动端,编程题材的游戏也不鲜见。来自 Falcon Pro 开发者的黑客游戏 Hacked 就是其中特别值得推荐的一款。

本作与其说是游戏,倒不如说是一款披着游戏外衣的 oj 题库,玩起来非常有刷 leetcode 的既视感,虽然题目难度确实容易了许多。剧情方面没什么特别值得一提的,玩家扮演一名获得黑客手机的高中生,谜题最开始围绕玩家的高中生活来设计,每一关都需要按题目要求使用游戏内置的 H 语言编写一道程序。

1234

本作真正的亮点在于程序编辑器,这款游戏为我展现了目前为止在移动端看到的最方便好用的编程专用输入法,彻底告别繁琐的字符输入,还配有十分好用的自动提示与代码补全,你值得拥有。手机端如果想推出专门用于输入某种编程语言的输入法,真应该参考下这款游戏的设计。

Hacked

官网 去购买

Elevator Saga

screenshot

相信很多人都曾有过吐槽电梯 AI 的经历,自己尝试一下为电梯编写控制程序,结果又如何呢?

Elevator Saga 这款在线网页小游戏就给了你这个机会。游戏分为多个挑战,在每个关卡中,你都需要通过程序控制电梯在规定时间范围内运送指定数量的乘客。

怎么样,并非想象得那么容易吧。

本作是一个开源游戏,大家有兴趣可以到 GitHub 查看项目源码。

Elevator Saga

官网 在线玩

Vim Adventures

xxxxx

接下来推荐的这款游戏稍微有些特别,严格来说,它并非融入编程知识的游戏,而是一个游戏化的编程教学工具。通过玩这款游戏,你可以轻松上手编辑器之神 vim 的基本操作。

玩家操控的主角相当于编辑器中的光标,通过 vim 中的快捷键操作解决各种谜题。这是一款收费游戏,包含三个免费关卡,后续关卡则需要支付 25 美元,且半年后需要重新付费。虽然收费策略显得很不厚道,但这样才能更好地激发玩家的学习动力,尽管 vim 颇难上手,但玩过这款游戏后应该问题不大吧,什么时候来一款 emacs adventure 游戏呢。

实际上,这类游戏化的编程教学工具为数不少,比如教你学习 python 的在线网页游戏Check IO,使用终端命令行来玩的 git game,寓教于乐,都做得十分有趣。

看来游戏化对在线编程教育来说是一个大有可为的方向。

Vim Adventures

官网 在线玩

其它值得推荐的

还有一些值得介绍的编程游戏,它们有的可能并没有直接和编程相关的内容,但却实实在在贯彻着编程的思想,比如同步、线程、逻辑以及流程控制等等,玩起来跟编程一样爽,给大家列在下面:

近期点赞的会员

 分享这篇文章

游戏发现 

游戏发现者@indienova 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. 有猫的尾巴 2016-07-01

    好棒好棒

  2. 至尊小夜猫 2016-07-01

    也有程序员专属的游戏,老外独立游戏作坊制作的,但都是些需要手动输入代码的,普通人玩不了。形象化的程序游戏,我记得有lightbot,我想过,若是程序就这么简单该多好呢。

  3. 鱼子酱hsif 2016-07-01

    说实话身为程序员回到家后很少碰这些游戏……
    巫师,GTA这样的自由3A更适合逃离代码休闲。
    像一些独立游戏也是很好的选择。
    这些还是给那些好奇宝宝来探索吧。

  4. 浑身难受 2016-07-02

    TIS-100才进H变月包,买买买!

  5. 漩涡小子 2017-08-14

    刚刚写完一个控制台版俄罗斯方块还有一个控制台版贪吃蛇玩,这...

您需要登录或者注册后才能发表评论

登录/注册