游戲引擎是什么?
引擎是“軟件框架”(software framework)。游戲引擎就是專門為游戲開發(fā)而設計的軟件框架,提供游戲開發(fā)所需要的基礎功能。
軟件框架(Software framework),通常指的是為了實現(xiàn)某個業(yè)界標準或完成特定基本任務的軟件組件規(guī)范,也指為了實現(xiàn)某個軟件組件規(guī)范時,提供規(guī)范所要求之基礎功能的軟件產(chǎn)品。
框架的功能類似于基礎設施,與具體的軟件應用無關,但是提供并實現(xiàn)最為基礎的軟件架構和體系。軟件開發(fā)者通常依據(jù)特定的框架實現(xiàn)更為復雜的商業(yè)運用和業(yè)務邏輯。這樣的軟件應用可以在支持同一種框架的軟件系統(tǒng)中運行。
簡而言之,框架就是制定一套規(guī)范或者規(guī)則(思想),大家(程序員)在該規(guī)范或者規(guī)則(思想)下工作?;蛘哒f使用別人搭好的舞臺來做編劇和表演。
簡單來說,利用游戲引擎制作游戲省去了“重復造輪子”的工作,能夠極大方便游戲開發(fā)者。而且,由于游戲引擎通常擁有較大的使用者群體,所以相互交流很方便,相關的教學資源和素材資源也很豐富。
但是,使用游戲引擎勢必會受到游戲引擎的一些限制,引擎不提供的功能就實現(xiàn)不了。好在現(xiàn)有的商業(yè)游戲引擎都具有一定的開放性,比如Unity3D就允許用戶制作功能插件,極大擴展了游戲引擎的應用范圍。
在商業(yè)游戲引擎流行之前,游戲大廠其實早就在使用其專用引擎來開發(fā)游戲了,這些專用引擎通常專門針對某種游戲類型甚至特定某個游戲的開發(fā)而設計制作,不具備廣泛的應用性。當前的一些商業(yè)游戲引擎,其實就是這些專用引擎經(jīng)過一些改造而來。
用通俗的話來講,游戲引擎就像是現(xiàn)代工業(yè)生產(chǎn)中的工具和機器,提供了一些實用的功能給游戲制作者,否則,游戲制作者就需要自己“重新發(fā)明輪子”,要么徒手擼出一輛汽車,要么老老實實先擼出一堆起子扳手,再擼出機床,最后再開始造汽車。游戲引擎相當于給游戲制作者全套工具。只不過,有的引擎給的工具相對更傻瓜,有的引擎給的工具更基礎化。越傻瓜的工具越好用,但可控性可調(diào)性越低,越基礎的工具對使用者的要求越高,但自由性更大,也能產(chǎn)出更好的產(chǎn)品。所以,好的引擎一定在功能性和自由性上有很好的平衡。
當前比較流行的游戲引擎
當前比較流行的游戲引擎可以分成幾個類型。
首先是“全科型”游戲引擎。這類引擎功能完善,可以用來制作各種類型、各種規(guī)模的游戲,從一兩個人玩一玩的獨立游戲,到千萬級投資的AAA大作都能搞定。譬如Unity3D、UE(虛幻引擎)、Source(起源引擎)等等都屬于”全科型“。




第二類是“專科型”游戲引擎。這類引擎通常針對某一類游戲的制作功能非常完善且強大,對對于其他類型的游戲制作就不太支持了。但“??菩汀币嬖谄渖瞄L的領域還是很強大的。譬如Cocos(專門制作2D游戲)、RPG Maker(專門制作日式RPG游戲)都屬于此列。


第三類是“業(yè)余型”游戲引擎。這類引擎通常針對非游戲行業(yè)專業(yè)人員玩票使用,通常具備可視化編程功能以方便使用者。但這類引擎通常功能比較有限,有的甚至還比不上一些游戲提供的關卡設計器。這類引擎的優(yōu)勢是簡單易學,用來做點小玩意或者用來入門也是不錯的。
在這類游戲引擎中我要重點提一下Stencyl這款引擎,它和著名的幼兒編程軟件Scratch一樣都采用了“積木搭建式”可視化編程作為腳本編寫手段。
Scratch在幼兒編程入門方面很出名,國內(nèi)的“編程貓”之類都屬于“類Scratch”產(chǎn)品。
同時,Stencyl比Scratch更進一步,將這種編程方式做到了近乎專業(yè)的程度,如果耐心足夠的話,完全可以用Stencyl做出專業(yè)品質(zhì)的2D游戲。

最后一類當然就是“關卡編輯器”了,這類工具其實相當于該游戲開發(fā)所用引擎的超級簡化版,缺點當然是不能脫離游戲本身來使用。著名的Dota 1就是使用魔獸3的關卡編輯器來開發(fā)的。

如何選擇并使用游戲引擎
從通用性上考慮,Unity3D是目前適用范圍最廣的引擎,學會Unity3D基本上可以應對所有類型的制作需求,其個人版免費的策略也很適合初學者上手。
在掌握Unity3D的基礎上,針對具體項目,可以嘗試選擇針對性更強的游戲引擎。比如如果制作日式RPG就用RPG Maker,對游戲畫面效果有很大追求就用虛幻引擎。
但要注意的是,不同引擎的使用方法差異還是蠻大的,尤其對于初學者來說,轉(zhuǎn)換引擎的學習成本很高,因此不建議在初學階段頻繁轉(zhuǎn)換引擎。較好的做法是在吃透一個引擎,或者通過一個引擎吃透游戲制作流程之后,再酌情嘗試其他引擎。
目前網(wǎng)上有很多關于U3D和UE孰優(yōu)孰劣的論戰(zhàn),大多是些初學者在那里打嘴仗,建議大家遠離這類爭論,安心學習。