史上最困難的電腦游戲

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

游戲的名字叫“Robot Odyssey”,我花了13年的時間才通關,而且它還讓我開啟了程序員的職業生涯。

我的第一臺電腦是 Apple IIe,它有128K的內存,沒有硬盤,只有一個5.25英寸的軟驅。當時最流行的益智游戲之一是“Rocky’s Boots”,一個教孩子們基本的邏輯知識的發明類游戲。在我6歲的時候,我非常喜歡這款游戲。2年后,我得到了“Robot Odyssey”這款游戲,它宣稱擴展了“Rocky’s Boots”的基本玩法,把簡單的邏輯變為真實的編程。這款游戲徹底蹂躪了我,我根本無法理解如何去破解游戲中的難題。我在沒有任何幫助下,直到13年之后才終于通關了。

讓我來說明一下:任何小孩,只要能夠通關這款游戲,當然前提是通關時他還是個小孩(據我所知,唯一一個還是我所認識的最聰明的程序員),就可以保證能夠成為一名軟件工程師。順帶提一句,任何成年人,誰能夠通關這款游戲就可以去當一名工程師了。“Robot Odyssey”是有史以來最他媽難的益智游戲。同時它也是一個令人驚艷的技術成就,也是Apple IIe上最具創新性的游戲之一。

漸漸的,這樣荒謬的游戲難度吸引了一大批追隨者。這個是我童年記憶最清晰的游戲。它也是我最喜歡(也最絕望)的游戲,因為它是如此的困難,復雜,充滿挑戰。它展現出來的世界就好像是在面對柏拉圖形式理論一樣,是一個秘密,是非物質的純粹邏輯和思想。這個游戲的挑戰,同時也是一個最大的困難,在于去理解那個游戲里的世界。程序員Thomas Foote在他剛上大學的時候開始玩這款游戲:“我真想殺了自己”,他告訴我,“我對上帝發誓,我一定要在大學畢業之前通關這個游戲。最后我辦到了,但是非常懸。”

Programming in your pajamas:the simulation.

Programming in your pajamas:the simulation.

在“Robot Odyssey”里,你扮演一個角色進入了夢境里的神秘城市Robotropolis。在城市里有5個難度遞增的等級供選擇,通關后你才可以回到家。這里是對這5個等級的難度的一個粗略估計:
1、下水道:中等
2、地鐵:挑戰
3、城鎮:非常難
4、主控制中心:不可能
5、天空:不可能

Robotropolis as rendered by Gil Morales.

Robotropolis as rendered by Gil Morales.

在我年輕的時候,我完成了前三個難度,但是我以及我的小伙伴們都在第四個難度被卡住了,跟它比起來,前面三個難度簡直就好像是算術跟代數的區別。(就像Thomas Foote說的那樣,“我被這一個等級卡了整整一個大學。”)第五個等級就像傳說一樣,通過根本就是做夢。在那個年代,還沒有因特網,如果你不是在硅谷的話,想找到別的玩過這個游戲的人都非常困難。這個游戲成為了我的“復仇者”,一段我內心糾纏不下的記憶。給你描述一下你就懂了,在我用BASIC和Pascal編程很多年之后,我還是不能通關第四個難度。

這個游戲給那些玩過的人帶來了深刻的影響。我的小弟弟,跟我的妹妹和我一樣,都被這個游戲給難住了,他告訴我,“這個游戲就是他走上程序員道路的開始”。即使有那么多人被卡住了(事實上所有人都被卡住了),這個游戲帶給玩家的新思想和新概念是其他游戲所不能比的。“One Girl, One Laptop”公司的游戲開發者以及硬件黑客Quinn Dunki寫了著名的游戲“Gate”,而它繼承了“Robot Odyssey”的許多思想并用了很多相同的概念。科技法學教授James Grimmelmann告訴我,“Robot Odyssey”這款游戲是他游戲生涯中“陰郁的十年”,在完成任何一個難題時都產生一種巨大的成就感——“這也是我喜歡編程的最大原因。”

在2004年,程序員/音樂家/黑客Joan Touzet用這款游戲來教中學生如何編程。Thomas Foote是如此的執著于這個游戲,他在一個小但是專業的俱樂部的支持下,花了好多年,用Java重新實現了這款游戲。(他是成功通關,并取得Learning公司認證的第34個玩家。)Foote把它的Java版本叫做“DroidQuest”,并且這也是今天能夠玩到這款游戲的最簡單的方法。

It's an accomplishment.

It’s an accomplishment.

軟件工程師Micah Elizabeth Scott,把這個游戲移植到NDS上,他告訴我,“Robot Odyssey”這個游戲對于塑造他后來的人生扮演了一個重要的角色,并且強調這款游戲是一件多么獨特的作品,“通過這款游戲,你能夠看到這個人,或者是這個制作團隊的風格,他們通過合作的方法,用高度的抽象來使得游戲中的一切井井有條。”

在那個早期的消費軟件時代,這個游戲的誕生絕對是一次自由意志的嘗試。Learning公司除了做出“Robot Odyssey”之外,還制作了一系列經典游戲,像“Rocky’s Boots”、“Reader Rabbit”、“Gertrude’s Puzzles”,這家公司是由4名美國國家科學基金會資助的,對軟件感興趣的教育家成立于1980年,他們分別是:Leslie Grimm,Ann McCormick,和Teri Perl,以及Warren Robinett(他是世界上第一個創造復活節彩蛋的人,他在游戲“Atari’s Adventure”的一個秘密房間中隱藏了他的名字)。這家公司是一家非典型的公司,它關注益智類游戲,同時還由女性領導。Grimm和Robinett設計了1982年的“Rocky’s Boots”游戲,游戲教孩子們學習與非邏輯門,并且抓住了我6歲時的心,Grimm同時也是“Robot Odyssey”的作者之一。后者是一名22歲的斯坦福大學本科生Michael Wallace的心血結晶。

The game taunts you.

The game taunts you.

Wallace告訴我,寫這個游戲是他一生中最美好的時光。他原本只是Learning公司的一個客服,通過看Robinett寫的“Rocky’s Boots”的代碼,他自學了在Apple 6502上用匯編編程。在Robinett離開公司之后,Wallace擴展了Robinett的代碼,構成了“Robot Odyssey”底層架構,包括游戲中令人眩暈的,把電路嵌入電路的能力的開發。完成這些并不是一件容易的事;Wallace認為這是創造藝術的過程。那時他每周工作100小時,當Teri Perl向傳奇計算機科學家Alan Kay介紹這個項目的時候,Alan說,“你這是在浪費你的時間。這不可能被完成”。他這話的意思是,在一臺蘋果家用機上運行這么復雜的程序是不可能的。當“Robot Odyssey”橫空出世后,公司給了Wallace一塊牌匾,上面寫著,“這不可能被完成。——Alan Kay”。

在得到斯坦福的生物學博士學位后,Leslie Grimm在她女兒的學校做志愿者的時候,開始對計算機潛在的教育用途產生了極大的興趣。除了掌管整個項目外,她還負責“Robot Odyssey”的一部分工作:Robotropolis的5個等級以及3個教程(在1.1版本中被擴展到5個教程,為了讓游戲對玩家來說更容易一點)。這5個不同的游戲等級是由5個不同的個人單獨創作的。我必須要指出,16歲的高中生Shaun Gordon設計了惡毒的第四個等級,“主控制中心”是我和許多玩家的滑鐵盧。

Wallace在開發這款游戲的時候一直都非常忙,以至于直到游戲完成,他都從來沒有玩過。我問過他,是否某天他會試試,他告訴我說,“這也許會花掉他好幾年的時間”。他不確定在Learning公司里是否有人能夠單獨通關這款游戲!

為了解決游戲中的難題,你會獲得3個(最終將是4個)機器人伙伴幫助你連線或者編程。從下面這張圖中可以看到,從左到右,它們分別是Sparky,Scanner和Checkers。它們能夠移動,探測墻壁,拿起或是放下物品,以及和別人對話。

Sparky,Scanner,and Checkers:they are yours to command(and scream at).

Sparky,Scanner,and Checkers:they are yours to command(and scream at).

我上面提到的編程的意思,是比敲電腦代碼更加原始的東西,甚至比匯編相對計算機運行來說更加底層的東西。我的意思是構成芯片內在的邏輯門(與,或,非)。與其說“Robot Odyssey”在玩編程,不如說它是在玩電子工程。你用來編程的東西是最基礎的東西。你有的是電流通過導線和邏輯門的電路。這些邏輯門構成了布爾邏輯的基礎操作。

Simple,right?

Simple,right?

布爾邏輯其實十分簡單。它就是兩個相對的值,通常稱為“是”或者“否”(如果用作邏輯判斷的話),但是因為我們這里討論的是電路,所以它們被稱為“正”和“負”比較好一點。游戲里的機器人擁有推進器幫助它們移動。舉個例子,如果你通過一根標記為“正”的導線向機器人推進器輸入電流,那么推進器將會被打開并使機器人移動。除此之外,還有一類邏輯門來使電性相反。一個非門擁有一根進導線和一根出導線,它的作用就是顛倒輸入導線的電性。如果輸入的導線標記為正,那么在輸出端就不會有電流。如果輸入的導線標記為負,那么它就會在輸出端就會輸出電流。

A “wall hugger” robot.The actual logic is embedded “inside” the blue “2″ chip.

通過使用這些以及另外的一些邏輯門,你必須動用機器人完成一些簡單的任務,但是隨著游戲的推進,任務將會變得越來越復雜。

Eric Welsh’s circuit that “plays” a 100110 pattern on the antenna.

當任務變成需要你用一個機器人通過一根只能發送正負信號的天線,向另一個機器人發送信號來使它移動的時候,這些邏輯門有限的功能就不夠看了。可笑的是,這些邏輯門并非是功能不強,只要有足夠的組合,這些小小的邏輯門能夠做到任何事情。但是這需要大量的思考。

讓這些簡單的邏輯門來完成復雜的編程讓我的大腦都快燒掉了。為了解決游戲中的難題,我兒時的腦袋,還不足以完成從這些簡單的邏輯門到復雜的控制系統的思維跳躍。為了讓你實現控制系統,游戲提供了把電路制成芯片的能力。下圖就是一塊芯片,用到了大量的或門,這是為了……,好吧,我不會再多看它們一眼了。

Inside a chip:Fun for the whole family!

Inside a chip:Fun for the whole family!

關鍵在于,這些簡單的邏輯門通過足夠的組合和設計,可以實現異常復雜的東西。這就是所謂的計算機編程了,使用原始的操作來實現非常復雜的架構。對于Foote來說,這個游戲的基本訴求和數學以及計算機科學的基本訴求是相同的:“這個世界是邏輯的,并且是由簡單的規則搭建起來的。通過如此簡單的規則可以實現如此復雜的世界。”

盡管游戲的續集從來沒有出現(原來的包裝盒上印著這個游戲是“Robot Odyssey I”),但是它還是贏得了各種獎項并且在《Scientific American》雜志上有一篇專門報導。這款游戲帶給了Wallace在蘋果粉絲團中極高的知名度,并且讓他得到一次在帕羅奧多研究中心做演講的機會,他隨后又繼續設計了一些電子玩具,包括“Nintendo Power Glove”,現在他擁有自己的公司“Pure Imagination”。Grimm一直待在Learning公司并開發了許多游戲,包括非常成功的“Reader Rabbit”,最近她正在開發供耳聾兒童使用的教育軟件。

“Robot Odyssey”絕對的復雜度使它成為了今天沙盒類游戲的精神鼻祖,比如說“Minecraft”。它可能導致了數百人從此成為了程序員,而且看起來這個數量還要更多。我在這里發起一個關于“Robot Odyssey”的挑戰:正在看這篇文章的讀者,誰第一個通關“Robot Odyssey”,并把游戲文件發送給我作為證明,將會獲得一個Learning公司“Robot Odyssey”通關證明的仿制品。只有第一個完成并且沒有查看攻略作弊的玩家才能夠得到哦!

提示:
1、如果你停止向導線通電流,那么機器人的推進器將會被關閉,然后機器人就會停止移動。

2、一個與門有兩個輸入端一個輸出端,如果兩個輸入端都為正,那么輸出就為正,否則沒有電流輸出。一個或門想要輸出電流,它的兩個輸入中至少有一個為正。一個異或門想要輸出電流,則它的兩個輸入必須只有一個為正,一個為負,當兩個輸入相同時,則沒有電流輸出。

3、這里有一個簡單的例子。如果你想要使機器人向上移動,則必須使機器人天線接收到正信號才行(也就是天線為正),當天線沒有接收到信號(也就是為負),機器人就向下移動。你把天線的輸出端連到UP推進器上,這樣當天線接收到正信號時,UP推進器被打開,反之亦然。你同樣可以把天線的輸出端連到DOWN推進器上,但是在前面再連一個非門,這樣就改變了天線的輸出。所以,當天線接收到正信號時,DOWN推進器就被關閉了,反之亦然。


網載 2015-06-06 09:48:38

[新一篇] 一個獨立程序員九個月工作生活的回顧

[舊一篇] 【手游】RTS大作《帝國遠征》視頻首曝
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表