如何從零開始寫乙個簡單的遊戲引擎?

時間 2021-05-31 14:20:45

1樓:Xi Yang

你不可能只用D3D或者OpenGL,因為這只是圖形而已。遊戲引擎最起碼還有聲音、輸入裝置。實際上,通常還有網路、指令碼系統、物理系統。

以上只是乙個維度。另乙個麻煩的維度是內容建立。對於乙個正經的遊戲引擎,你不大可能把內容硬編碼在程式裡,通常都是作為資料讀進來。

而聲音、3D模型等等,在遊戲以外是分割開來的,在遊戲裡是有機關聯的。於是,你就需要構建乙個內容建立軟體,用來編輯、關聯遊戲內容。

這裡面最關鍵的就是:如何把這些東西整合在一起,而這需要實際經驗。所以,你最好先製作一些遊戲,才有足夠的經驗去抽象乙個引擎出來。

2樓:

有在寫乙個小遊戲引擎還是有點發言權的

推薦 《遊戲引擎架構》Milo Yip大神翻譯的如果所有的元件都是自己手寫,還是有一定難度的。但是其實難的地方都有庫。個人建議先用庫,把引擎搭建起來先。

然後想學習哪些部分就把那個庫乾掉,然後手寫。

OpenGL只有渲染所以還是用DX好些。當然,opengl方便移植到移動端。

我覺得Panda3D和pygame這種指令碼控制的遊戲引擎是乙個趨勢,所以還需要一些編譯器前端的知識。當然也可以用lua或者是Python。

遊戲引擎包括影象聲音資源管理物理等等系統…先占個坑,有電腦了再答。

3樓:

做乙個遊戲引擎,稍微想想就覺得挺複雜了,先羅列出幾個必須要做的模組:資源和檔案管理系統,遊戲主迴圈,輸入系統,渲染引擎,動畫系統,碰撞系統,遊戲性系統,若是想的再複雜一點,還得加入遊戲相關的除錯工具和效能剖析工具。

這樣一來,就很容易陷入過度設計的泥沼,在大三上學期時,我們做的XiHad專案(NextRPG/Xihad · GitHub)就遇到了這樣的問題,引擎的過度設計導致後續的開發時間被無限縮短,最終卻發現引擎中很多的功能實際上遊戲中卻用不到,真是令人哭笑不得。

由於題目中說的是實現乙個簡單的遊戲引擎,我給出的建議是:先用OpenGL或者DirectX製作乙個簡單的遊戲,再把遊戲中可復用的部分剝離出來,這就成了乙個簡單的遊戲引擎。

遊戲史上幾個最著名的遊戲引擎都是這樣做出來的,比如:Quake遊戲引擎是製作雷神之鎚的副產品,虛幻是製作戰爭機器的副產品,所以,我相信這種將遊戲引擎作為遊戲的副產品的經驗同樣適用於大型遊戲引擎的開發。

如何從零開始寫乙個簡單的作業系統?

後廠村村民甲 絕對的從零寫估計太難了,因為涉及的東西太多,光是bootloader細節就超級多,比如有些BootLoader的樣例中要用BIOS提供的指令去讀簡易的檔案系統,一般來說掌握這些的人,大概率比較熟悉os kernal了,除非閒得蛋疼,否則寫那玩意兒幹啥。所以,簡單的方法就是先借用乙個現成...

如何從零開始製作乙個遊戲?

茶多酚 你先把乙個遊戲做完,你就知道該怎麼做乙個遊戲了乙個暴論 遊戲 以及絕大多數軟體 本質上都是 知道螢幕上該顯示什麼,以及讓他顯示出來 只要你不涉及高深的演算法和通訊,以及精度過高的圖形學和優化這兩點都是相對容易理清的 你先理清楚,螢幕上該顯示什麼,螢幕上顯示的東西應該怎麼根據輸入而變化然後讓它...

如何從零開始手寫乙個tiny STL?

maxint 因某某原因不能用ndk的stl,手擼vector,string,type traits,alogorithm等,功能不完整,用到才實現。vector主要是參考cppreference的文件和vc的實現,支援allocator 因為需要用到自定義記憶體管理器 exception safe...