[閒聊] 玩家發現了一條遊戲公司反覆使用了20年的

看板C_Chat作者 (情報屋)時間2年前 (2021/07/23 12:46), 編輯推噓87(88134)
留言123則, 104人參與, 2年前最新討論串1/1
玩家發現了一條遊戲公司反覆使用了20年的「祖傳程式碼」,出現在多個遊戲場景中 原文連結:https://www.techbang.com/posts/88570-game-code-20years https://images.plurk.com/1NW7VxMbwI0fEKpWha8Zc0.jpg
有句老話說的好:「要是你的程式碼還能用,就別去碰它。」一條沿用了20多年的「祖傳 程式碼」,讓V社(Valve Software)成了這句話最忠實的踐行者。 在Reddit論壇上,一名玩家最近偶然發現了《戰慄時空》系列裡的燈光閃爍頻率有種奇怪 的既視感: https://images.plurk.com/1rHTt62NSVQt3yhQAWpkrt.gif
注意到了嗎?23年前的初代《戰慄時空》裡的燈光,居然和2020年誕生的《戰慄時空:艾 莉克絲》有著同樣的閃爍頻率。 這名資深玩家立即意識到了事情的有趣之處,如果這不是什麼彩蛋(經過驗證後確實不是 ),那只能解釋為製作方的無心之舉,如果是無心之舉,那就意味著V社將一條放了20多年 的程式碼搬到了新遊戲上。 之後,有人發現了更戲劇的內容:這串程式碼不僅歷史悠久,甚至還見證了V社的遊戲歷史 。因為除了能在戰慄時空全系列中找到相同的燈光場景,在V社的另一個知名系列《傳送門 》裡,也有不少類似景象。 這名玩家順藤摸瓜,最後找到了這個場景的源頭——1996年發售的經典FPS遊戲《雷神之鎚 》。 https://images.plurk.com/5nrb5S064Y76xGiTp60ft3.gif
玩家發現了一條遊戲公司反覆使用了20年的「祖傳程式碼」,出現在多個遊戲場景中 從左上角開始,依次是《雷神之鎚》《戰慄時空》《戰慄時空2》和《傳送門》,將四個場 景放到一塊後,雖然發光的設備不同,但可以很明顯地看出它們維持著相同的閃爍頻率。 在仔細研究了戰慄時空已經開源的程式碼後,另一位玩家給出了相對合理的解釋。V社自初 代《戰慄時空》誕生以來,一直使用26個字母來表示燈光的明暗程度,字母「a」代表完全 熄滅,「Z」則表示最大亮度。 而在這些遊戲的源程式碼中,都能找到一條「mmamammmmmammamamaaamammma」的程式碼, 註釋也正好是「燈光閃爍」: https://images.plurk.com/1q8VzRl2sHiIMWBxcQms4G.jpg
玩家發現了一條遊戲公司反覆使用了20年的「祖傳程式碼」,出現在多個遊戲場景中 所以在這20年的開發歷史中,凡是涉及到需要「燈光閃爍」的場景,V社基本就是從原先的 程式碼資料庫中復製貼上,這才有了「祖傳程式碼」的說法,但真要細究,可能這段程式 碼也不能算在V社的頭上。 最早出現這個場景的是《雷神之鎚》,這是id Software的創始人約翰·卡馬克利用同名引 擎Quake製作的FPS遊戲,而隨後的初代《戰慄時空》也同樣基於該引擎的改良版開發而成 。 https://images.plurk.com/3JH80LQlNsguAE6Q5958DQ.jpg
▲ 初代《雷神之鎚》 當初編寫引擎的程序員隨手打下了一串負責場景的程式碼,之後便被V社原封不動照搬過去 ;並且即使到了《戰慄時空:艾莉克絲》,這個使用了不同引擎的遊戲時,一旦需要「燈 光閃爍」,製作組還是會下意識地複製前作的程式碼。 於是一代傳一代,最終造就了一段「祖傳程式碼」,這也正好印證了編程領域的一句名言 :永遠不要重複造輪子。 仔細想想,這也算是個製作組無意中留下的彩蛋了,發現這個秘密的玩家最後感慨道:「 現在當我看到這個不規則閃爍的燈光,我就好奇還能在多少遊戲中看到這個場景。」 原文連結:https://www.techbang.com/posts/88570-game-code-20years ======= 不知道為啥imgur上傳檔案一直出錯 只好先用噗浪 「要是你的程式碼還能用,就別去碰它。」<-身為一個工程師 我能告訴你這是真的 大多數工程師在寫程式都會有一個習慣 會先建一個library 然後一直從裡面拉function出來用 就像你有一張素材圖 你會在好幾個物件上面用它當材質 然後你可能會在別的物件上面放那個物件 你永遠不知道這個老程式改了之後出錯會有多少東西出問題 千萬不要去碰舊程式 頂多改改最末端的東西 要改寧願自己建新的備著用(ry -- https://i.imgur.com/cwNHMPB.png
https://i.imgur.com/JsjWVt9.png
https://i.imgur.com/E7YduYM.png
https://i.imgur.com/FprCNk0.png
https://i.imgur.com/SS2B6YF.png
https://i.imgur.com/NwfCs6o.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.132.75 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1627015561.A.AA8.html

07/23 12:47, 2年前 , 1F
有趣
07/23 12:47, 1F

07/23 12:47, 2年前 , 2F
簽名檔優質
07/23 12:47, 2F

07/23 12:47, 2年前 , 3F
太酷了吧
07/23 12:47, 3F

07/23 12:47, 2年前 , 4F
07/23 12:47, 4F

07/23 12:49, 2年前 , 5F
這就是oop的奧義
07/23 12:49, 5F

07/23 12:49, 2年前 , 6F
滿有趣的
07/23 12:49, 6F

07/23 12:49, 2年前 , 7F
有趣
07/23 12:49, 7F

07/23 12:49, 2年前 , 8F
高重用性的最佳實作
07/23 12:49, 8F

07/23 12:49, 2年前 , 9F
這也沒甚麼必要改吧
07/23 12:49, 9F

07/23 12:50, 2年前 , 10F
酷欸.jpg
07/23 12:50, 10F

07/23 12:50, 2年前 , 11F
就跟Lorem ipsum dolor sit amet一樣意思吧
07/23 12:50, 11F

07/23 12:51, 2年前 , 12F
業界總會有些經常拿來使用的東西
07/23 12:51, 12F

07/23 12:51, 2年前 , 13F
也才小東西而已 沒什麼好改的吧
07/23 12:51, 13F

07/23 12:52, 2年前 , 14F
你這篇文也反覆使用
07/23 12:52, 14F

07/23 12:52, 2年前 , 15F
公司內部素材?
07/23 12:52, 15F

07/23 12:52, 2年前 , 16F
為什麼我看那GIF好像有音樂==
07/23 12:52, 16F

07/23 12:52, 2年前 , 17F
op了 你這也是祖傳反覆使用嗎
07/23 12:52, 17F

07/23 12:53, 2年前 , 18F
!? 原來有人發了嗎
07/23 12:53, 18F

07/23 12:53, 2年前 , 19F
哇靠真的耶
07/23 12:53, 19F

07/23 12:53, 2年前 , 20F
能從燈光閃爍看出既視感也是滿厲害的
07/23 12:53, 20F

07/23 12:54, 2年前 , 21F
多一事不如少一事
07/23 12:54, 21F

07/23 12:54, 2年前 , 22F
舊程式還真的是不要動,動了出其他問題更麻煩
07/23 12:54, 22F

07/23 12:56, 2年前 , 23F
想到魔獸包包
07/23 12:56, 23F

07/23 12:56, 2年前 , 24F
蜀漢老麵嘛wwwww
07/23 12:56, 24F

07/23 12:57, 2年前 , 25F
07/23 12:57, 25F

07/23 12:57, 2年前 , 26F
魔獸16格包就是動了風水大變 被山寨魔獸超越==
07/23 12:57, 26F

07/23 12:59, 2年前 , 27F
這舊聞了吧
07/23 12:59, 27F

07/23 12:59, 2年前 , 28F
魔獸包包怎麼了?XD
07/23 12:59, 28F

07/23 12:59, 2年前 , 29F
這是真的 別沒事妄想重構(血淚
07/23 12:59, 29F

07/23 13:00, 2年前 , 30F
記得COD系列最早的引擎也是從Quake改的 不知道有沒有
07/23 13:00, 30F

07/23 13:00, 2年前 , 31F
類似的發現
07/23 13:00, 31F

07/23 13:01, 2年前 , 32F
代表當時寫得好 XD
07/23 13:01, 32F

07/23 13:01, 2年前 , 33F
輪子不要重新發明本來就是程設的基本概念吧
07/23 13:01, 33F

07/23 13:02, 2年前 , 34F
初代工程師寫到叫媽媽?
07/23 13:02, 34F

07/23 13:04, 2年前 , 35F
好酷ㄝ
07/23 13:04, 35F

07/23 13:04, 2年前 , 36F
魔獸原始16格包:後來版本可用包越來越大 有玩家問
07/23 13:04, 36F

07/23 13:04, 2年前 , 37F
16格包能加大或更換嗎? BZ一開始居然回:16格包寫
07/23 13:04, 37F

07/23 13:04, 2年前 , 38F
在包包系統最上面 貿然更動可能毀天滅地
07/23 13:04, 38F

07/23 13:05, 2年前 , 39F
其實算是 致敬、彩蛋 ? XDDDD
07/23 13:05, 39F
還有 44 則推文
07/23 14:26, 2年前 , 84F
新人工程師最常犯的錯誤:我覺得這邊應該要改掉
07/23 14:26, 84F

07/23 14:28, 2年前 , 85F
蜀漢老麵XDD
07/23 14:28, 85F

07/23 14:29, 2年前 , 86F
這麼大的專案很容易改一小段就整組壞掉
07/23 14:29, 86F

07/23 14:31, 2年前 , 87F
Half life到底要不要出三了
07/23 14:31, 87F

07/23 14:32, 2年前 , 88F
完全同意,老東西要嘛整個放棄要嘛死都不要改
07/23 14:32, 88F

07/23 14:32, 2年前 , 89F
沒測試,要refactor 老code 太危險,當然就盡量不要改
07/23 14:32, 89F

07/23 14:33, 2年前 , 90F
新人:這一行mmaamma是啥 老人:我是你就不會多問
07/23 14:33, 90F

07/23 14:34, 2年前 , 91F
你們的版控是裝飾品嗎 XD
07/23 14:34, 91F

07/23 14:37, 2年前 , 92F
可以用幹嘛改?不能用的時候再說
07/23 14:37, 92F

07/23 14:43, 2年前 , 93F
Legacy Code
07/23 14:43, 93F

07/23 14:45, 2年前 , 94F
很酷 XDDDD
07/23 14:45, 94F

07/23 14:48, 2年前 , 95F
俄羅斯也有一個當了20年的總統 還好啦
07/23 14:48, 95F

07/23 14:53, 2年前 , 96F
工程師:PM叫我複製貼上就好
07/23 14:53, 96F

07/23 14:57, 2年前 , 97F
到底有沒有人在看內文.. 這都能說因為太難?
07/23 14:57, 97F

07/23 15:04, 2年前 , 98F
System.out.println("Hello World!");
07/23 15:04, 98F

07/23 15:09, 2年前 , 99F
mmamammmmmammamamaaamammma
07/23 15:09, 99F

07/23 15:10, 2年前 , 100F
發現的肯定是鐵粉
07/23 15:10, 100F

07/23 15:10, 2年前 , 101F
我是不知道這難不難,但我聽過有遊戲刪了一張資料夾裡完
07/23 15:10, 101F

07/23 15:10, 2年前 , 102F
全沒關聯的圖片就會完全啟動不了的
07/23 15:10, 102F

07/23 15:11, 2年前 , 103F
名字都不用改呢
07/23 15:11, 103F

07/23 15:11, 2年前 , 104F
大驚小怪,除非要最佳化不然能跑的東西變error會哭
07/23 15:11, 104F

07/23 15:22, 2年前 , 105F
文組覺得不思議~不過閃燈QQ怕
07/23 15:22, 105F

07/23 15:44, 2年前 , 106F
imgur其實有大小跟時長限制
07/23 15:44, 106F

07/23 15:51, 2年前 , 107F
這就是legacy啊 只要不會出錯大家都會respect
07/23 15:51, 107F

07/23 15:51, 2年前 , 108F
誰敢在pull request上動這段保證被reject
07/23 15:51, 108F

07/23 15:55, 2年前 , 109F
稍微有點程式經驗的人都會這樣做事情。
07/23 15:55, 109F

07/23 16:07, 2年前 , 110F
推個
07/23 16:07, 110F

07/23 16:21, 2年前 , 111F
Ptt都不知道反覆用幾年了
07/23 16:21, 111F

07/23 16:44, 2年前 , 112F
發現這件事的人太酷了
07/23 16:44, 112F

07/23 16:55, 2年前 , 113F
OOP
07/23 16:55, 113F

07/23 18:06, 2年前 , 114F
雖然說沒什麼好改的,但是能用20年還原封不動也是很有..
07/23 18:06, 114F

07/23 18:06, 2年前 , 115F
.紀律
07/23 18:06, 115F

07/23 18:27, 2年前 , 116F
how to make flash light. google.copy.paste
07/23 18:27, 116F

07/23 18:51, 2年前 , 117F
蠻有趣
07/23 18:51, 117F

07/23 21:30, 2年前 , 118F
07/23 21:30, 118F

07/23 21:37, 2年前 , 119F
蠻好玩的
07/23 21:37, 119F

07/23 21:55, 2年前 , 120F
可以過卡馬克那關 應該是夠厲害了
07/23 21:55, 120F

07/24 03:38, 2年前 , 121F
XDDDD
07/24 03:38, 121F

07/24 11:35, 2年前 , 122F
一堆人在挖HL的彩蛋,畢竟不知道V社到底藏了多少
07/24 11:35, 122F

07/25 00:57, 2年前 , 123F
工程師結婚的時候送新娘的是他阿嬤給他的祖傳程式碼
07/25 00:57, 123F
文章代碼(AID): #1W-ac9ge (C_Chat)