70億人
| 70億人 | |||||||
| 原名 | 7 Billion Humans | ||||||
| 常用譯名 | 70億人 | ||||||
| 類型 | 解謎、編程 | ||||||
| 平台 | Microsoft Windows | ||||||
| 分級 |
| ||||||
| 開發 | Tomorrow Corporation | ||||||
| 發行 | Tomorrow Corporation | ||||||
| 製作人 | Kyle Gabler Kyle Gray Allan Blomquist | ||||||
| 模式 | 單人 | ||||||
| 發行時間 | Microsoft Windows、MacOS、Linux:2018年8月23日 Nintendo Switch:2018年10月25日 | ||||||
| 相關作品 | 前作:人力資源機器 | ||||||
《70億人》(英語:7 Billion Humans)是由Tomorrow Corporation開發並發行的一款可視化編程遊戲。2018年8月23日發布於Windows、MacOS、Linux平台,之後遊戲被移植至iOS、Android、Nintendo Switch等平台。
簡介
與前作人力資源機器一樣,玩家的任務仍然是編程移動小人解決任務。通常這些任務包括對一些帶有數據的方塊進行處理。不同於前作,本作中玩家將操作多個小人,而他們連走路都不會了!在遊戲中期解鎖「記憶體」(Memory)之前,小人的每一步都需要玩家使用「行走」(step)指令完成。本作終於引入了if語句,同時編程界面有所調整,看上去更像Scratch。但是,飽受詬病並大大提高遊戲難度的jump卻依然保留(for、while等循環語句並未引入),另外一方面遊戲後期又提供了「巡視」(forEachDir)這個功能受限的遍歷語法和小人之間的消息傳遞,使得本作的代碼風格獨樹一幟,介於彙編語言和高級語言之間,又摻入了移動角色等類似於Scratch的要素。
本作相較於前作有更多的關卡,許多關卡的BGM也是前作BGM的remix。
指令系統
本作存在下列指令。在程序開始時,所有角色都會執行相同的指令,但是由於每個小人周圍的環境和狀態不同,他們很快會分道揚鑣。
- 行走(step):朝周圍方向(上下左右、左上左下右上右下)行走一格。如果選中多個方向,則朝著隨機方向行走一格。也可以用「最接近的(nearest)」指令走到對應位置。
- 拿起(pickup):讓小人從自己所在的位置拿起一樣物品。如果這個位置為空,操作會被自動忽略。
- 取自(takefrom):可以從印表機取出物品,也可以取自己周圍地上的數字方塊,也可以截取周圍工人手裡的數字方塊。如果目標位置沒有數字方塊,這個操作會被忽略。
- 交給(giveto):將手裡的物品交給粉碎機或者其他工人,如果手裡沒有物品,交給其他工人的操作會被忽略。如果兩手空空交給粉碎機那麼就會自己跳進粉碎機把自己粉碎掉!
- 放下(drop):放下手裡的物品,如果這個位置有數字方塊/印表機/粉碎機,這個操作也會被忽略。
- 寫下(write):在數字方塊中寫下記憶體中的數值,可以超過0~99的範圍。
- 設置為(set):將一個對象存入記憶體,可以是數值(立即數,只能是0~99的整數),也可以是數字方塊、工人、粉碎機等物。
- 最接近的(nearest):自動將最接近這個小人的特定對象的位置存入記憶體,這個對象可以是洞、數字方塊、其他小人、粉碎機、印表機或者按鈕(按鈕僅在最後幾關出現,用於控制數字顯示器)。
- 計算(calc):在記憶體中進行數值運算,只有加減乘除運算,運算結果可以不局限於0~99允許算出很大的數,但是數字位數太多的話根本看不清,運算結果會需要存入記憶體。
- 告訴(tell):對特定工人說話,也可以對所有人說話。
- 聆聽(listen):等待聽到有人對自己說特定的話,再進行後面的操作,否則一直等待。
- 如果(if):用於條件判斷,多個判斷條件之間可以用「和」或「或」連接,類似於高級程序語言的and和or[1]
- 終止(end):小人接到終止指令後,本局遊戲的剩餘時間內不會再進行任何操作。
- 巡視(foreachdir[2]):讓小人掃描自己周圍8個格子的狀態(可以是空、粉碎機、印表機、其他小人、牆壁、洞、數字方塊連同其上的數字等),存入記憶體遍歷。
新元素
相比於前作,本作引入了不少新的遊戲元素:
小人操縱
本作中玩家將操作多個小人,編寫的程序將同步到所有小人,但他們的運行狀態相互獨立(也即多線程),也沒有「全局變量」之類的功能。不同於前作,小人的移動需要玩家編程。此外,小人之間可以傳遞數據方塊。
地圖結構
本作中不再有固定的輸入、輸出、存儲位置,遊戲的範圍擴展到了整個房間,畫面也更為卡通。
- 牆壁
- 普通地面(無/nothing):每一格都可以放置一個數據方塊。
- 印表機:綠色的盒子,上方總是有一個方塊,上面印有0~99的隨機數。可以使用「取自」(
takeFrom)指令取出一個方塊。每當取走一個方塊,印表機緊接著會再產生一個新方塊供下次取用。 - 粉碎機:紅色的盒子,上方是鋸齒狀的洞。可以使用「交給」(
giveTo)指令把手上的方塊送進粉碎機,該方塊立即被粉碎。 - 洞:無盡的深淵。走進它的小人會被連人帶方塊立即徹底銷毀。
- 殺手機器人(killbot):在某些關卡中出現,如果工人走到killbot的位置就會被刺死。
數據方塊隨機跳變
許多關卡中,擺放在地上的數據方塊的數據會一直隨機變化,直到程序開始執行才會停止變化。這種機制使得直接找出答案(例如求最大值時,直接一眼看出最大值的位置而不使用程序尋找)的策略完全不可行,也在一定程度上增加了難度。
記憶體
每個小人都有自己獨立的4個記憶體(mem1~4)。記憶體是弱類型的,即對於記憶體中的一個在地面上的數據方塊,「行走」至該記憶體和使用該記憶體參與數學表達式運算都是合法的指令。小人會自行尋路至記憶體中的數據方塊和機器,能避開牆壁和洞。
人際溝通
遊戲中後期會解鎖「告訴」(tell)和「聆聽」(listen)指令,玩家可以藉此在小人之間通訊。然而,玩家只能編寫一份程序,所以玩家需要把發送和接受兩個不同的程序整合。令程式設計師玩家不爽的是「聆聽」(listen)指令並不是一個回調事件,而是阻塞當前小人的進程,直至收到信息,這依然與通常的設計模式背道而馳。
遊戲提示
如果卡關,玩家可以從上司處獲得提示或暫時跳過關卡。最多可以跳過5個關卡,完成之前跳過的關卡後可以取回跳過的次數。
隨機測試
當玩家完成了一個關卡後,效率診斷界面會給出玩家程序的代碼行數以及通過25次隨機輸入數據的測試計算得到的平均用時,以柱狀圖的方式給出。在該界面中,綠色表示測試通過,紅色表示不通過。只有通過率達到50%以上才會視為成功通過關卡,否則會被定性為「缺乏魯棒性」。
由於測試的隨機因素,使用完全相同的解決方案通過同一個關卡兩次,平均用時可能會出現±1~2秒的差異。
官網給出了本作在封測階段,所有通過關卡(在隨機測試中通過率超過50%的程序才視為通過)的程序的用時/代碼行數的頻數分布直方圖(僅統計通過的解決方案,通過率低於50%的已經被剔除),具體可在 https://tomorrowcorporation.com/7billionhumansStats/ 查找到。遊戲效率診斷的挑戰目標就是根據上述的分布統計圖設計的,代碼行數和運行時間的挑戰目標的閾值大致在前10%分位數的位置。
劇情
本作的劇情承接前作。與前作一樣,本作的劇情集中於「咖啡時間」中。遊戲開場(第1年)的動畫中,所有的工作都被機器人取代,人們有了舒適的生活,但人們仍然要求工作,於是機器人創造了工作,也就是玩家操作的這些小人。
但是,從動畫中可以看出,此時的世界由機器人掌控,因此這些可能只是機器人的一面之詞。
黑色幽默/細思極恐
| 可能引起不適,謹慎點開 |
|---|
成就
本作的Steam版本有19個成就,現在此列出。
| 成就名稱 | 中文翻譯 | 說明 | 備註 |
|---|---|---|---|
| Career Milestone 1 | 生涯里程碑1 | 完成第1部分劇情。 | |
| Career Milestone 2 | 生涯里程碑2 | 完成第2部分劇情。 | |
| Career Milestone 3 | 生涯里程碑3 | 完成第3部分劇情。 | |
| Career Milestone 4 | 生涯里程碑4 | 完成第4部分劇情。 | |
| Career Milestone 5 | 生涯里程碑5 | 完成第5部分劇情。 | |
| Worker's Comp: Explosive Failure | 員工的賠償:爆炸性失敗 | 一名工人因為爆炸而不幸遇難(某些關卡中,如果使用了錯誤的粉碎機或者拿起了錯誤的數字方塊就會引發爆炸)。 | |
| Worker's Comp: Crushing it | 員工的賠償:碾壓 | 一名工人拿起一個器具(粉碎機、印表機)後被砸死。 | |
| Worker's Comp: Shredding it | 員工的賠償:粉碎 | 一名工人慘遭粉碎機粉碎。 | |
| Worker's Comp: Trust Exercise | 員工的賠償:信任危機 | 一名工人掉進了一個洞。 | |
| King of Verbosity | 冗長之王 | 通關使用的代碼行數超過「優化診斷」規定的4倍。 | 在前作中也有出現。 |
| Queen of Inefficency | 低效之王 | 通關的平均用時超過「優化診斷」規定的4倍。 | 在前作中也有出現。 |
| Glorious Failure: Solution not Robust | 偉大的失敗:解決方案不具魯棒性 | 在25次隨機測試中,解決方案的通過率低於50%。 | 在前作中也有出現。 |
| Worker's Comp: Shrieking Steel Blade | 員工的賠償:令人害怕的鋼刀 | 一名工人被殺手機器人(killbot)殺害。 | |
| Excellent Instruction Follower | 優秀的指令執行者 | 通過所有關卡 | 在前作中也有出現。 |
| Social Engineer | 社交工程師 | 在一個關卡中,傾聽每個工人的發言(滑鼠左鍵點擊場景中的工人,便會彈出發言)。 | 在前作中也有出現。 |
| Blue Optimization Award | 藍色優化獎勵 | 所有藍色關卡通過效率診斷。 | |
| Green Optimization Award | 綠色優化獎勵 | 所有綠色關卡通過效率診斷。 | |
| Red Optimization Award | 紅色優化獎勵 | 所有紅色關卡通過效率診斷。 | |
| Orange Optimization Award | 橙色優化獎勵 | 所有橙色關卡通過效率診斷。 |