深圳 I/O | |
Steam 封面 | |
原名 | ShenZhen I/O |
官方譯名 | 深圳 I/O |
類型 | 解謎、編程 |
平台 | Windows, Linux, macOS |
開發 | Zachtronics |
發行 | Zachtronics |
設計師 | Zach Barth |
音樂 | Matthew S. Burns |
模式 | 單人遊戲 |
發行時間 | 2016-11-17 |
相關作品 | TIS-100 |
《深圳 I/O》是一款解謎類電子遊戲,同時也是一款編程遊戲。它由 Zachtronics為運行Microsoft Windows、Linux和macOS作業系統的個人電腦開發。這款遊戲最初於2016年9月在Steam發布了搶先體驗遊戲版本,2016年11月發行正式版。
基本介紹
“ | BUILD CIRCUITS. WRITE CODE. RTFM. | ” |
正如遊戲發布者的描述,遊戲玩法的核心就是構建電路、編寫代碼和閱讀手冊。
遊戲的背景設定在中國深圳,玩家將會扮演一名來到深圳華強北的工程師,他在經人介紹[1]後,來到一家名為「深圳龍騰科技有限公司」的企業工作,從事產品的設計與開發工作。
遊戲中使用與現實中的嵌入式硬體相似的元器件(比如可編程晶片、存儲器、蜂鳴器、數碼顯示屏、指示燈具等),遊戲中出現的代碼需要在晶片中編寫,用於驅動晶片工作。代碼結構和Intel 8086的彙編語言類似,但是也融入了一些高級語言的特徵,因此可算作一種類彙編語言。
開發/更新歷史
日期 | 更新版本號 | 主要變化 |
---|---|---|
2016-09-?? | v1.0 | 推出遊戲原型,並在Steam中以「搶先體驗遊戲」發布。 |
2016-10-17 | v1.1 | 加入了蜂鳴器(FM Blaster)道具,允許玩家在早期的關卡中提前使用後期關卡才會用到的元器件,只是會在設計界面顯示「不推薦使用」。 |
2016-10-25 | v1.2 | 加入了擁有更多內存單元的內存部件、優化了液晶屏元件,同時為期加入了觸屏機制。 |
2016-10-25 | v1.3 | 引入了數學協處理器(能夠計算四則運算、平方根、冪運算和求餘運算等)、七段數碼管以及一些受到用戶啟發的全新謎題。 |
2020-04-22 | - | 開發者為遊戲內置的數據手冊提供紙質版,作為一種商品在電商平台lulu中發售。 |
故事背景
“ | I became an engineer because I wanted to make things. But after I graduated, the reality of the world caught up with me. That's not just something we do in this country. Not anymore. It took me a while, but eventually I realized it was true: I'd have to go somewhere else. |
” |
“ | 我在深圳有什麼成就? 工程師的故事並不像電影那麼精彩。 我沒有找到真愛,或拯救世界,或任何其他的建樹。 也許是件好事,又或許是個災難。 無論未來如何,我對一件事情深信不疑。 我總能相信一件事:我真是個好工程師。 |
” |
遊戲要素
概念Mail和概念CAD
遊戲的主線,包括遊戲的劇情而且還有(虛構的)廣告和關卡。設計電路和編寫代碼的工作在概念CAD中完成。遊戲最開始的電路非常簡單,但是隨著劇情的發展,需要用到的元器件會越來越多,代碼和電路布線也會越來越複雜。在每個關卡中,面板上會有一個白色線條圍成的封閉圖形,代表這台設備的面板(或者說是設備的外殼)。玩家擺放的元器件不能超出這個邊界,這也在一定程度上考驗玩家對空間的利用與規劃能力。
遊戲的關卡會用橙色感嘆號表示,通過關卡後變為一個對鉤,解鎖後續的關卡。關卡同樣是伴隨著劇情設計的,每個關卡內也會出現員工的交談。關卡通過後,遊戲會展示三組統計圖表,展示了全體通過該關卡的玩家的電路設計在成本、耗電量和代碼行數三個方面的分佈情況以及玩家本人在其中的位置。
遊戲的主線總共有31個關卡,對於Steam上的版本,全部通過後會得到一個「Employee of the month」(月度最佳員工)的成就(一個月恰好是31天)。
概念Mail中有一個特殊的劇情是「為新創意建模」,左側的標誌是一個橙色的齒輪,這部分劇情允許玩家自定義一個電路設備,相當於一個沙盒,這是很多其他遊戲中都有的設定。
輸入輸出埠
遊戲裡的輸入輸出埠分為簡單I/O埠(晶片中用p0,p1表示)和XBus埠(晶片中用x0,x1,x2,x3表示)。前者用於傳輸0~100範圍內的整數電平信號,後者傳輸的是一系列不連續的數據包,每個數據包的範圍是±999範圍內的整數。
邏輯運算
遊戲中存在和數字電路類似的邏輯運算機制以及相應的邏輯門元件,這些元件的工作機制和現實中的數字電路類似。邏輯門使用簡單I/O埠進行輸入輸出,數值大於或等於50的信號被視為邏輯真,否則視為邏輯假。
元器件
遊戲中提供的元器件種類上與現實中的嵌入式設備設計類似,其中某些元件僅可在沙盒模式中放置,不會再概念Spec或者概念Mail中出現。每一個元器件的寬度和高度都是按照遊戲界面劃定好的網格設定的,元器件的擺放也必須按照遊戲面板上劃定的網格擺放,除筆記以外,其他的元器件不能疊加放置。
名稱 | 佔用寬度(格) | 佔用高度(格) | 功能 | 價格 | 備註 |
---|---|---|---|---|---|
筆記 | 3 | 2 | 可以放置在遊戲面板中,用於編寫注釋增加電路圖或代碼的可讀性 | 0 | 唯一一個允許超出白色邊界,或者疊放在其他元器件上面的物件。 |
橋接器 | 1 | 3 | 當兩根布線需要交叉但是不想讓它們導通時,就需要切斷豎向的布線連接在橋接器的兩端,跨過橫向的布線,橋接器也因此得名。 | 0[2] | 佔用3格高度,中間的一格可以有布線經過,但是這個位置不能放置高度1格的元件。 |
MC4000 | 3 | 2 | 經典的可編程晶片,可通過在晶片中編寫代碼控制晶片的工作與輸入輸出。擁有兩個簡單I/O接口p0,p1、兩個XBus接口x0,x1以及一個acc寄存器。該晶片最多隻能容納9行代碼,任何數學運算操作都會直接作用在acc上從而改變acc的值。 | 3 | - |
MC4000X | 3 | 2 | 和MC4000類似,但是所有的四個接口全為XBus接口,用x0~x3表示。 | 3 | - |
MC6000 | 3 | 3 | 相較於MC4000,增加了兩個XBus引腳以及一個額外的dat寄存器,這對於需要循環的場合很有幫助。最多容納14行代碼,任何數學運算操作都會直接作用在acc上從而改變acc的值。 | 5 | - |
DX300 | 2 | 3 | 遊戲中稱作「數字I/O拓展器」,擁有3個XBus接口。可將通過XBus接口傳入的數字按照三位十進位數上的每一位轉化為三個高電平(100)或者低電平(100)的簡單I/O信號。 | 1 | - |
100P-14 | 3 | 2 | 隨機存取存儲器(RAM),擁有14個內存單元,每個單元可以存放一個±999範圍的整數。可以通過元件上 XBus 接口 a0 和 a1 地址引腳讀取和寫入內存指針。指針指向的內存值可以通過 XBus 的 d0 和 d1 數據引腳讀取和寫入。從數據引腳讀取或寫入數值後,對應的內存指針值將自動增長為下一個內存位置的對應值。 | 2 | - |
100P-33 | 3 | 3 | 和100P-14類似,是擁有33個內存單元的RAM,埠和使用方式和100P-14相同,但是額外多了兩個棄用(沒有標記,不會提供輸出信號)的引腳。 | 4 | 不會在概念Spec和概念Mail的謎題中出現,只能在沙盒中使用。 |
200P-14 | 3 | 2 | 只讀存儲器(ROM),規格和100P-14類似,相較於100P-14的唯一區別是隻能進行讀取操作,不能進行寫入操作。 | 2 | - |
200P-33 | 3 | 3 | 規格和100P-33類似,同樣只能進行讀取不可進行寫入。 | 4 | 不能在概念Spec和概念Mail的謎題中出現,只能在沙盒中使用。 |
LC70G04 | 2 | 1 | 邏輯電路的非門 | 1 | |
LC70G08 | 2 | 2 | 邏輯電路的與門 | 1 | 擁有一個正常輸出和反向輸出。 |
LC70G32 | 2 | 2 | 邏輯電路的或門 | 1 | 擁有一個正常輸出和反向輸出。 |
LC70G86 | 2 | 2 | 邏輯電路的異或門 | 1 | 擁有一個正常輸出和反向輸出。 |
PGA33X6 | 3 | 3 | (待補充) | 5 | (待補充) |
MC4010 | 2 | 2 | 數學協處理器,能夠計算四則運算、求餘運算、平方根運算(會四捨五入到整數)等。 | 5 | |
?????? | 2 | 2 | 遊戲中沒有說明,從功能上看是一個隨機數生成器,會生成0~100的隨機整數。 | 2 | 不能在概念Spec和概念Mail的謎題中自行放置(某些關卡中會在面板中預置,預置的器件不會計入成本,不可將其移出),只能在沙盒中使用。 |
LX700 | 7 | 5 | 經典的七段數碼管顯示器,擁有兩個XBus接口在左右兩側。顯示範圍是±199範圍內的整數。 | 4 | 不能在概念Spec和概念Mail的謎題中自行放置(某些關卡中會在面板中預置,預置的器件不會計入成本,不可將其移出),只能在沙盒中使用。 |
LX910C | 7 | 8 | 液晶顯示器,顯示的內容和樣式可以由玩家自行定製。 | 8 | 不會在概念Spec和概念Mail的謎題中出現,只能在沙盒中使用。 |
(待補充)
概念Spec
“ | Create and share your own puzzles! | ” |
玩家可在概念Spec中將創建的原型電路上傳至Steam工坊,創建自定義的謎題,也可以查看其他玩家上傳的UGC。是供玩家相互交流和分享創造力的場所。盜版的遊戲沒有這個要素。
數據手冊
不同於絕大多數的編程遊戲,《深圳I/O》的開發者並沒有在遊戲中包含玩家引導,而是選擇了在遊戲中內置一本豐富且有幫助的PDF版用戶手冊,用戶手冊有中英文版本。
絕大多數有關元器件規格或者如何編寫代碼的問題均可通過查閱手冊解決。
紙牌遊戲
在劇情「玩一下遊戲吧」中解鎖,通常稱為深圳紙牌[3]。
遊戲的玩法類似於Windows作業系統的《空當接龍》遊戲類似,是一副40張牌的紙牌,分別包含麻將的餅條萬的1~9點,稱為數字牌;4張紅中、4張發財和4張白板,稱為特殊牌;還有一個花牌。
遊戲的移牌操作與《空當接龍》類似,餅條萬三種牌必須按照點數順序接龍,且相鄰兩張牌需要花色不同;但是紅中、發財和白板不能參與接龍,只能移動到空位。在四個相同的花牌都沒有被其他牌壓著,且左上方的存牌區域存在空位的情況下可以將特殊牌回收,儘早回收特殊牌有助於玩家贏得紙牌遊戲。將特殊牌回收,三種數字牌按照1~9的順序堆疊在上方的回收區,並將花牌放在上方的用於放置花牌的空位即可贏得遊戲,遊戲界面左下角會記錄玩家累計贏得遊戲的次數。紙牌遊戲沒有撤銷功能,這也在一定程度上增加了難度。
再後來,開發者將紙牌遊戲單獨抽出來作為一個獨立的遊戲《深圳紙牌》(Shenzhen Solitaire)在遊戲中發售。在Steam的介紹頁還貼心的提示玩家如果已經購買了《深圳 I/O》,只需通過前幾個謎題就能在遊戲內解鎖紙牌遊戲,沒必要再去購買《深圳紙牌》。
謎題檔案
相當於其他遊戲中的隱藏關卡。
可通過主界面的控制面板選項打開,打開控制面板在「謎題檔案」依次點擊「0451」解鎖,該謎題的名稱是「深圳I/O宣傳片」,可算做遊戲的一個彩蛋。通過該謎題可在Steam中解鎖一個「Secret Puzzle」成就。
獲獎
該作在2018年的獨立遊戲節獲得了「精彩設計」獎項提名。
遊戲原聲帶
QQ音樂提供了該遊戲的原聲帶:
雜談
遊戲裡的代碼/電路 vs. 真實的嵌入式/彙編
展開以下內容含有大量乾貨 |
---|
劇情與現實
- 在遊戲手冊中包含一頁《中華人民共和國簽證申請表》看上去一本正經:
- 其中的「中國廣東省深圳市羅湖區東環路44A號」是真實存在,且可在搜尋引擎中查閱到的地點,而且給出的結果就是「深圳龍騰科技有限公司」;
- 裡面的「出生日期」一欄的2026年9月28日恰好呼應了遊戲第一版的發布日期是2016年9月28日,相隔不多不少剛好10年。
- 遊戲的劇情雖然是虛構的,但是遊戲主界面顯示的天氣與氣溫信息和真實的,能夠在天氣網站中查閱到的深圳華強北當地天氣是吻合的,這也是遊戲的一大亮點。
- 遊戲主界面中顯示的「上細下粗」的建築物在深圳華強北真實存在,這也是華強北最具代表性的建築。這棟建築是賽格大廈,也被稱作賽格電子市場[6]。
- 遊戲中有一個劇情(關卡)是「三明治製作機」——需要玩家設計電路組成一台三明治製作機,製作完畢後需要彈出一面美國國旗(在遊戲中通過電路的高電平信號控制)表示製作完畢。這種「美國國旗從中國制機器中彈出」的設定被認為是在一定程度上是在諷刺美國製造業空心化的問題。
- 這種現象在2015年左右初現雛形,2015-2016年,美國製造業空心化的問題逐漸顯現,許多傳統製造業崗位流失到海外,尤其是中國(玩家初次打開遊戲時,主角的獨白也和這種現狀吻合)。這種現象引發了美國國內的廣泛討論和擔憂。
- 2024年,時任美國總統拜登簽署了法案要求聯邦政府只能採購完全在美國製造的美國國旗;此前美國使用的星條旗多為中國製造[7],而這也讓遊戲的劇情變得極具諷刺性。
(待補充)
外部連結
- (英文)遊戲官網
- (英文)Steam上的SHENZHEN I/O
- (英文)lulu上的《深圳I/O》數據手冊
- (英文)Matthew S. Burns創作的遊戲配樂