Web 程式設計師開始學習遊戲開發的第一步

我听不见發表於2024-05-10

注意:以下內容只是本人的分析總結,不直接構成指導意見,如果你也是 Web 開發者,也對遊戲開發有一點想要嘗試的意思,那麼可能會對你有點用

以前從來沒有計劃寫遊戲的我,過去一個月都在學習 Unity 引擎遊戲開發,按照官方教程走了一遍,在這裡簡單分享一下我在學習過程當中的部分總結

  • 遊戲通常是計算密集型應用,Web 通常是資料密集型應用
  • 通常所有的引擎 OR 框架都要圍繞一個應用的核心生命週期展開,對於遊戲來說是圖形渲染,也就是每一幀的渲染,對應到 Web 應用的 Request/Response 生命週期。
  • 遊戲引擎開發遊戲開發是兩件不同的事(造車與開車的區別),只有在效能,場景不符合要求的時候它們產生直接關聯(遊戲開發非常容易遇到效能問題),需要你對引擎進行改造,但是也可以對玩法進行調整進行繞過。很多用 Unity 引擎開發遊戲的大型公司都會單獨購買一份 Unity 的原始碼支援,然後對其進行定製化改造,不過對普通的開發者來說,就算你不會開發遊戲引擎也並不意味著你就沒有辦法開發出好的遊戲作品,因為遊戲創作的本質是藝術創作,引擎只是其中一個部分而已,美術,音樂,gameplay 也都非常重要,尤其是 gameplay 直接定成敗。這一點我認為是一開始就需要理解的。
  • 如果對遊戲引擎感興趣,涉及的相關知識可以在《遊戲引擎架構(第2版)》當中查閱,這是一本非常好的用於理解遊戲引擎構造的書

那麼如何開始第一步呢?

這個要看你的習慣,比如我喜歡看書,我通常會先去找一本業界口碑還行的書來照著做,這裡我選擇了 《Unity in Action》第三版,如果你喜歡影片的話,在這裡我建議不要看任何國內的影片,這些影片夾帶私貨比較嚴重,講不了幾句就讓你買課,我們本來就會寫 Web 程式,有程式設計基礎,所以看這種資訊密度低的影片會非常浪費時間,我的意思是應該直接從官方的 Learn Unity 開始,官方的教程做的非常貼心,甚至還考慮到新版本不相容會給出版本相容方案,生怕你學不會,看完再補充一點油管的內容應該沒有太大問題。

其他的引擎我還沒有試過,目前來說我使用 Unity 進行遊戲開發,遇到的一些知識點:

  1. 程式語言 C#,這個不是問題,因為我本來就熟悉一大堆程式語言,所以轉移到 C# 是一件非常快的事情,如果你熟悉 Java 的話也不是問題,除非你只會動態語言那麼可能需要拿出時間來學習,但是沒關係,C# 沒想象中那麼困難,而且是一門優雅的程式語言,值得一試
  2. Shader,我應該寫不到這玩意兒,需要寫的時候再研究
  3. Unity 引擎本體 知識熟悉程度,這個沒辦法快速解決,需要你透過一個一個的小專案來累計經驗值,主要是要學習 Unity 當中的一些領域知識,比如GameObject,Scene,Prefab,
  4. 遊戲領域,剛體碰撞檢測 ,物理模擬,Raycast,貼圖,3D 模型,瓦片地圖,精靈,動畫,等等等等,這一部分屬於所有遊戲領域內的知識,不管你用什麼遊戲引擎,或者你自己寫一個遊戲引擎都繞不開的內容,作為遊戲世界當中原始存在的東西
  5. 軟體工程學,這個就沒什麼好說了,和 Web 開發是通用的,比如設計模式,業務轉程式碼的抽象水平,重構能力等等等等
  6. 數學,目前在我已經快看完的這本書裡,涉及的也就是簡單的線性代數中的 dot product 和 cross product 判斷角色方向的內容,以及一個四元數鏡頭控制,因為像一些特別高深的數學知識比如物理模擬,都有 Unity 以元件方式提供,我不會涉及到很深入
  7. 畫素畫,好吧這個我還沒開始,為了給自己一點鼓勵我買了一份正版 Aseprite,畫了幾個小圖示練練手,不出意外我肯定會以畫素小遊戲作為我遊戲開發的主要方向

可以看出來遊戲開發真的不是一個簡單的事情,這個領域是一個為愛發電最多的地方,畢竟大家都喜歡打遊戲嘛,自然也就成為了最為內卷的地方,想要靠這個謀生也是最困難的。

en...暫時寫這麼多,想到什麼回來接著寫

相關文章