主流游戏引擎
該分享僅供參考,目的是提升大家對游戲引擎方面的一些認知。文檔中部分內容收集于互聯網,若有內容不準確,還請告知。
關于本文PPT文檔:github
一、介紹
游戲引擎是指一些已編寫好的可編輯電腦游戲系統或者一些互交式實時圖像應用程序的核心組件。這些系統為游戲設計者提供各種編寫游戲所需的各種工具,其目的在于讓游戲設計者能容易和快速地做出游戲程序而不用由零開始。大部分都支持多種操作系統平臺,如Linux、Mac OS X、微軟Windows。游戲引擎包含以下系統:渲染引擎(即“渲染器”,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統、音效、腳本引擎、電腦動畫、人工智能、網絡引擎以及場景管理。
先簡單介紹一下游戲的運行環境:PC端(win & mac)、手機端(iOS & Android & WP & BlackBerry )、PlayStation(索尼的PS1、2、3、4)、Xbox(微軟的Xbox、Xbox 360、Xbox One)、Switch(任天堂)、VR設備 等。
PC端 和 手機端 分為 客戶端 和 網頁端,即分為端游 和 頁游。
按大類型可以分類 :端游(pc端、PS、Xbox、Switch按引擎支持歸為一類)、手游(手機端)、頁游(pc端頁游、手機端頁游)。
比較知名的游戲研發廠商: EA(ElectronicArts)、維望迪Vivendi、育碧(UBISOFT)、任天堂(NINTENDO)、索尼娛樂(SCE)、柯樂美(KONAMI)、卡普空(CAPCOM)、史克威爾艾尼克斯( SQUARE ENIX)、世嘉(SEGA)、萬代 南夢宮(BANDAI NAMCO)等。
EA(ElectronicArts)游戲業界的航空母艦,是世界上最大的游戲設計商。旗下EA Games ,EA Sports ,EA.com。知名游戲品牌: EA Sports的《極品飛車》系列,FIFA系列,NBA系列等等。EA Games的指環王系列,中土之戰系列,榮譽勛章系列,命令與征服系列等等。
維望迪Vivendi旗下公司:Blizzard(早期,后來被贖回)、~~ValveSoftware,~~SIERRA,ACTIVTSION。知名游戲品牌:SIERRA的《半條命》《反恐精英》《指環王-魔戒之戰》《家園》等等。Blizzard的《魔獸爭霸》《星際爭霸》《暗黑破壞神》《魔獸世界》《守望先鋒》等等。
Valve Software:《半條命2》《CS:GO》等等。
育碧(UBISOFT):旗下公司 Gameloft等。知名游戲品牌:《分裂細胞》《波斯王子》系列。
卡普空(CAPCOM):《生化危機》系列,《鬼泣》系列,《街頭霸王》系列,大量最經典的橫版街機過關游戲。
史克威爾艾尼克斯( SQUARE ENIX):《FF》全系列,《DQ》系列等等RP。
柯樂美(KONAMI):《勝利十一人》系列,《寂靜嶺》系列,《惡魔城》系列等。
拳頭(Riot):代表作品《英雄聯盟》。(騰訊2015年12月全資收購)
國內的端游研發商有點拿不出手,能提一下的是 網易、騰訊、西山居、完美世界、盛大、世紀天成、巨人等。
在端游里面 ,3A是對游戲質量的一個最高評價了,很多國外的大作被稱呼為3A游戲。我們看一下維基百科的描述:
An AAA game (usually pronounced "triple A game") is an informal classification used for video games with the highest development budgets and levels of promotion. AAA game development is associated with high economic risk, with high levels of sales required to obtain profitability.
二、端游引擎
**Unreal (虛幻引擎)**代表作:《絕地求生》、《戰爭機器》系列,《質量效應》系列,《榮譽勛章》系列,《GTA 5》俠盜飛車 ,《星際爭霸Ⅱ》
CryEngine(尖叫引擎)?代表作:《孤島危機》系列
Source(起源)?代表作:《CS》系列、《Dota 2》
BigWorld?代表作:《坦克世界》、國內各種仙俠游戲 (網傳2015年10月停止授權,但是沒有官方聲明)
**Frostbite Engine(寒霜引擎)**代表作:《上古卷軸》系列、《戰地》系列、 《極品飛車16/18》
Gamebryo、 Creation?代表作:《極品飛車》系列、《輻射》系列、《穿越火線》
IW Engine?代表作:《使命召喚》系列 Havok 物理引擎,很多3A游戲以及好萊塢大片都用了該物理引擎,隨便提下《血源詛咒》
自研?比如 暴雪的《守望先鋒》就是自研引擎 、比如拳頭的《英雄聯盟》用的也是自研引擎
U3D?暫無3A級大作,《爐石傳說》,因為跨平臺的緣故吧。
三、頁游引擎
網頁游戲 又稱Web游戲,無端網游,簡稱頁游。是基于Web瀏覽器的網絡在線多人互動游戲,無需下載客戶端,不存在機器配置不夠的問題,最重要的是關閉或者切換極其方便,尤其適合上班族。其中網頁游戲又分為PC端網頁游戲 和 手機端網頁游戲。PC端網頁游戲發展較早,相對較為成熟。手機端網頁游戲,隨著移動設備的性能的提升,也開始出現在舞臺上。
PC網頁游戲從2007年開始流行起來,鼎盛時期大致在2013-2014年左右,然后大幅度衰落。PC網頁游戲的流行得益于 Adobe 公司的 Flash,其網頁端多媒體交互插件 Flash Player在瀏覽器的高占有率 促使了頁游的快速發展。 當然也因為喬布斯的一句話作為導火線,iOS不再支持Flash Player,導致了其衰退的開啟,今年Adobe也宣布了2020年停止Flash Player的支持。 這里不得不提一下微軟的銀光,微軟也是看到了Flash Player 的成功,推出了銀光,可惜沒有搶占到多少市場,無疾而終。另外再提一下Unity Webplayer ,也就是U3D的 網頁播放插件,也沒有足夠的占有率,不慍不火。(目前也已經放棄更新和支持了)
PC端網頁游戲開發基本上沒有引擎,要不依賴于Flash提供的API自我封裝實現引擎,要不依賴于U3D的API自我封裝,沒有出現業界認可的引擎。只是出現了一些比較好用的框架 比如Flash的 starling渲染框架 、 DragonBones骨骼框架、 TweenLite動作框架等,稱不上是引擎。《偷菜》、《農場》、《彈彈堂》、《七雄爭霸》、《虞美人》、《大天使之劍》、《賽爾號》、各類傳奇、日漫iP頁游。。。總有一款你玩過。也一度出現了很多小游戲平臺3366 、4399 、7k7k 、騰訊頁游平臺等。不過現在也是衰落不堪,前幾年年終老板給程序員送寶馬等新聞就是上述小游戲平臺,可見當時是賺足了腰包。
手機頁游相對單純,目前也是在上升期,由于手機瀏覽器所呈現的性能瓶頸,不得不開發專門的引擎來提升手機頁游性能。目前國內知名的頁游引擎有:Cocos2d-js、Egret(白鷺)、Laybox等。PS:Egret 和 Laybox 都是一些搞Flash開發的資深大牛創業研發出的引擎。還記得當年微信實驗性游戲《打飛機》?該游戲就是手機頁游,只是內嵌到微信APP內。目前市場上還沒有特別亮眼的作品。
由于Flash Player、 Unity Webplayer 插件的相繼不維護,以及手游的風生水起,很多頁游公司以及開發者都已經轉型手游,PC頁游前途已經一跌再跌。目前不建議在PC頁游上投入太多精力。
關于手機頁游現在還處于發展期間,16年也出現過現象級輕游戲《神經貓》,目前階段還沒有知名的重度游戲,還是以輕度游戲為主。大多以微信公眾號小游戲 或是商家促銷小游戲形式。
早期Egret一度發展不錯,但由于工具鏈和社區的發展沒有跟上,導致口碑逐漸下滑。其性能優化上也還有一定的空間。( Egret 早期也是一個小團隊,后來小米投資了2000W,進入了快速發展期)另外一款Layabox 后來居上,據說性能上很不錯,坑相對較少,目前開發者逐漸變多。
四、手機引擎
這里主要分析一下國內一些研發廠商使用的引擎,用得最多的就是 Cocos2d-x 和 U3D。還有部分項目用了Unreal 4 或是 自研的一些框架。
早期Cocos2d-x比較風靡,因為其開源、免費、跨平臺、高性能、支持很多開發工具,得到很多個人、工作室、公司的青睞。但隨著移動設備性能的提升,3D游戲的趨勢,以及2dx工具鏈的跟不上發展,導致一批人轉向了U3D。
以下是目前國內常用的引擎:Cocos2d-x 、U3D、Unreal 4、Flash Air、Corona、自研
我們知道Cocos2d是一個基于MIT協議的開源框架,用于構建游戲、應用程序和其他圖形界面交互應用。最初cocos2d僅是一個用Python語言寫的游戲框架,并沒有什么商業價值。2008年,蘋果手機的發展正盛,cocos2d社區抓住了這個機遇,開發出了cocos2d-iPhone版本,即用Objective-C語言替換Python重寫了整個框架。由此,cocos2d-iPhone隨著iOS的發展而迅速壯大。2010年,cocos2d已經成為iOS平臺上首選的2D游戲框架。
2010年,Android迅速崛起并能與iOS抗衡的時候,開發者希望能夠把游戲移植到Android平臺上,于是cocos2d的另一個分支cocos2d-x被開發出來,框架用C++重寫。Cocos2d-X發展的重點是圍繞Cocos2d跨平臺,Cocos2d-x項目可以很容易地建立和運行在iOS,Android,黑莓Blackberry等操作系統中。還支持Windows、Mac和Linux等桌面操作系統。
Cocos2d-x 還衍生出了Cocos2d-lua ,Cocos2d-js版本,當然也有開發者YY出了Cocos2d-java等各種語言版本。目前來講,使用Cocos2d-lua的開發商最多。
Cocos2d-js早期叫作Cocos2d-html5,后來隨著發展改名叫Cocos2d-js。這個分支不僅能發布成 ipa 或是 apk ,也能發布成 手機頁游。
PS:Cocos2d-iPhone是老外寫的, Cocos2d-x的早期作者是中國開發者,早期性能也一般,后來觸控也把原作者拉入進行了重構。Cocos2d-x后來也支持了3D,但是支持的并不是很好,所以3D游戲基本上還是選擇U3D 或是 虛幻4 。
游戲引擎是對底層繪圖接口的包裝,Cocos2d-x 也一樣,它是對不同平臺下 OpenGL 的包裝。OpenGL 全稱為 Open Graphics Library,是一個開放的、跨平臺的高性能圖形接口。OpenGL ES 則是 OpenGL 在移動設備上的衍生版本,具備與 OpenGL 一致的結構,包含了常用的圖形功能。Cocos2d-x 就是一個基于 OpenGL 的游戲引擎,因此它的繪圖部分完全由 OpenGL 實現。OpenGL 是一個基于 C 語言的三維圖形 API,基本功能包含繪制幾何圖形、變換、著色、光照、貼圖等。除了基本功能,OpenGL還提供了諸如曲面圖元、光柵操作、景深、shader 編程等高級功能。
Unity3D是由Unity Technologies開發的一個讓玩家輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。Unity類似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發環境為首要方式的軟件。其編輯器運行在Windows 和Mac OS X下,可發布游戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺。也可以利用Unity web player插件發布網頁游戲,支持Mac和Windows的網頁瀏覽。它的網頁播放器也被Mac 所支持。
除了Unity3D,為了方面開發者開發2D游戲,還出了一個分支Unity2D。
引用知乎上關于 2dx和 U3D的比較回答: “Unity和Cocos2d-x,嚴格來講并不是同樣的產品類型。Unity是一套“解決方案”,而Cocos2d-x僅僅是一個庫。兩者相比較,后者僅相當于前者的一個模塊。Unity提供集成的場景編輯器,物理引擎,材質編輯、動畫編輯等等,再加上本身的類插件功能,能讓第三方通過包來幫助生產周邊工具。但從Cocos2d-x來講,如果有公司要用,必須找到相關的編輯器,集成第三方的物理引擎(如Box2D)才能與Unity在解決方案這個級別上相提并論。就如有名的3D渲染引擎Ogre和解決方案Unreal、CryEngine一樣,本身并不具備可比性。很多公司采用Cocos2d-x來做項目的抉擇是,對于2D項目來說,Unity的確是把“牛刀”了,駕馭起來不是很順暢。Cocos2d-x加上一些第三方的工具,就能對付項目,而且駕馭起來相對簡單,就會選擇Cocos2d-x而不是Unity。”
如果想試水游戲開發的話,我是推薦選擇Unity 3d。2016年騰訊已經Kill了所有2dx項目組,全面投入到U3D,另外還有個別項目在嘗試使用虛幻4 。 大家玩的騰訊系《王者榮耀》、《穿越火線》手機版等都是U3D制作。 小米的 “吃雞”手游《小米槍戰》是用虛幻4制作。 最近網易的“吃雞”手游《荒野行動》是自研引擎 Messiah。 用Unity 3d、虛幻4 可是要給引擎廠商分成的,所以網易開了個好頭,自己賺的錢自己拿。當然騰訊也有自研引擎,也許不能說服重點項目去使用吧。畢竟引擎這東西,開發的不好坑是特別多的,不能期待項目組等你修改。商業產品還是需要選擇穩定的、可靠的引擎。
自研引擎需要投入時間長、成本大、人力多,還得緊跟潮流,作為中小公司基本上不適合走這一條路。即使你研發出來,還得開發一套工具鏈,還得有一個完善活躍的社區,這些因素缺一不可。 前段時間,阿里也成立了游戲事業部。說好的不賺小學生的錢,還是去染指游戲行業了。就這樣吧, 本希望在u3d 和 2dx上面多花點筆墨的,但是寫了這么多寫不動了。
原文鏈接:https://www.cnblogs.com/qiyer/p/7891843.html
總結
- 上一篇: interview-db
- 下一篇: M2提示加载客户端版本信息失败的解决办法