newsence

Show HN:為了向孩子解釋我的工作,我用原生 JavaScript 寫了一個煉油廠模擬器

Hacker News·25 天前

我用原生 JavaScript 打造了一個煉油廠模擬遊戲,用來向我的孩子們解釋我的工作內容。

背景

這篇熱門討論源於一位在德州煉油廠擔任物流經理的化學工程師,為了向孩子與外行人解釋複雜的下游產業運作,利用業餘時間開發了一款名為「The Great Refinery Run」的瀏覽器遊戲。作者並非專業軟體開發者,而是透過與多種大型語言模型(LLM)協作,編寫出超過九千行原生 JavaScript 程式碼,將煉油流程轉化為一系列物理小遊戲。

社群觀點

這項專案在 Hacker News 社群引發了關於「AI 賦能非專業開發者」的熱烈討論。多數留言者對此表示讚賞,認為這是一個極佳的範例,展示了 LLM 如何降低軟體開發的門檻。社群成員指出,在 AI 出現之前,這類「堪用即可」的軟體若非花費鉅資聘請專業人士,就是得由非專業者投入數年的全職學習才能達成;如今,這類不需追求極致性能或大規模擴展、僅需滿足特定教學目標的應用,正因為 AI 的輔助而得以遍地開花。

在技術實作層面,作者分享了與 AI 協作的慘痛教訓,特別是當程式碼規模擴大後,直接讓模型重寫整個檔案會導致嚴重的程式碼截斷或幻覺問題,因此他改用類似「補丁檔案」的方式,強制模型僅輸出特定區塊的修改建議。社群中也有技術背景的讀者協助進行壓力測試,發現了特定瀏覽器(如 Firefox)的相容性問題,甚至有專業用戶指出,若作業系統開啟了「減少動態效果」的設定,會導致遊戲中的動畫瞬間完成而無法操作。這些技術回饋不僅幫助作者優化作品,也體現了開源社群互助的精神。

此外,不少留言者將此作品視為經典模擬遊戲《SimRefinery》的精神續作,認為這種透過互動式體驗傳遞產業知識的方式,比單純的文字說明更具吸引力。雖然有部分討論涉及是否應將此工具商業化作為企業培訓之用,但作者目前仍傾向於保持程式碼的透明度,讓對此感興趣的開發者能直接查看其原始碼。整體而言,社群達成了一種共識:儘管外界對 AI 存在負面疑慮,但這類低風險、高教育價值的應用,確實證明了 AI 能將不同領域的專業知識轉化為更有趣的學習工具。

延伸閱讀

  • SimRefinery:留言中提到的經典模擬遊戲,由 Maxis 公司於 1990 年代為雪佛龍(Chevron)公司開發的煉油廠模擬軟體。
  • Matter.js:作者在遊戲中用於處理 2D 物理碰撞與動態效果的 JavaScript 物理引擎。
https://fuelingcuriosity.com/game.html