我們經常會看到這樣的話語:“XX遊戲是基于XX遊戲引擎制作的”。那麽,到底什麽是遊戲引擎?這篇文章來淺淺談一下我這個普通玩家對遊戲引擎的認識,使用通俗易懂的語言讓大家了解什麽是遊戲引擎(專業的東西我也不會),專業人士看到,如有錯誤請見諒。
首先,百度百科上對遊戲引擎的描述非常地專業,很多我也不了解。總結起來就是“遊戲引擎就和汽車引擎一樣,汽車引擎是汽車的核心,那麽遊戲引擎就是該款遊戲的核心”。
但我對此不這麽認爲。引擎,一般指汽車的發動機,我們常常會說“XX車是由XX引擎發動的”,汽車引擎是汽車的核心這沒有錯。但對于遊戲,我們一般不說“XX遊戲是用XX遊戲引擎來運行的”,而是說“XX遊戲是用XX遊戲引擎來制作的”。也就是說,“遊戲引擎”不是一個運行遊戲的程序,而是一個制作遊戲的程序。引擎是汽車必不可少的東西,但“遊戲引擎”不是制作遊戲必須的,最早的時候,制作遊戲是沒有“遊戲引擎”的。所以,遊戲引擎並不是一個遊戲的核心,一個遊戲的核心應該是這個遊戲的主程序和其代碼。遊戲和“遊戲引擎”的關系,類似于汽車和汽車工廠的關系。那麽爲什麽會被稱爲“遊戲引擎”而不是“遊戲制作軟件”呢?據說是因爲第一個制作出“遊戲引擎”的人喜歡汽車,所以給這個軟件起了一個“引擎”的名字,而這個稱呼也就沿用至今。
接下來說說引擎的誕生。
話說在很久很久以前,有一個遊戲制作者,通過寫代碼,花了七、八個月制作了一款遊戲橫版動作遊戲,之後他又要制作第二個遊戲,遊戲類型和第一款一樣,也是一款橫版動作遊戲。由于他很懶,不想再從零開始寫代碼,再花費數月的時間來制作這款遊戲。于是,他把第一款遊戲的代碼拿過來,在此基礎上進行了修改,更改了諸如人物模型、音樂、動作等等要素,只花費了一個月的時間就做出來一款看起來與第一款遊戲完全不同的新遊戲。後來,他發覺這個方法很不錯,于是把這些代碼打包起來,分享給了其他的遊戲制作者,一段時間後,其他的遊戲制作者們都用這個方法來制作遊戲了。慢慢的,這類代碼越來越多,于是出來了一個人,根據這些代碼的用途,將這些代碼分門別類,比如圖形的代碼放一起,動作的代碼放一起,音效的代碼放一起,然後分別打包,最後打一個大包,這個大包就是一個“遊戲引擎”了。
以上這段話是我編的,但這確確實實是“遊戲引擎”的起源。其實,“遊戲引擎”就是很多很多制作遊戲的代碼的集合。通過“遊戲引擎”來制作遊戲,就是將“遊戲引擎”裏已經存在的代碼拿出來,然後加以修改,有序的組合成一個遊戲程序。
目前世界公認的第一個制作出“遊戲引擎”的人是約翰·卡马克,1992年制作的。就是那個制作了《德軍總部3D》、《毀滅戰士》、《雷神之錘》的約翰·卡马克。《德军总部3D》就是第一個用遊戲引擎制作的遊戲。這個引擎的名字和遊戲同名。
當年約翰·卡马克在制作这款游戏时,他和之前的游戏制作者们不一样。其他人做游戏的时候,是先做游戏,中途看看需要什么代码,然后拿过来放进去。而约翰·卡马克在制作《德军总部3D》時,他不是先做遊戲,而是基于這款遊戲的類型,3D射擊遊戲,先把可能用到的、用不到的代碼全都寫出來,按類別做成一個框架。然後再開始制作遊戲,往這個框架裏面進行具體的設計和填充,然後制作出了世界上第一款3D射擊遊戲。這個框架就是一個“遊戲引擎”了。雖說之前別的制作者做遊戲也會用一些現成的代碼,但這些代碼並沒有形成系統框架,而約翰·卡马克第一次系统的构建了一个框架,所以认为他是第一个做出“游戏引擎”人。
通常來說,一個“遊戲引擎”至少會包含圖形渲染系統、物理系統、特效系統、音效系統等部分,有一些程序雖然也能做遊戲,但因爲功能局限,也不能稱之爲“引擎”。比如魔獸地圖編輯器,冰蛙用它做出了DOTA;又比如DOTA2地圖編輯器,巨鳥多多用它做出了DOTA自走棋。這些軟件制作出的遊戲都必須依附其他的遊戲爲主體,所以算不上“遊戲引擎”,不過的的確確擁有“遊戲引擎”的一部分功能。可以把它們看成是“用遊戲引擎做出來的遊戲引擎”。
近30年的時間,從第一款“遊戲引擎”誕生之初,如今有太多的“遊戲引擎”了。比如多用于制作3D大作的《寒霜》(戰地)、《虛幻》(彩虹6號)、《尖叫》(孤島危機)等“大引擎”,也有多用于制作手遊的《Cocos2d-x》、《Unity3D》,制作頁遊的《白鹭》等“小引擎”。其中有些只有開發公司自己使用的,比如《寒霜》。也有用于商用授權給別的開發公司使用的,比如《虛幻》。也有公開免費使用的,比如《Unity3D》。
如今的這些“引擎”,早已不是30年前“引擎”的樣子,已經大大可視化、具象化,呈現在制作者眼前的再也不是一長串的代碼。比如我想要在場景裏放棵樹,就可以在模型庫裏找棵樹放上去;比如我想要加個光影特效,就在特效庫裏找出來放上去,當然,這些都是“引擎”制作人提前寫代碼寫進去的,但代碼是如何寫的,就不是遊戲制作者們的事了。
總之,如今得利于“遊戲引擎”的強大功能,大大降低了遊戲制作者的門檻,甚至沒學過編程,從來沒寫過代碼的零基礎的人,只要熟練掌握了一款“遊戲引擎”,也能做出遊戲。這一方面有助于遊戲市場的多樣性,出現越來越多獨立遊戲制作者;另一方面,也讓粗制濫造的遊戲大大增多,比如steam上衆多的“庫存汙染”。
但不管如何,世界在進步,中國在進步,中國的遊戲市場也在進步,讓我們靜待將來吧。
我是小鴿子,望大家點贊、關注,會給大家帶來更多的遊戲資訊、雜談、攻略等等。
直接使用今日頭條APP上方的搜索框搜索“unity3d”,即可免費觀看頭條上的unity3D教程。