史上最难的计算机游戏

本文是翻译,版权归原作者所有


它就是“Robot Odyssey”,我花了13年才通关,它决定了我做为程序员的命运

[caption id=”attachment_238” align=”alignnone” width=”590”]Odysseus had it easy next to this. Odysseus had it easy next to this.[/caption]

我的第一台电脑是Apple IIe,128KB的RAM,没有硬盘,一个5¼英寸的软盘。那时候顶级的教育游戏是“Rocky’s Boots”,它是一款面向孩子的形式逻辑基础【注1】教学的益智游戏。六岁的时候,我非常爱玩。两年后,我有了“Robot Odyssey”,它声称是“Rocky’s Boots”的延伸,把形式逻辑扩展到了实际编程。这个游戏彻底压垮了我,我的大脑还不能够理解如何解决谜题。我最终通关是在13年以后,没有靠其他人的帮助。

我想说:任何处于孩提时代的人如果能够通关这款游戏,那么他的职业一定是个软件工程师(我只认识一个人,他也是我曾经遇到过的最聪明成员之一)。任何通关的成年人都应该从事工程师工作。“Robot Odyssey”是难度最高的“教育类”游戏,它也是一项令人惊奇的技术成就,而且还是Apple IIe时代最有创新的游戏之一。

像这种空想的、难得无以复加的游戏带来了如下挑战。它是我孩提时代记忆最深的游戏,我最深爱(和鄙视)它,因为它最难,最复杂,最具挑战。游戏里的世界就像柏拉图,一个神秘、纯粹的思想和逻辑的非物质领地。这款游戏的挑战——极具挑战——在于理解那个世界。程序员Thomas Foote刚上大学就接触了它:“我向自己保证”,他告诉我,“上帝是我的目击证人,我要在大学毕业之前通关,我努力了,但是很勉强。”

[caption id=”attachment_239” align=”alignnone” width=”590”]Programming in your pajamas: the simulation. Programming in your pajamas: the simulation.[/caption]

在“Robot Odyssey”里,你的角色处于一个叫做Robotropolis的神秘城市的梦境里。在你能够回家之前,有五个上升的等级。下面是难度的大概评估:

[caption id=”attachment_240” align=”alignnone” width=”354”]Robotropolis as rendered by Gil Morales. Robotropolis as rendered by Gil Morales.[/caption]

我十几岁的时候完成了前三关,但是我的小伙伴和我在第四关遇到了难题,它之于过早的关数 相当于 代数之余算术。(就像Thomas Foote所说,“我的大部分大学时光就耗在了这里。”)第五关不过是一个虚构的梦。那时候还没有互联网,如果你不是住在硅谷,甚至都找不到玩过这个游戏的人。

这款游戏变成了我的“黑色怪兽”,一个难以割舍的毛病。你必须理解,在我从事BASIC和Pascal编程数年之后,我仍然不能通过第四关。

这款游戏对玩的人产生了深远的影响,感谢我的弟弟,当我和姐姐沉迷于这款游戏的时候一直宽恕着我们,他对我说,“我就是从这里开始我的程序员之路的。”即使玩家遭受了打击(每个人都遇到过),该游戏仍然提供了其它游戏无法提供的灵感和思想。游戏设计者和硬件黑客 Quinn Dunki,一位女士,一台笔记本写出了带有很多同样概念的、“Robot Odyssey”的精神继任者“Gate”。技术法律教授James Grimmelmann告诉我,它一直是他的“game for a rainy decade”,形容完成艰难的谜题之一所带来的巨大成就感——“我爱编程的主要原因”。程序员、音乐家、黑客Joan Touzet在2004年用它来教中学生编程。Thomas Foote为了表示对小而专注的粉丝社区的支持,花了数年时间用Java重写了整个游戏。(一个社区会员通关后,获得了由the Learning Company公司认证的第34个通关者。)Thomas Foote给他的版本取名“DroidQuest”,它是今天玩“Robot Odyssey”最简单的方式。

[caption id=”attachment_241” align=”alignnone” width=”590”]It's an accomplishment. It’s an accomplishment.[/caption]

软件工程师Micah Elizabeth Scott这款游戏搬到了任天堂游戏机上,他对我说,“Robot Odyssey”对我后来的成长起着巨大的影响“,并强调一项创造是多么地个性和与众不同:”你能看到个人风格或非常小众,因治理结构或现代抽象而整齐规范。“

这足以证明这样一款游戏在早期软件消费领域所能达到的自由精神的顶峰。The Learning Company,开发了”Rocky’s Boots“、”Reader Rabbit“和”Gertrude’s Puzzles“等经典游戏,是由美国国家科学基金会(NSF)一群对软件有兴趣的教育工作者于1980年创办的小公司: Leslie Grimm, Frona Kahn, Ann McCormick, 和 Teri Perl, 还有Warren Robinett(他创造了世界上第一个彩蛋[Easter egg],把他的名字藏在了Atari’s Adverture里的一个神秘屋子里)。这家公司因致力于教育软件以及由女性领导而显得非主流。Grimm和Robinett设计了1982年的“Rocky’s Boots”,它把孩子带入布尔逻辑【注2】的大门,我在6岁的时候非常着迷于此。Leslie Grimm也合著了“Robot Odyssey”,它来自于那时候22岁斯坦福大学肄业生Michael Wallace的启发。

[caption id=”attachment_242” align=”alignnone” width=”354”]The game taunts you. The game taunts you.[/caption]

Michael Wallace说,游戏编程是他生活中最美好的时光。他最初是the Learning Company公司的一名客户服务代表,通过看Warren Robinett为“Rocky’s Boots”写的代码在Apple 6502上自学编码。在Warren Robinett离开公司之后,Michael Wallace扩展了Warren Robineet的代码,并规划了“Robot Odyssey”的潜在技术架构,包括让人眼花缭乱的回路嵌套功能。这不是一项容易的工作:Michael Wallace称之为“一种艺术形式”,一周工作100小时。当Teri Perl向著名的计算机科学家Alan Kay介绍这个项目的时候,Alan Kay说:“你在浪费你的时间,这是行不通的。”那是由于基本思路仅仅太复杂而无法在Apple家用电脑上运行。当“Robot Odyssey”完成的时候,这个公司给Michael Wallace一个匾额,写着“这是行不通的。——Alan Kay”。

当Leslie Grimm从斯坦福获得生物学博士学位之后,她对电脑和电脑教育潜力非常着迷,而当时她正为女儿的学校提供义务服务。除了指导整体项目,Leslie Grimm还负责“Robot Odyssey”的游戏部分:五个等级和三个教程(为了让玩家更容易接受该游戏,在1.1版本增加到五个教程)。每个游戏等级都是一个单个人的个性化创造。我想专门介绍一下Shaun Gordon,他是一名16岁的优秀高中生,设计了残忍的第四个等级,这是很多玩家(包括我自己)遭遇滑铁卢的地方。

Michael Wallace一直忙于游戏的研究以致于他自己从来没有通关。我问他,他将来某一天是否去尝试,他说,“这要花费我一年的时间。”他不确定the Learning Company公司有人能独立搞定整个游戏。

为了解决谜题,给你三个(实际上是四个)可控制的机器人。从左到右,他们是Sparky、Scanner和Checkers。它们可以移动,检测墙壁,捡起或扔掉东西,还能与另一个机器人通信。

[caption id=”attachment_244” align=”alignnone” width=”590”]Sparky, Scanner, and Checkers: they are yours to command (and scream at). Sparky, Scanner, and Checkers: they are yours to command (and scream at).[/caption]

当我说程序(program)时,我是指一些比计算机代码稍微原始的、甚至更为底层的、在处理器芯片内部运行的指令。我指组成芯片内部结构的、实际的逻辑门(与、或、非)。因此“Robot Odyssey”是程序,但它也是电子工程。你实现“程序”的工具是最原始的。你让电流通过电线进入门里,门实现正式的布尔逻辑的原始操作。

[140124_BIT_RO-07-InsideARobot.png.CROP.original-original](http://www.labazhou.net/wp-content/uploads/2014/01/140124_BIT_RO-07-InsideARobot.png.CROP_.original-original.png)

布尔逻辑相当简单,它有两个相反的值,也就是广为熟知的真和假(如果逻辑被用在断言里),既然我们这里讨论的是电子,那么它们最好被叫做开或关。游戏里的机器人有控制移动的推进器。举个例子,如果你通过电线给机器人的助推器供电,助推器就是开,然后机器人开始移动。另外,有一组逻辑门来改变电流的属性。一个非门有一个进入线和输出线,并且倒转输入线。如果进来的是开,将有电流通过,门就不会输出电流。如果进来的是关,门就输出电流。

[140124_BIT_RO-08-WallHugger.png.CROP.promo-mediumlarge](http://www.labazhou.net/wp-content/uploads/2014/01/140124_BIT_RO-08-WallHugger.png.CROP_.promo-mediumlarge.png)

借助这些门和其他配置,你不得不控制机器人完成任务——起初是合理的、简单的任务,随着游戏的进行它会变得越来越难。

[caption id=”attachment_247” align=”alignnone” width=”590”]Eric Welsh’s circuit that “plays” a 100110 pattern on the antenna. Eric Welsh’s circuit that “plays” a 100110 pattern on the antenna.[/caption]

当一个机器人用只能是开或关的通信指令通过电线移动到另一个机器人,这些逻辑门开始变得能力非常受限制。技巧是,它们没有限制——有足够的组合,这些小逻辑门能够完成任何事情。但是它真的很花时间。

让这些简单的门执行大脑想出来的复杂程序。小时候的我还不能够从这些简单的门跳跃到需要解决游戏谜题的、复杂的控制指令。这个游戏是你具备了为了抽象控制结构而”烧录“回路到芯片的能力。下面是很多或门,是为了……好的,我也不知道是什么(这里有可怕的详细解释)。

[caption id=”attachment_248” align=”alignnone” width=”590”]Inside a chip: Fun for the whole family! Inside a chip: Fun for the whole family![/caption]

那些简单的逻辑门的要点在于,通过足够的组合和组织,可以做出非常复杂的工作。毕竟,这就是计算机编程的本质,在非常复杂的结构中应用原始指令。对于 Thomas Foote,这款游戏的基本吸引力非常像数学和计算机科学:”世界是逻辑的,通过简单的规则运行。简单可以孕育出复杂。“

虽然规划的结局从来没有成为现实,这款游戏还是获奖了,并刊登在《科学美国人》杂志。Michael Wallace因此受到了Apple总裁的接见,还在施乐帕羅奧多研究中心做了报告,他继续设计电子类玩具,包括任天堂的Power Glove,现在他自己创办了一家名叫”Pure Imagination“的公司。Leslie Grimm待在the Learning Company公司制作了很多游戏,包括成功的”Reader Rabbit“和更多最近开发的面向孩子的教育软件。”Robot Odysessy“高深的复杂度使它成为今天像Minecraft之类的类型开放游戏的精神前辈。它很可能把成百上千的人变成了计算机程序员,为了让更多人当程序员,我提出按名次的”Robot Odysessy“挑战:第一个通关的人——发送一个保存的游戏文件给我做为证据——可以从the Learning Company公司得到一个通关认证的拷贝。仅仅第一名用户被允许——不能通过查找解决方案来作弊!

原文地址:http://www.slate.com/articles/technology/bitwise/2014/01/robot_odyssey_the_hardest_computer_game_of_all_time.html 注1:形式逻辑:http://wiki.mbalib.com/wiki/形式逻辑 注2:布尔逻辑:http://zh.wikipedia.org/wiki/布尔逻辑

译文:史上最难的计算机游戏 》| 腊八粥