深圳 I/O

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
貢獻者:
NewVideoGameTopIcon.svg
萌娘百科誠邀您參與完善電子遊戲相關條目☆Kira~
快打開WindowsNSPSXbox,一起進入電子遊戲的世界吧!
歡迎正在閱讀這個條目的您協助編輯本條目。編輯前請閱讀Wiki入門條目編輯規範專題編輯指南,遊戲條目中請參考條目格式規範封面上傳指引,並查找相關資料。萌娘百科祝您在本站度過愉快的時光。
深圳 I/O
Zachtronics - ShenZhen IO.png
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.
Nuvola apps important blue.svg
以下內容含有劇透成分,可能影響觀賞作品興趣,請酌情閱讀
我在深圳有什麼成就?
工程師的故事並不像電影那麼精彩。

我沒有找到真愛,或拯救世界,或任何其他的建樹。
但我被帶到了這裡。
開始創造新事物。


也許是件好事,又或許是個災難。
無論未來如何,我對一件事情深信不疑。
我總能相信一件事:我真是個好工程師。


遊戲要素

概念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音樂提供了該遊戲的原聲帶:

QQ音樂原聲帶

雜談

Library moe 2.png
萌娘百科不是嚴肅的學術網站
萌娘百科條目中涉及專業術語和知識的內容僅供參考,不保證準確性和嚴謹性。萌娘百科對條目內可能錯誤的信息不承擔任何責任。如對條目內容有疑問,請到討論頁發起討論。

遊戲裡的代碼/電路 vs. 真實的嵌入式/彙編

展開以下內容含有大量乾貨,非計算機/嵌入式專業者謹慎閱讀
  • 遊戲中使用的晶片是基於10進位的,可以使用dgt指令直接設置某一位的值(0~9),而在真實的嵌入式晶片中,這種操作是使用位運算來實現的。
    • 在二進位下,若要像遊戲裡一樣表示±999範圍的整數,至少需要11位(10個數值位+1個符號位)。
  • 遊戲裡使用的指令系統雖然參考了x86彙編語言,但是存在一些高級語言的要素,這也在一定程度上降低了遊戲難度。
    • 例如使用+-能夠起到類似於if-else的功能,使用多個+-也能達到類似於複合語句的效果。
    • 前面帶有@的指令在程序運行期間只會執行一次。如果重新跳轉到這條指令以前,檢測到已經執行過這條指令,便會將其忽略不再執行。[4]
      • 然而絕大多數彙編語言(x86ARM64)並不支持定義這種執行且僅執行一次的語句,實現這樣的功能需要藉助一個標誌位表明是否已經執行過,這也會增加代碼的複雜性。
  • 遊戲裡的晶片對於溢出的處理與現實中的晶片存在區別,可能是為了簡化遊戲機制,而這也在一定程度上限制了玩家的創造力。
    • 真實的晶片在工作期間會有一系列狀態位用來描述運算結果是否為負、是否發生溢出、是否發生進位、是否出現除以零之類的問題,而這些設定在遊戲中並沒有體現;
    • 真實的晶片工作時若出現溢出,通常會遵循「保留低位,高位丟棄」的原則,同時會產生一個進位信號。用另一個晶片捕獲這個進位信號並進行一些處理可以實現位擴展(即:串聯多個晶片使得設備能夠處理更大範圍的數學運算操作)。
    • 而遊戲中的晶片存在±999範圍的封頂封底機制,並且對於溢出之類的情況會「自己消化」而不是拋出;同時運算結果發生上溢和下溢會得到999和-999而不是運算結果後三位的值,這使得這種位擴展操作難以在遊戲裡實現。
  • 遊戲有自己的時間單位,能夠使用slp指令進行等待,而所有指令執行的用時相較於1個時間單位皆可忽略不計。而在真實的晶片中,每種指令執行的時間不盡相同[5]。在實際的嵌入式開發中,指令執行的時間和開銷通常並不能忽略不計。
    • 在真實的彙編語言中,實現這樣的等待操作需要使用系統調用或者硬體定時器,代碼的實現會比遊戲裡單純一條slp指令複雜得多
  • 遊戲裡提供了一種丹佛計時器道具,能夠穩定的提供時鐘信號,將一天劃分為96刻(一刻是15分鐘),用0~95的索引值表示,每過15分鐘索引值增加1,到達95後回到0。這種設定很可能參考了中國古代的百刻制。
    • 百刻制最早出現在黃帝時代,並在清朝初期基本確定。這種計時方法是將一天分為100刻,每刻約14.4分鐘。這種劃分基於日晷和水鐘的測量。然而隨著明末歐洲天文學知識傳入,百刻制被調整為96刻制。
  • 遊戲裡的的電路布線不能銳角轉彎,只能直角轉彎(而且直角看上去像是兩個連續的135°鈍角轉彎)。這種機制和真實的印刷電路板布線是完全吻合的。
    • 在三次元的世界裡,印刷電路板的製作中,銳角轉彎和直角轉彎會導致信號反射和阻抗不連續,並且會產生寄生電容。對於電信號通訊而言,信號在銳角和直角處容易產生反射,影響信號的傳輸質量。
    • 市面上見到的絕大多數的印刷電路板中的布線如果需要轉彎,幾乎都是採用135°轉彎。這一標準不僅美觀(斜著的總是和斜著的平行,橫平豎直的布線也是要麼互相平行要麼互相垂直),而且能夠避免銳角轉彎的弊病,因此絕大多數EDA都採用這一標準。

(待補充)

劇情與現實

  • 在遊戲手冊中包含一頁《中華人民共和國簽證申請表》看上去一本正經
    • 其中的「中國廣東省深圳市羅湖區東環路44A號」是真實存在,且可在搜尋引擎中查閱到的地點,而且給出的結果就是「深圳龍騰科技有限公司」;
    • 裡面的「出生日期」一欄的2026年9月28日恰好呼應了遊戲第一版的發布日期是2016年9月28日,相隔不多不少剛好10年。
  • 遊戲的劇情雖然是虛構的,但是遊戲主界面顯示的天氣與氣溫信息和真實的,能夠在天氣網站中查閱到的深圳華強北當地天氣是吻合的,這也是遊戲的一大亮點。
  • 遊戲主界面中顯示的「上細下粗」的建築物在深圳華強北真實存在,這也是華強北最具代表性的建築。這棟建築是賽格大廈,也被稱作賽格電子市場[6]
  • 遊戲中有一個劇情(關卡)是「三明治製作機」——需要玩家設計電路組成一台三明治製作機,製作完畢後需要彈出一面美國國旗(在遊戲中通過電路的高電平信號控制)表示製作完畢。這種「美國國旗從中國制機器中彈出」的設定被認為是在一定程度上是在諷刺美國製造業空心化的問題。
    • 這種現象在2015年左右初現雛形,2015-2016年,美國製造業空心化的問題逐漸顯現,許多傳統製造業崗位流失到海外,尤其是中國(玩家初次打開遊戲時,主角的獨白也和這種現狀吻合)。這種現象引發了美國國內的廣泛討論和擔憂。
    • 2024年,時任美國總統拜登簽署了法案要求聯邦政府只能採購完全在美國製造的美國國旗;此前美國使用的星條旗多為中國製造[7],而這也讓遊戲的劇情變得極具諷刺性。


(待補充)

外部連結

Wikipedia-logo-v2.svg
維基百科
提示您

注釋

  1. 移至 數據手冊的開頭部分以電子郵件的形式介紹了他來到深圳求職的歷程。
  2. 移至 在某次更新中,橋接器的價格從1下調到0。
  3. 移至 在Steam的版本中有3個成就都和紙牌遊戲有關,需要玩家分別贏得1/10/100局紙牌遊戲才能獲得。
  4. 移至 這一機制是在遊戲的劇情裡引入的,並沒有在手冊裡提及。
  5. 移至 通常位運算和加減運算最快,乘法指令次之,除法指令和求餘運算較慢,平方根運算更慢。
  6. 移至 2024年資料。
  7. 移至 參考:http://news.china.com.cn/2024-08/02/content_117346555.shtml
0 人评价
0 人推荐
评论0
搜尋萌娘百科 (按"/"快速搜尋)
有新的未讀公告

阅读更多:深圳_I/O(http://zh.moegirl.tw/%E6%B7%B1%E5%9C%B3_I%2FO )
本文引自萌娘百科(http://zh.moegirl.tw ),文字内容默认使用《知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆》协议。