科技愛好者週刊(第 168 期):遊戲《底特律:變人》

阮一峰發表於2021-07-23

這裡記錄每週值得分享的科技內容,週五釋出。

本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦科技內容。

週刊討論區的帖子《誰在招人?》,提供大量程式設計師就業資訊,歡迎訪問或釋出工作/實習崗位。

封面圖

東京奧運村的運動員宿舍,兩人一間。看上去有點簡陋,沒有為每個人配一張桌子,只有床頭櫃,上面也沒有吉祥物或者綠植。(via

本週話題:遊戲《底特律:變人》

本週談談遊戲。去年雙十一,我抱著巨大的期望,買了熱門遊戲《死亡擱淺》(Death Streading)。付款時,看見很多老遊戲都是二折,隨手又挑了一部《底特律:變人》(Detroit: Become Human)。

如今,我必須說《死亡擱淺》真是太糟糕了,令人大失所望,情節、人物、遊戲玩法一無是處,根本玩不下去。我斷斷續續堅持了幾個月,現在已經放棄了。倒是《底特律:變人》出乎意料的精彩,我給它滿分,真的是一部傑作。

《底特律:變人》是2018年的遊戲,可能很多朋友都已經玩過了。如果你還沒有,我強烈推薦。下面是它的預告片,大家可以感受一下它精良的製作,以及蕩氣迴腸的情節。

它的故事非常老套。2038年的底特律,機器人突然有了意識,希望得到人類的平等對待。玩家輪流扮演三個不同的機器人,經歷他們的遭遇。這個遊戲精彩的地方是電影大片級別的製作水準,每個場景都非常漂亮,每個片段都經過精心設計,明顯有分鏡頭劇本,每個鏡頭拍什麼,都是安排好的,剪輯得非常明快,扣人心絃。

出人意料的是,所有主要人物都不是計算機生成的。而是由真實演員扮演。下圖是遊戲的女主角和她的真人演員。

遊戲畫面其實是真人表演,進行動作和表情捕捉,再新增背景,最終生成的。

它是一個情節類的遊戲,動作和解密的成分非常少。故事的每一個節點,都會給出幾個選項,讓玩家選擇下一步,比如下圖是選擇要去哪個地點,不同的選擇會導致不同的結局。

與其說這是一個遊戲,不如說是一部可以玩的電影,長達10個小時。玩家探索這個未知的世界,認識裡面的人物,決定故事的走向,體驗預設的情節。

更棒的是,這個遊戲不僅有情節,還很抒情,有時候,不經意之間我就被打動了。舉例來說,走過廣場的時候,你會看到一個吉他歌手在路邊唱歌。那只是一個環境人物,你完全可以忽略他,徑直走過。但是,如果你停下腳步,站在一旁把這首歌聽完,就會發現這是一首非常好聽的歌。

我特意去查了歌的名字,叫做《城市的雨》,是遊戲開發公司向一個加拿大歌手購買的,下面就是遊戲裡面的唱歌影片,以及歌詞。

I wake up in my house, Alone in my bed. Six am is screaming.
清晨六點,我獨自醒來。
Back to this again. I do it with my eyes closed,
閉著眼睛,又回到那時。
Wear marks in the cement.
彷彿戴著水泥的面罩,
How the hell am I supposed, To wash you from my head.
我該怎麼做,才能不再想你。

Motown Rain, Fall on me again, Around my feet.
城市的雨又落下,就在我的腳邊。
Stuck on your doorstep, Hallway light, Trace your silhouette.
徘徊在你的門口,屋裡的燈光,尋找你的身影。
Motown Rain, Fall on me again.
城市的雨又落下。

大多數遊戲追求勝利的快感,但是《底特律:變人》的遊戲目的,是讓你去體驗他人的命運,思考自己的立場。推動你玩下去的動力是你的好奇心,想要體驗更多,想要知道後面的情節、人物的結局。我通關已經一個多月了,但有時還是會想到這個故事,沉浸其中。

這個遊戲是一個最好的例子,說明了 電子遊戲這種東西,不僅僅是娛樂和生意,而是一個很寬泛的載體,只要你想,就有辦法讓它承載各種不同的東西。 完全可以讓它像小說一樣,用來表達作者的愛憎和抒情,或者像哲學家一樣,引發人們對社會和命運的思索。

這種另類的、不以競技和對抗為目的的遊戲,真的很少。如果你知道這樣的遊戲,歡迎留言。

Webpack vs Vite 剖析

Webpack 是老牌的前端構建工具,目前依然是正式專案的標配,屬於前端程式設計師必須掌握的技能。但是,由於複雜的配置檔案和緩慢的構建速度,它一直被人詬病。

Vite 是新一代的構建工具,由 Vue 官方團隊推出,這一年快速躥升,許多專案都開始嘗試。它強調快速的構建速度和易用性,正好都是 Webpack 的痛點。

本週的課程資料就是 《Webpack vs Vite 深度剖析》,從原理的角度比較這兩種工具。幫助初學者掌握下面幾個關鍵概念,從而理解構建工具到底是什麼,上面兩種工具的區別從何而來。

  • 抽象語法樹 AST
  • Babel 的作用
  • 什麼是模組的依賴關係
  • ES Module 與 CMD 兩種模組格式的區別
  • 不同模組如何打包在一起

明白了上面這些概念以後,主講老師會指導大家,自己實現一個迷你版的 Webpack,體驗一下構建工具的底層實現。在這個基礎上,比較 Webpack 和 Vite 兩者的異同。

微信掃描下方的二維碼,瞭解詳細資訊。報名後,新增助教老師的微信,就可以領取這份資料。

這份資料由國內著名的培訓機構"開課吧"提供。另外,他們現在每週都有直播公開課,屬於體驗課程,可以隨意選聽。下面是本月的課程安排,詳細內容諮詢助教老師。

科技動態

1、

去年11月,長沙市望城區正式啟用"電子告知單",對於違法佔用消防車道的車輛,會貼上臉盆大小的"電子告知單"。

這個裝置的吸力可達到300公斤以上,會牢牢吸附在車輛表面,自己根本拿不下來。只有當車主將車輛駛離現場,並接受相應處罰後,才可以取下來。

2、時速600公里的磁浮列車

7月20日,四方機車公司在青島釋出世界首輛時速600公里的磁懸浮列車。一旦投入應用,這將是當前世界速度最快的地面交通工具,北京到上海僅需2.5小時。

磁懸浮列車的最大困難,在於造價大大高於高鐵,以及與現有軌道不相容,需要重新建設,很可能是全程高架。另外,由於速度太快,路線必須儘量保持直線,選線難度也很大。

3、

Chromium 瀏覽器宣佈,將把 HTTPS 協議的鎖標誌,改成一箇中性的箭頭(下圖),以防使用者看到"鎖"以後,誤認為該網站是經過認證的可靠網站。

實際上,HTTPS 協議只能保障資訊傳輸是安全的,並不能保證網站本身是可靠的。

4、

7月5日,墨西哥鑽井平臺發生天然氣洩漏,出現"水中大火"的奇景。經過5個小時的奮戰,大火被撲滅,沒有人員傷亡。

大家看看現場的30秒影片,真是奇觀。

5、遠端駕駛服務

一家美國創業公司近日在拉斯維加斯,推出"遠端駕駛服務"。它不採用無人駕駛,而是由真人駕駛員在家中透過攝像頭駕駛,控制訊號會透過 5G 傳送到車上。

顧客在網上叫車以後,計程車就由遠端駕駛員開到預約位置去接客。客人上車以後,必須自己接手駕駛,開到目的地。客人下車後,再由遠端駕駛員接手,去接下一個顧客。

6、如何防止轎車泡水

《今日頭條》報導,鄭州本週開始下暴雨時,老李新買的賓士轎車還停在小區路邊。他擔心新車被水泡,但沒有地方移車,到處都是水。

無奈之下,他花1200塊錢買了8條工程車的大型內胎,用繩索綁在賓士車的四個車輪上,再用氣泵為內胎打足氣,並用鋼絲繩拴在路邊的樹上。

一天的大雨停後發現,他的車是小區裡唯一沒有被水泡的。

7、

美國《體育畫報》雜誌報導,美國職業棒球選手普遍在棒球上塗抹特殊膠水,使得投手投出的球,旋轉速度更快,更難被正確擊打。這屬於作弊,是一種醜聞。

8、禁止車輛左轉

美國一所大學的交通工程教授發現,所有交通事故的40%發生在十字路口,其中61%的事故原因是車輛的左轉。左轉需要跨過整個路口,必須穿過對向的車輛,往往造成了交通擁堵和事故隱患。

他因此建議,大城市可以考慮禁止十字路口的車輛左轉。這樣可以大大提高交通效率,加快行車速度,減少交通事故。

禁止左轉的唯一缺點是行駛距離變長,因為禁止左轉以後,必須用三個右轉代替。

文章

1、砂紙的砂粒是怎麼做上去的?(中文)

砂紙是木工的必備工具,它是怎麼生產出來的?上面的砂粒怎麼會均勻吸附到砂紙上呢?

2、中國西北地區的乾旱原因(中文)

一個科普演講,主講人是中國科學院大氣物理研究所的副研究員,分析中國西北地區為什麼這麼幹旱,如果把喜馬拉雅山脈炸開一個口子,會不會改變這種狀況。

其中提到一點,大家覺得延安很乾旱,其實那裡跟北京的降雨量差不多。

3、一行 CSS 程式碼實現全站中文簡繁轉換(中文)

CSS 命令 font-variant-east-asian: traditional;,可以讓網站字型從簡體變成繁體。

4、PostgreSQL 資料庫的變化捕獲和實時通知(中文)

資料庫發生變化時,如何通知前端網頁?本文以 PostgreSQL 資料庫為例,介紹了作者的解決方案,使用了伺服器端事件。(@kaifeiji 投稿)

5、頁尾的變化(英文)

網頁的頁尾往往可以反映網站的成長。這篇文章總結了幾個案例,看看它們的頁尾怎麼變化,上圖是一個網站剛成立時的頁尾,下圖是該站五年後月收入達到17萬美元時的頁尾。

6、避免使用可變長陣列(英文)

C 語言有一種語法,叫做可變長陣列(VLA),陣列的長度不在編譯時確定,而在執行時確定。本文解釋它有什麼問題,為什麼應該避免使用。

7、Netflix Prize 挑戰賽十五週年回顧(英文)

2006年,Netflix 為了改進推薦演算法,發起了一項演算法比賽,任何人只要能夠擊敗基準演算法,就能獲得 100 萬美元獎金。

這是世界第一場大資料的演算法比賽,世界各地的許多研究人員、學生、業餘數學家和電腦科學家都參與了。本文在多年後,評論這個比賽的意義。

8、自己實現 nodemon(英文)

nodemon 是一個 Node.js 工具,只要發現原始碼檔案有變動,就會自動重新啟動服務。本文教你怎麼自己寫一個 nodemon。

工具

1、Difftastic

一個命令列工具,可以根據不同語言的程式碼,對 diff 結果進行不同的高亮顯示。

2、SCImago Graphica

一個桌面軟體,可以選擇各種指標,定製資料視覺化圖形,完全不用寫一行程式碼。

3、iPod.js

一個 JS 應用程式,生成一個網頁的音樂播放器,操作介面類似 iPod,可以連結使用者的 Spotify 或 Apple Music 賬戶。

4、Noice

一款開源的安卓 App,提供各種環境聲,比如下雨打雷。

5、WiFi Card

一個網頁工具,使用 WIFI 的名稱和密碼,生成一個二維碼,手機掃一下,就能登陸這個無線網路。(@dllen 投稿)

6、KubeSphere

一個國產的 Kubernetes 叢集管理平臺,操作容器的利器,功能強大,介面清爽易用,大大方便了 k8s 的使用。(@FeynmanZhou 投稿)

7、CORNERSTONE

一個企業級的專案管理和協作平臺,整合了工作臺、看板、思維導圖、專案文件、儀表盤、檔案等多種功能,還可以接入程式碼構建與交付,20人以下的團隊免費。(@cornerstone-365 投稿)

8、kit

一個 PHP 小工具,用來列出 MySQL 資料庫的表結構資訊。(@cuishuang 投稿)

9、Yozora

一個高度可擴充套件的、外掛式的 Markdown 解析器,用於生成 Markdown AST(抽象語法樹),可以在它的基礎上,定製自己的 Markdown 解析器。(@guanghechen 投稿)

10、Bash 命令列提示符生成器

一個網頁工具,以視覺化方式,透過拖拉不同的元素,自動生成 Bash 的命令列提示符。

資源

1、谷歌 API 設計指南

谷歌官方文件,講解谷歌的 API 設計規範。

2、2020年中國網際網路網路安全報告

7月20日,國家計算機網路應急中心釋出的年度報告,介紹我國網路安全情況,披露一些安全事件,可以免費下載。

3、自己動手寫一個簡單的資料庫

一份英語教程,教大家從頭開始,用 C 語言寫一個類似 sqlite 的資料庫,理解資料庫的實現原理。

4、程式設計音樂

這個網站提供幾十組精心選擇的程式設計背景音樂。

圖片

1、印度的殺人大象

2019年10月29日,一頭35歲的雄性大象在夜晚襲擊了印度東北部的阿薩姆邦的一個村莊,損毀了大量財物,還殺死了5名村民。

當地政府展開了一場大規模搜尋行動,在它逃亡兩週後,終於在11月11日抓到了它。抓捕人員發射了2個麻醉飛鏢,將它麻醉。

這頭大象被五花大綁,用起重器吊起來,轉移到一處國家公園。

但是,11月17日清晨,這頭大象突然死亡。獸醫表示,死因很可能是大象受太大刺激和高度緊張,此外大象在被抓期間可能也已受傷。

2、直布羅陀機場

直布羅陀是英國的一個海外領地,只是一個小半島,面積僅為 6.8 平方公里。

這麼小的地方,卻有一個機場。由於土地面積太小,跑道只好建到海里,而且還要穿過一條公路。直布羅陀機場是世界唯一一個跑道穿過公路的機場。

沒有航班時,公路供車輛通行。

等到有航班時,公路暫時關閉。

文摘

1、做完你的專案

如果要為 UNIX 哲學新增一個原則,我認為應該是:

"做完你的專案。"

這是我能想到的最簡單、但最被忽視的軟體工程準則。

大多數軟體其實都沒有真正完成,作者只是做出了基本功能,然後就釋出了。很多軟體後來不做了,也不是因為做完了,而是作者放棄了。

讓我們把程式設計師比作木匠。你買了一把椅子,因為覺得它能滿足你的需求。可是買來以後,每隔幾天,木匠就會出現在你的家裡,對椅子進行修改。有些變動是你想要的,有些你無所謂,還有一些變動只會讓你心生反感。甚至有時候,木匠還會出錯,比如木頭上伸出了一些尖刺,使椅子不再可用。

你買的是椅子,而不是某種千變萬化的傢俱,沒人喜歡每天會變的椅子。

程式設計師也是如此,應該對軟體有一個總體規劃,讓它有一個完整的基本功能。雖然以後可以進行維護、錯誤修復和安全補丁,但基本功能應該從始至終都是完整清晰的。

你不能說,因為出現了新情況,所以需要不斷改變或完善它的功能。 如果一個軟體一直在加功能,它就太大了,超出了你應該做的東西。你試圖製造一個超出合理範圍的東西,你需要畫一下功能圖,將過大的軟體拆分成幾個功能完整且合理的小軟體。

總之,做完你的專案再發布。使用者拿到的,應該是一個基本上做完的專案。

2、中等收入陷阱:韓國和巴西

中等收入陷阱是一個經濟學術語,指一個國家跨過低收入以後,由於種種原因,失去了發展動力,好像落入了陷阱一樣。

請看下面這張圖,韓國(紅線)和巴西(綠線)人均 GDP 的變化趨勢。

可以看到,直到上個世紀80年代,韓國和巴西的發展水平差不多。但是從那以後,韓國快速發展,已經接近高收入國家了,但是巴西停滯不前,收入水平沒有太大變化。

巴西就是落入了"中等收入陷阱",一直是中等收入水平,無法增長。

經濟學家認為,低收入到中等收入相對容易,只要加大投資,培訓民眾成為熟練勞動力,從農業和手工業轉移到工業和服務業,就可以實現。但是,中等收入到高收入就很難,需要變成知識創新國家,能夠創造高附加值的產品。

言論

1、

比起琴棋書畫的培訓班,國家應該培訓家長必須學會心肺復甦,學校裡也要教育孩子學會心肺復甦。讓身邊的每一個人都成為有能力能救助別人的人,作為升職加薪子女入學的必需品。

-- 今日頭條讀者,評論一個醫生在鄭州地鐵5號線做6小時心肺復甦,救了十幾個人。

2、

亞馬遜公司有一項規定,如果要開會,必須先有會議文件,沒有文件,就取消會議。

會議開始後,所有人先花幾分鐘看文件,然後再開始討論文件列出的問題。

-- 《亞馬遜的文件文化》

3、

PC 遊戲裡面的文字大小,這幾年變得如此之小,以至於沒法在電視機上玩,因為在正常觀看距離下,幾乎無法在電視螢幕上閱讀這些文字。遊戲的開發人員大概都是在離大型顯示器幾英寸的地方開發遊戲,而沒有考慮到很多人會在電視機上玩遊戲。

-- Hacker News 讀者

4、

2014年,我離開公司,休息了一年去旅行。結果是我喪失了一大筆收入,並且最終發現自己喜歡編碼,而不太喜歡旅行。

在我們的文化中,旅行被過度美化了。

-- Hacker News 讀者

5、

加州想建一條從洛杉磯到舊金山的高速鐵路,已經幾十年了。在加州的官僚機構和政治體系中,投入了數十億美元,結果什麼都沒有發生。各種方案、討論、爭吵、稅收,白白花了數十億美元,什麼都沒有造出來。我們甚至已經失去了建造火車站的能力。

-- 馬克·安德森,美國風險投資家

歷史上的本週

2020年(第 117 期):我不想讓你記住我的臉

2019年(第 65 期):週刊開設"誰在招人"的招聘服務

2018年(第 14 期):馬斯克的人生才是夢想家的人生

訂閱

這個週刊每週五發布,同步更新在阮一峰的網路日誌微信公眾號

微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。

(完)

相關文章