遊戲開發所說的引擎是什麼意思?


遊戲引擎是指一些已編寫好的可編輯電腦遊戲系統或者一些互動式實時圖像應用程序的核心組件。這些系統為遊戲設計者提供各種編寫遊戲所需的各種工具,其目的在於讓遊戲設計者能容易和快速地做出遊戲程式而不用由零開始。大部分都支持多種操作平台,如Linux、Mac OS X、微軟Windows。遊戲引擎包含以下系統:渲染引擎(即「渲染器」,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統、音效、腳本引擎、電腦動畫、人工智慧、網路引擎以及場景管理。


精神層面上講,能夠稱之為「引擎」的是聚集了一位或多位資深技術人員的全部心血,凝聚成型。

它沒有華麗的外表,往往幾個精簡得上升到哲學層次的頭文件就是第一次見到它的全部。

深入了解,你會發現井井有條的數據組織,精密得像來自未來的科技。粗略看來所有數據渾然一體,不分你我,仔細看下來,數據壓縮得十分巧妙,既最大化的利用的存儲空間,數據之間相互又有比較獨立的空間,防止出現BUG影響到其他數據。

各模塊之間的介面多而不繁,每個介面功能豐富,相互之間又不冗餘,長得很像但又各不相同,遠遠看去就像一支訓練有素的軍隊在嚴陣以待。

運行起來講究的是Runtime Zero Allocation,既沒有IO,也沒有內存分配,真正做到了純靜音。

數據流在運行起來就更加賞心悅目,沒有過度封裝,簡單直接,端到端不會超過5步,卻步步驚心,每一次運行跳轉粗看匪夷所思,仔細一想卻恍然大悟,如醍醐灌頂,大呼過癮。

再打開CPU Profiler一看,各個核之間的佔用率就如同一支訓練有素的老樂隊,各自嚴格按照自己的分工在穩定運轉,無論畫面是血肉橫飛還是風雨雷電,CPU佔用率依然穩定得像新生兒睡覺時的呼吸一樣均勻。

無論是什麼引擎,在它被授予名字的那一刻,它都能感受到他主人內心如萬馬奔騰般的吶喊:「還有誰!」


就是個開發工具。。。哪那麼玄乎啊。。

自己下個unity就明白了,免費的。


製作者的角度:

遊戲引擎,簡單點說就是工廠產線。

很多細節要麼自動化,要麼簡化,相比不用引擎,效率能成倍的提升,甚至可以身兼多職。

缺點也是有的,那就是產線固化,沒有的功能就是沒有,不能實現的就是不能實現。

玩家角度:

遊戲引擎,簡單點說就像是字面一樣,是個『引擎』

像汽車引擎一樣,V8,V10,V12,直接決定了遊戲的體驗。

並不是說V6就不如V12,但同等技術同等條件下,不考慮其他因素,V12肯定比V6的性能要好。

每個公司都有自己獨有的引擎,每個引擎都有自己的特色,但對於玩家來說,引擎不等於一切,畢竟還是看可玩性,拿虛幻4引擎去跟克勞塞維茨引擎比,也就能比個畫面效果了,畢竟兩個引擎所運行的都是截然不同的遊戲。


我覺得更有意義的問題是:為啥遊戲引擎都搞成了一整坨,全帶一套單根繼承體系,儼然二十年前MFC的風範,真是耦合的解不開嗎。

等幾年看唄,瀏覽器"內核"都有人拆,我就不信「引擎」沒人拆的開,軟體工程雖然玄學,基本道道還是存在的,再宣傳還能突破動量守恆不成。


專為製作遊戲而製作的代碼庫


遊戲引擎是供開發者開發遊戲使用的的工具,把遊戲中可能用到的效果、演算法封裝成便於使用的模塊,開發者使用的時候只需調用幾個介面就能實現「牛逼」的效果。遊戲引擎有細分了很多具體的小引擎如物理引擎、渲染引擎等等。例如物理引擎,其主要作用是幫助開發者模擬與真實世界類似的物理效果(重力、彈性、摩擦力、加速度),在種種的力的相互作用下,遊戲中物體的運動軌跡計算特別繁瑣,一般的開發人員難以把握。物理引擎的作用就是「大神們」把種種的力的相互作用都事先寫好了相應的代碼,我等『菜雞』只用給物體設置好初始狀態,物體接下來的運動交給物理引擎搞定就好。於是『菜雞』們紛紛站在了『大神』們的肩膀上。工作效率大大提高了,質量也好的不要不要的(前提選了個好的遊戲引擎)。


如同你要造房子不會想連磚頭鋼筋什麼都自己造一樣,你要做的就是利用已經有的部分去造房子。

遊戲開發也不會從最底層的細節造起,引擎就是已經做好的一系列基礎內容的集合體。一個引擎可以給不同的公司做不同的遊戲,可以免去部分底層重複勞動。


正好遊戲策劃一枚,來用最通俗的語言來講講引擎,

引擎就好比一個大禮包,或者一個裝滿樂高的盒子,盒子裡面有各種封裝好的控制項(這些就是一個遊戲的一些功能),比如光照,比如碰撞效果,比如粒子特效,比如動畫,動畫可能又分骨骼動畫和幀動畫。但是如果引擎沒有這些功能,程序員就得用代碼從零開始,一行行碼。引擎的作用就是直接讓程序員調用裡面的功能,用指令來調用,而不用自己寫。

當然,引擎裡面的美術,或者一些可視化的東西,都是組建好了,程序員才調用的,詳情可以百度一下cocos和u3d。

希望可以幫到你,周末愉快。


一個做遊戲的工具而已,遊戲之間總有一些東西是通用的,例如圖像顯示,場景搭建等等,把這些東西提取出來,做成一個工具,就叫做遊戲引擎


舉個例子,如果寫個打磚塊怎麼寫。

第一步就是分出三個部分:物理計算、圖形顯示、音效播放。

物理計算就是在內存里存儲擋板、小球、磚塊的位置,速度,角度,然後根據當前信息,不斷的計算下個時刻新的信息。中間要處理各種碰撞,毀滅等等事件。

圖形顯示就是根據內存里的信息(位置、角度等等),在屏幕上畫出人看到的效果。

音效播放就是根據當前發生的事件播放對應的聲音。

這三個部分最初是混合在一起的,寫個遊戲得自己同時完成全部。

物理引擎,音效引擎,渲染引擎的出現就是把這幾個部分給分離出去,搞成個工具包,讓開發者不用重複工作。

物理引擎比如box2d,是個2d平面內的物理引擎,它只管內存中的物理運算。

音效引擎比如wwise, fmod。

渲染引擎具體的不了解。

後來,遊戲開發逐漸形成了標準,是個人開發遊戲都會用到這些引擎,而且用法也八九不離十。於是就出現了把這些引擎整合在一起的集成開發環境。比如unity,unreal等等。

舉個例子,unity3d的聲效引擎是可選的:wwise,fmod;物理引擎默認是: Physx;渲染引擎不知道,似乎是自己的。

這種時候,用一個 「遊戲引擎」 來稱呼這種集成環境。


對directx的封裝。


軟體開發框架,你該聽說過吧?遊戲軟體開發框架就叫做遊戲引擎。

這兩個概念的關係用OOP術語來描述大致如下:

軟體開發框架是遊戲引擎的泛化,而遊戲引擎是軟體開發框架的一個特例。


看到這個問題裡面好多有意思的回答,哈哈哈


一般來說分為兩部分,給開發人員使用的工業開發程序界面(類似maya、3dmax)和給玩家的渲染核心(包括音視頻渲染等等)


這東西,親自去玩過一款後,自己才有體會,雖然用文字可以描述,但沒玩過的人很難理解。


推薦閱讀:

如果 GTA 的背景城市設定為天津,應該怎麼設計劇情或者任務?
為什麼傳統遊戲廠商對 iOS 和 Android 的熱情普遍不高且支持不足?
圍棋屆和星際界為什麼不戰一個十番棋?
守望先鋒(Overwatch)有哪些值得進一步改進和加入的內容?
如何評價錢贊企?

TAG:遊戲 | 遊戲開發 |