如何自己做一個好的遊戲引擎?需要哪些必備知識?

鄙人剛接觸,覺得一個遊戲引擎有幾個重點: 一是渲染器,能夠讀取圖片、紋理等資源給物體上色並顯示在顯示器上,優劣效率高低主要看fps的高低,開源的庫有opengl吧(插一句題外話,我用xcode碼代碼,osx10.9棄用了一大堆opengl中慣用的代碼,比如init什麼的,網上又找不到新的東西……)。 二是物理引擎,能模擬真實物理世界,效率的高低主要取決於物理碰撞檢測,主要的方法有網格法和四叉樹(八叉樹),開源庫有box2d。 剩下的好像只有音頻系統、場景資源管理了?以及把他們聯繫在一起的部分。 以上是我自己的想法,求指正求拓展求指引。


知乎常見問題

先搞清楚opengl是什麼再來考慮遊戲引擎的事情吧

不要一口吃成胖子,會爆掉的!


首先,你要做幾個好的遊戲,學會什麼是好的遊戲引擎

其次,一個好的遊戲引擎一個人是完不成的


我來做廣告,這個項目就是教你如何開發一個遊戲引擎的。

把整個Handmade Hero教學視頻進行中文翻譯,添加上字幕。這件事情意義大么,國內的字幕團隊會做這種事情么? - C++


簡單來說,建議看看UE4的源代碼吧,對於學習者來說,是個非常不錯的範本。


先回答題主的問題,一款遊戲引擎有幾個必不可缺的部分

1. 渲染部分,這部分包括渲染管線的管理,Shader,場景管理,顯而易見,這部分是基礎

2. 虛擬機,如果想實現跨平台特性,以及編輯過程中的腳本反射,熱調試等特性,內置一個虛擬機是必備的

3. 插件系統,一款好的引擎不僅在於提供了必備的功能,也在於「只提供」必備功能,比如像物理、聲音、網路這些模塊,其實是可以是以插件存在的,在實際做遊戲項目過程中,項目提出的各種古怪需求層出不窮,如果一開始沒有一套好的插件架構,很快引擎就會被項目拖死

4. 資源管理,這部分太重要了,也很容易被忽視,想實現跨平台,設備兼容性,資源更新,內存優化,多人協作,對於資源的管理是基礎

5. 配套工具,比如編輯器,調試器,效率分析工具等,從代碼量來說,這部分的工作量要大大超過核心部分,也是最體現引擎「品味」的部分。

然後以一位過來人的身份勸告題主,想做引擎最需要的是紮實的基礎,另外就是熟練使用其他優秀的引擎,有過豐富的項目經驗再動手,不然就是浪費時間


這個網站專門收集了遊戲開發優秀教學視頻,希望對你有幫助!

http://www.oxox.work/web/


推薦閱讀:

Unity5中如何寫出好的透明(Transparent)效果shader?
我該如何進入USC遊戲設計專業?
C# 多線程與OOP設計處理接線員?
為什麼CryEngine、Unreal這些行業頂級引擎,代碼寫得這麼亂?
大型3D遊戲是如何將地圖做得很大卻避免讀條的?

TAG:遊戲開發 | 遊戲引擎 | cocos2d | Unity遊戲引擎 |