每個程序員差不多都是從計算機愛好者開始的,尤其是那些令人心醉神迷的電腦游戲,不僅造就了整個游戲產業,推動了計算機行業軟硬件的升級,而且吸引了大量的愛好者最終加入了游戲軟件開發的行業。騰訊、網易、盛大、完美時空等公司的巨大現金流都來源于游戲產業。
我小時候玩過街機,魂斗羅、俄羅斯方塊、Quake、三角洲、Fifa、魔獸世界、魔獸爭霸等,可能會參與完美時空的游戲開發。現在的熱門游戲是王者榮耀、吃雞等等,我的興趣雖然已志不在此。
當然,我本人也非常喜歡玩游戲。我喜歡自由自在的游戲和需要腦力的游戲。比如,“GTA 系列”“老滾系列”和“三國志系列”。在玩游戲的過程中,我體會到各種各樣的樂趣,同時,作為開發者,我也會從專業的角度出發,思考這款游戲究竟是如何制作出來的。
我發現,喜歡玩游戲的人,都很有興趣自己做一款游戲。哪怕自己不懂編程,但是自己做做策劃,懂美術的話自己做做圖,能讓自己的游戲跑起來,就是一件幸福的事情。
我看過網上各式各樣的“傻瓜式”游戲開發工具,比如 RPG MAKER。任何不懂編程的人,只需要導入規定的模板,就能方便地開發出一款游戲。然而,這種方法只能開發某一類非常簡單的游戲。如果想要開發出一款真正意義上的游戲,還是要借助編程基礎和系統的開發知識。
我舉幾個簡單的例子,你就明白了。
1、在《守望先鋒》里,我們看到的子彈射擊,對方被擊傷,這些都是經過怎樣不斷地網絡優化實現的呢?還有各種網絡預判模型,你是否都了解呢?
2、我們玩的《星際爭霸》,究竟是每個線程控制一個兵種,還是一個線程刷新全部兵種畫面?
3、《魔獸世界》如此龐大,它是如何將海量邏輯寫在游戲客戶端里?將邏輯編寫成硬代碼顯然不理性,寫成配置文件又缺乏機動性,那它是怎么做到的呢?
4、另外,我發現,很多公司在開發游戲的時候,選擇引擎也是一個尷尬事。是自己研發一款引擎還是購買別家成熟的引擎呢?引擎的好壞,對開發的游戲來講有什么影響?很多人也是不知道的。
1、我將會盡量選擇簡潔的 Python 語言來編寫。我會從最上層的腳本語言 Python 的使用開始,剖析為什么游戲開發要從這里開始。在用到 C/C++ 代碼的地方,我將會盡可能地使用簡單易懂的語法來示范,所以,其實你只需要懂點兒英文就可以了(笑)。
2、我會盡量選擇簡單的開發工具,而不是動輒幾個 G 的開發工具。比如“VS 系列”,比如各種復雜的 IDE。簡單的開發工具足夠簡單明了地讓你了解開發的具體流程,快速進入狀態,而不是在設置工具上浪費大量的時間和精力。
3、我會盡量避免特別復雜的底層知識,但是也不會一帶而過。我會幫你一步步梳理開發的流程,并仔細剖析,在 C/C++ 中如何控制計算機的各種設備,操作計算機的各種硬件。或許你還會在編譯中遇到問題,我也會一步一步,由淺入深,教你如何解決編譯問題。
4、我將用制作“打飛機”游戲 demo 的過程,來完成游戲開發內容的分解步驟講解。之所以選擇“打飛機”作為游戲 demo,是因為它的開發過程幾乎涵蓋了我要講述的所有開發流程,包括操作、畫面的前后遮擋、圖像的碰撞和切換、資源包、腳本語言等等。
1、我會先帶你熟悉游戲開發的基礎概念。包括開發游戲需要涉及的基礎知識和需要準備的工具:游戲引擎、底層圖形接口和地圖編輯器。
2、然后從 0 開始搭建一個游戲窗體,往窗體里添加圖形、界面和操作。
3、我還會講解如何嵌入腳本語言。畢竟使用硬代碼編寫游戲邏輯并不是一個很好的選擇,而腳本語言的嵌入,可以讓我們很方便地完成游戲的邏輯開發。我們只需要將底層圖形圖像的顯示、函數等捆綁好,接下來交給腳本語言就好了。
4、除此之外,我還會闡述各種平臺上的游戲開發和實現,帶你學習一些最近熱點的游戲開發知識。比如 HTML5 游戲和手機移動平臺游戲。我們已經有了游戲開發的基本知識,也掌握了游戲開發的流程,再來看這些游戲的開發,就會變得很輕松了。