本篇文章更新時間:2026/02/08
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
為什麼有人在 2020s 仍堅持用 C 寫遊戲?從 Jonathan Whiting 的想法重新理解「簡單的力量」
編輯前言:這篇文章來自 Jonathan Whiting 的部落格 [Why I Write Games in C (yes, C)]。他是少見仍以「純 C」開發個人遊戲的創作者。讀完後,我深刻感受到他如何權衡可靠性、簡單度、工具鏈與長期維護,而這些其實也是許多獨立開發者會面對的問題。
核心觀點 (Key Takeaways)
- 對他而言,語言的「可靠性」與「長期可用性」遠比語法糖與功能華麗更重要。
- 他不是追求高寫實畫面,而是追求開發流程的流暢與控制感。
- C 雖然危險、古老,但它夠簡單、夠快,而且可在幾乎所有平台上生存。
深入解析
Whiting 在文章開頭坦言:「我是一隻奇怪的動物」。他知道在 2020 年代還堅持用 C 寫遊戲絕對算異類,但他的選擇並非懷舊,而是一系列務實考量。
他需要的不只是語言,而是一個能夠長期信任的工具鏈
幾個關鍵需求貫穿全文:可靠、可移植、跨平台、好維護。尤其是 Flash 的死亡,讓他深受「平台消失」之痛。他不想再花人生時間在移植舊作,他想把時間花在創作上。
他也明白自己不想受制於特定作業系統或廠商技術,因此語言要能夠十年後仍然存在、工具仍能運作。
在「想要」的層面上,他偏愛極簡、透明的語言設計
這段幾乎是全篇核心:
「我理想的語言是可以背下來,並且永遠不用查文件。」
對他來說,複雜的 API、語言特性、錯綜的物件導向階層,都只是認知負擔。開發遊戲本身就耗能,他不希望語言成為額外的心理消耗。
再加上他自承不是那種能在 compile 等待時間保持心流的人。編譯器越慢,他越容易跳到 Twitter 然後失去 5 分鐘以上。他要的是一個能「保持動能」的語言。
各種替代方案的評估
文章中他逐一檢視主流選項:
- C++:功能強但複雜,容易產生深層 bug,編譯慢。
- Java/C#:語言龐大、過度 OOP,不符合他的思維方式。
- Go:他很喜歡,但 stop-the-world GC 讓遊戲開發難以接受,遊戲相關 library 較弱。
- Web 技術(JS/Haxe):JS 太鬆散,web 環境變化太快;Haxe 有潛力但太年輕讓他不放心。
甚至他也想過自己寫語言,但很務實地說:「我想做遊戲,不想做語言。」
為什麼最後還是 C
他用一段很到位的比喻:
「C 是一把非常鋒利的刀,可以切到手指,也可以切好蔬菜。」
C 的優勢在於:
- 簡單到可以掌握全貌
- 編譯極快
- 可移植到幾乎任何平台
- 工具鏈成熟而可靠
對他來說,這些優點剛好對應了他在心理負擔與創作節奏上的需求。即使 C 已經是 50 年的語言,它的生態與穩定度也是他無法捨棄的理由。
筆者心得與啟發
讀完 Whiting 的理由,我感受到他的選擇並不是技術狂熱,而是極度務實的開發哲學。他想要創作,而不是和語言搏鬥。他要的是可控、透明、能一直用到未來的工具。
這讓我想到,很多時候我們追新語言、追框架、追「更優雅的語法」,結果反而讓自己的心智負擔變大、開發節奏變慢。Whiting 的例子提醒我:工具應該服務創作,而不是成為創作的主角。
如果你是獨立開發者,可能不會像他一樣選 C,但他的思路值得參考:找到一個能長期信任、心智負擔低的技術組合,才是創意工作最重要的基石。
