版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章游戲引擎大比拼第1章游戲引擎大比拼PAGEPAGE28PAGEPAGE29第1章游戲引擎大比拼
不論男女老少,很多人在初次使用計(jì)算機(jī)、iPad、iPhone、oPhone接觸互聯(lián)網(wǎng)時(shí),都會不約而同地選擇“打游戲”。國內(nèi)第一款網(wǎng)絡(luò)游戲是《萬王之王》,2000千禧之年在國內(nèi)公開面市,隨后開創(chuàng)了一種劃時(shí)代的全新娛樂方式。其實(shí),這款網(wǎng)絡(luò)游戲當(dāng)時(shí)僅僅由兩個(gè)人完成,一個(gè)是“萬王之父”Ruby,另一個(gè)是“萬王之母”O(jiān)nyx。這對夫妻在1998年12月完成了圖形版《萬王之王》的雛形,并在臺灣省展開了Alpha版測試。游戲的主題是自建國家(公會),然后互相攻伐,在網(wǎng)絡(luò)世界中體驗(yàn)氣勢恢宏的萬人國家戰(zhàn)爭。在技術(shù)層面,主要是完成了由“文字+指令”組成的MUD(泥巴)游戲向2D網(wǎng)絡(luò)圖形化游戲的全面跨越。2001年3月,《萬王之王》達(dá)到巔峰,獲得年度全國軟件行業(yè)協(xié)會評比網(wǎng)絡(luò)游戲第一名、中國第一屆網(wǎng)絡(luò)游戲評選之最佳網(wǎng)絡(luò)游戲等殊榮。2001年底,雷爵公司正式宣布為《萬王之王》的后續(xù)大作《萬王之王2》立項(xiàng),并著手進(jìn)行研發(fā)。但是,《萬王之王2》自研發(fā)之日起就命運(yùn)多舛。原因之一是《萬王之王2》的游戲引擎技術(shù)暴露出很多問題。與此同時(shí),整個(gè)網(wǎng)絡(luò)游戲行業(yè)的游戲引擎技術(shù)在2002-2003年期間發(fā)生了一次質(zhì)的飛躍。因此,《萬王之王2》的游戲視覺表現(xiàn)與很多采用新引擎所研發(fā)的網(wǎng)絡(luò)游戲出現(xiàn)越來越大的差距。到2003年初的時(shí)候,雷爵公司不得不將已經(jīng)完成了40%的《萬王之王2》回爐重制,由此產(chǎn)生一系列雪崩效應(yīng),最終導(dǎo)致《萬王之王2》在2007年3月20日正式停止運(yùn)營。同年12月,巨人網(wǎng)絡(luò)宣布將著手進(jìn)行《萬王之王3》的研發(fā)工作,并以此正式宣告巨人網(wǎng)絡(luò)進(jìn)軍3D網(wǎng)絡(luò)游戲領(lǐng)域。響。1.1國內(nèi)熱門網(wǎng)絡(luò)游戲引擎類型統(tǒng)計(jì)目前,國內(nèi)一些較有人氣的網(wǎng)絡(luò)游戲雖然仍舊采用2D或2.5D游戲引擎,但運(yùn)營商引進(jìn)或自主開發(fā)的3D游戲已經(jīng)逐步成為主流,有關(guān)統(tǒng)計(jì)數(shù)據(jù)如表1.1~1.2所示。表1.12001-2009年熱門網(wǎng)絡(luò)游戲引擎數(shù)據(jù)統(tǒng)計(jì)游戲名稱引擎/產(chǎn)地起測時(shí)間游戲名稱引擎/產(chǎn)地起測時(shí)間熱血傳奇2D/日韓2001仙劍情緣33D/大陸2009奇跡MU2.5D/日韓2002大話西游2D/大陸2004夢幻西游2D/大陸2009仙境傳說2.5D/日韓2009魔力寶貝2D/日韓2007FIFAOL23D/歐美2009英雄連OL3D/大陸2006誅仙3D/大陸2007神泣3D/日韓2006QQ炫霧2.5D/大陸2008問道2D/大陸2006巨星2.5D/大陸2009完美世界3D/大陸2008傳奇世界2D/大陸2003天堂II3D/日韓2004指環(huán)王OL3D/歐美2009反恐精英3D/歐美2008蒼天OL3D/日韓2008QQ飛車3D/大陸2008武林外傳3D/大陸2009 續(xù)表游戲名稱引擎/產(chǎn)地起測時(shí)間游戲名稱引擎/產(chǎn)地起測時(shí)間大話西游III2D/大陸2009神鬼傳奇3D/大陸2009驚天動地3D/日韓2006QQ堂2D/大陸2004生死格斗OL3D/日韓2009RF3D/大陸2008新奇跡世界3D/日韓2007寵物森林3D/大陸2008新卓越之劍2D/大陸2007彩虹島2D/日韓2009功夫世界3D/大陸2007街頭籃球2.5D/日韓2005魔神爭霸3D/大陸2008光線飛車3D/日韓2007大富翁OL2D/大陸2008十二之天貳3D/日韓2009三國群英傳2.5D/港臺2005OL3D/大陸20092010年以來,人們比較關(guān)注的一些網(wǎng)絡(luò)游戲的引擎構(gòu)成統(tǒng)計(jì)數(shù)據(jù)如表1.2所示(有些游戲可能已經(jīng)更新?lián)Q代,請以最新數(shù)據(jù)為準(zhǔn))。百度數(shù)據(jù)研究中心2009年年底發(fā)布的調(diào)查結(jié)果表明:“46.42%的用戶傾向于3D游戲;11.16%的用戶傾向于2.5D游戲;42.43%的用戶傾向于2D游戲”。我們認(rèn)為,這里的傾向有可能是假象,主要是國內(nèi)游戲開發(fā)商、運(yùn)營商提供了相當(dāng)數(shù)量的2.5D和2D游戲,國內(nèi)玩家缺乏其他3D同類選擇。果然,百度數(shù)據(jù)研究中心2010年年底發(fā)布的調(diào)查結(jié)果表明:“3D概念更加深入人心,關(guān)注度保持在54%以上。2D網(wǎng)游產(chǎn)品受到進(jìn)一步擠壓,關(guān)注度由年初43.4%回落到年底38.6%”。我們認(rèn)為,這種趨勢會進(jìn)一步加強(qiáng),玩家將逐漸放棄關(guān)注2D產(chǎn)品,最多只參與一些經(jīng)典的2D作品。表1.22010年以來較受關(guān)注的網(wǎng)絡(luò)游戲引擎數(shù)據(jù)統(tǒng)計(jì)引擎分類游戲名稱2D星座OL、爭霸O(shè)L-百戰(zhàn)堂、神墓OL、亮劍OL、江湖行、大明龍權(quán)、名將三國、傳奇3、昆侖OL、神武-逍遙外傳、幻想世界、西游記、翼魂、夢幻魔獸、天元、浪漫Q唐、冒險(xiǎn)島OL、魔騎士、征途、天工物語、倚天劍與屠龍刀2、夢幻星球、幻境傳說、三國殺OL、星辰變、時(shí)空戰(zhàn)記、夢幻蜀山、石器時(shí)代2、俠義世界、征途2、熱血昆侖、英雄往事、冒險(xiǎn)大陸、地下城與勇士、降龍之劍、泡泡堂、傳世群英傳、綠色征途、大話軒轅、天涯OL、夢幻誅仙、大話仙劍、蓬萊、封神榜3、QQ幻想世界、風(fēng)色幻想OL、新絕代雙驕OL、夢想帝王、秦傷、桃花源記、劍靈·決、蒼穹之怒、仙境冒險(xiǎn)、倚天屠龍記、大話西游之戰(zhàn)歌、英雄Q傳、問道外傳、圣斗士2、大話紅樓、武林秘籍、八仙外傳、武俠無雙、水滸傳、斗神、守護(hù)之劍、核金風(fēng)暴、忍者世界、將軍令、三界西游、天跡、決戰(zhàn)雙城、永久基地2、元斗士、陸戰(zhàn)王、龍之大陸、貂嬋、紅途、抗戰(zhàn)2、九州OL、奇門、山海奇緣、邪風(fēng)曲OL、夢想世界、戰(zhàn)國群雄、明朝演義、白蛇傳OL、諾亞傳說、夢幻昆侖、新鬼吹燈、都市快打、夢幻穿越、英雄美人2、仙侶外傳、熱血世界、鐵血丹心、夢幻情緣、盤古戰(zhàn)紀(jì)、漫游OL、名將2、大話戰(zhàn)國歸來、新石頭記、刀劍英雄、蒼茫世界、圣龍Q傳、劍仙、劍雨天下、時(shí)空戰(zhàn)記、奪寶世界、仙魔傳奇、夢回山海、災(zāi)變、天地劫、熱血傳奇、夢幻西游、魔力寶貝、雷電、劍俠世界、英雄島、數(shù)碼寶貝OL、英雄年代、大秦天下、龍影、漂流幻境、生肖傳說、仙尊、海之樂章、逍遙傳說、天朝、機(jī)戰(zhàn)、戰(zhàn)國后傳、新天驕、幻想封神、快樂神仙、勇者斗斗龍、開心果、真愛西游、滄海、華夏前傳、仙侶奇緣3、長江7號、炎黃OL、開創(chuàng)世紀(jì)2013、星空傳奇、西夏OL、戀仙OL 續(xù)表引擎分類游戲名稱2.5D成吉思汗、蒼穹之劍、QQ仙境、獸血外傳、仙途、西游天下、魔咒、易三國、帝王OL、魔域、倩女幽魂OL、天龍八部2、天之痕OL、街頭籃球2、獵國、遠(yuǎn)征OL、醉逍遙、大唐無雙、東邪西毒、巨人前傳、神仙傳、蒼生OL、神鬼世界、魔界2、月影傳說、軒轅傳奇、仙OL、凡人修仙傳、極速輪滑、夢幻問情、煉獄OL、傭兵天下、神話、巨刃、百年戰(zhàn)爭、魔戒傳奇、暗夜傳說、夢想島、夢幻迪士尼、魔盜OL、水滸無雙、埃爾之光、兵王、九刃、圣道傳奇、仙蛇傳、霸者無雙、盛世傳奇、諸神國度、仙門、武魂、龍紋、海之夢、六道2、風(fēng)色群英傳、死神之刃、艾米爾編年史、傳奇密傳、劍圣OL、西游3、天子、錦衣衛(wèi)、十虎、天魔傳說、龍之傳奇、月光寶盒、封神爭霸O(shè)L、魔神無雙、江山美人、漢武大帝、TANTRA2(密傳2)、煮酒天下、梁山豪杰、火鳳燎原、修魔、藍(lán)空OL、決勝、預(yù)言2、特勤隊(duì)2、光之冒險(xiǎn)、玄界OL、雷霆、巨俠、行會爭霸、超神傳、劍雨OL、科洛斯風(fēng)云、封神演義前傳、屠魔、劍俠傳奇、紅顏、仙境傳說、QQ炫舞、大唐豪俠外傳、英雄無敵OL、劍俠時(shí)代、夢幻情天、拍拍部落、倚天屠魔、紅色警戒、勁舞世界、猛將傳OL、傾國傾城、帝王OL、逍遙界、熱血天下、天魔傳奇、十二封印3DAVA、真三國無雙OL、赤壁、地牢騎士團(tuán)、星塵傳說、仙魔OL、眾神之戰(zhàn)、創(chuàng)世紀(jì)、萬王之王3、誅仙2、穿越火線、俠客列傳、戰(zhàn)斗足球、東游記、納雅外傳、iTown、永恒之塔、魔獸世界、流星蝴蝶劍OL、神兵傳奇、天下貳、極光世界、龍之谷、絕地反擊、Mstar、跑跑卡丁車、神魔大陸、完美國際、武林至尊、天之翼、全球使命、夢幻聊齋、丟丟、洛汗、獵刃、岐山、戰(zhàn)地之王、精靈樂章、龍的傳人、熱血江湖、圣域傳說、天源4591、天境、創(chuàng)世西游、QQ仙俠傳、武神、夢三國、水滸Q傳、海魂、神雕OL、天翼決、晶鐵之門、QQ西游、金剛8號、創(chuàng)誓記、自在飛車、新飛飛、王者世界、勇士OL、七劍OL、洛奇、幻魔之眼、新封印傳說、龍騰世界、LUNAOL、新蜀門、網(wǎng)球?qū)氊?、仙劍神曲OL、九陰真經(jīng)、英雄聯(lián)盟、仙劍情緣OL、功夫英雄、開心大陸、書劍恩仇錄、御龍?jiān)谔?、?zhàn)地風(fēng)云OL、突擊風(fēng)暴、卓越之劍2、天堂夢、NBA2KOL、奇跡世界2、泡泡戰(zhàn)士、第九大陸、巫師之怒、刀劍2、鹿鼎記、全民足球、紙片人、桃園、三國戰(zhàn)魂、坦克世界、聚仙、地下城守護(hù)者OL、生化戰(zhàn)場、魔鑰、大沖鋒、火力突擊、天外飛仙、風(fēng)暴戰(zhàn)區(qū)、暗黑紀(jì)元、勇者之翼、戰(zhàn)爭前線、勁唱團(tuán)、隋唐演義OL、悟空傳、天驕3、白蛇傳說、天地決、特種部隊(duì)、龍之夢OL、烈焰行動、君·天下、潘多拉、零紀(jì)元、精靈傳說、麻辣江湖、魔卡精靈、熱血天驕、Avalon、炫舞吧2、大劍OL、獨(dú)孤九劍、玄天之劍、誅仙前傳、玄武、熱血戰(zhàn)隊(duì)、烽火大唐、代號巨人X、五岳乾坤、特戰(zhàn)先鋒、蠻荒、高爾夫達(dá)人、?;辍崃ε徘?、黑暗帝國、寵物王國、神鬼傳奇、一級戒備、煉獄世界、哈姆寶寶、終極火力、驚天動地2、圣魔之血、開心星球、狼隊(duì)、幻獸大陸、中華龍塔、乾坤OL、混沌之門、八仙過海、夢境之城、熱血戰(zhàn)地、魔卡、熱斗傳說、藍(lán)海戰(zhàn)記、JR01、蜀山神話、魔霸、MKZ軍魂、石器2012、刀劍笑、上古世界、完美世界、界王、神跡、西游群英傳、瘋狂飛空艇、大漢龍騰、惡魔法則3、越野狂飆、絕對火力、舞型舞秀、洪荒、熱血水滸、俠客行、出發(fā)OL、天子傳奇、復(fù)仇、中華英雄OL、新地牢騎士團(tuán)、勁舞團(tuán)、FIFAOL、星戰(zhàn)前夜、飄邈之旅、反恐精英OL、上古神殿、新武林外傳、俠道金剛、聊個(gè)齋、守護(hù)傳說、飛天風(fēng)云、霸王大陸、幻想學(xué)園、大航海時(shí)代OL、尋仙、通靈王、龍魂、第七區(qū)、群英賦、武林群俠傳OL、寵物小精靈OL、精靈復(fù)興、空戰(zhàn)世紀(jì)、熱舞派對、極速輪滑、反恐行動、魔法之門、人生OL、水晶物語OL、星空之戀、超級樂者、超級舞者、飚車世界、異界OL、夢幻龍族、春秋爭霸、信長野望OL、隋唐Q傳、熱血騎士、魔龍戰(zhàn)紀(jì)、風(fēng)云、舞街區(qū)、戰(zhàn)鼓傳說、滅神、沖鋒OL、超級西西三國、鐵血星球、天命OL、唯舞獨(dú)尊OL、幻想大陸、激戰(zhàn)海陸空、奇?zhèn)b傳、童夢伴隨著三網(wǎng)融合以及3G時(shí)代的逐步來臨,用戶擁有的游戲終端設(shè)備的性能不斷提升,游戲帶寬成本不斷降低,精美絕倫的畫面品質(zhì)以及別具匠心的創(chuàng)意可以在網(wǎng)絡(luò)游戲情節(jié)中發(fā)揮得淋漓盡致,成為吸引玩家的核心秘笈。因此,采用性能卓越的3D引擎,已經(jīng)成為游戲開發(fā)商在玩家中“攻城略地、劃分疆土”的秘密武器。例如,巨人網(wǎng)絡(luò)在復(fù)興《萬王之王3》時(shí),就宣稱組建了200多人的精英開發(fā)團(tuán)隊(duì),采用具有專利的服務(wù)器端技術(shù)(3D游戲引擎中的一部分功能)進(jìn)行研發(fā)。通常,3D游戲引擎完整代碼由游戲開發(fā)商嚴(yán)格控制,甚至連游戲開發(fā)人員也無法窺其全貌。一般游戲愛好者、程序開發(fā)人員如果沒有較長時(shí)間的探索積累,很難迅速構(gòu)造一個(gè)簡單易用、性能優(yōu)良、架構(gòu)合理、開放擴(kuò)展的3D游戲引擎。本書通過一系列分析對比,從全世界一些知名的開源商業(yè)3D游戲引擎中遴選出Panda3D,將其作為經(jīng)典3D游戲引擎呈現(xiàn)給讀者,幫助讀者完整把握3D游戲引擎的基本架構(gòu)與功能,掌握一種3D游戲引擎的開發(fā)與使用。實(shí)踐已經(jīng)證明,Panda3D是一個(gè)成熟的商業(yè)3D游戲引擎,可以“拿來就用”。另一方面,對于那些追求3D游戲引擎更高目標(biāo)的研發(fā)人員,Panda3D無疑也是一個(gè)經(jīng)得起考驗(yàn)的“巨人的肩膀”。1.2Panda3D的前世今生從誕生之日起,Panda3D的目標(biāo)就是服務(wù)于商業(yè)化3D應(yīng)用開發(fā)。當(dāng)?shù)纤鼓釡?zhǔn)備為迪斯尼主題公園開發(fā)一系列3D應(yīng)用時(shí),Panda3D在研制“阿拉丁的魔毯”過程中逐步形成并最終演化為開源商業(yè)3D游戲引擎。隨后,作為DisneyVRStudio的核心,Panda3D先后用來創(chuàng)建由一系列卡通人物游戲集合構(gòu)成的“卡通城OL”及第二代MMORPG“加勒比海盜OL”。Panda3D中Panda是PlatformAgnosticNetworkedDisplayArchitecture各單詞第一個(gè)字母的縮寫,其真正含義是“平臺無關(guān)網(wǎng)絡(luò)化顯示架構(gòu)”。天公作美,竟然與我們的國寶熊貓同名。在USNews排名中計(jì)算機(jī)水平第一的美國著名學(xué)府“卡內(nèi)基梅隆大學(xué)”承擔(dān)了Panda3D的研制。后來,迪斯尼工程師繼續(xù)大規(guī)模開發(fā)3D游戲,而Panda3D的研制者為了促進(jìn)各大學(xué)更為方便地開展虛擬現(xiàn)實(shí)研究項(xiàng)目,決定從2002年開始,將3D引擎發(fā)布為開源項(xiàng)目。發(fā)布開源項(xiàng)目不是簡單的事情,需要持續(xù)更新引擎的新技術(shù)并提供大量的文檔和實(shí)例以繁榮開源社區(qū)。目前,Panda3D開源工作由卡內(nèi)基梅隆娛樂技術(shù)中心負(fù)責(zé)。成為世界上最為活躍的開源商業(yè)化3D游戲引擎社區(qū)之一。到目前為止,采用Panda3D引擎的一些著名開發(fā)商及其商業(yè)化產(chǎn)品如表1.3所示。隨著時(shí)間的推移,Panda3D引擎名稱來歷中的技術(shù)背景已經(jīng)變得越來越模糊了?,F(xiàn)在,卡內(nèi)基梅隆娛樂技術(shù)中心也樂于以熊貓作為這個(gè)3D游戲引擎的Logo(帶著紅色、綠色雙色眼鏡的藍(lán)色熊貓)。為了確保讀者對Panda3D有全面的了解,先暫時(shí)停止對這款游戲引擎的深入探索,看看游戲引擎行業(yè)的整體狀況。表1.3采用Panda3D的著名開發(fā)商及其商業(yè)化產(chǎn)品(運(yùn)行截屏參看彩頁)開發(fā)商商業(yè)化產(chǎn)品迪斯尼Disney卡通城:/加勒比海盜OL:/welcome秋月娛樂AutumnMoonEntertainment巫胡島的幽靈海盜:http://www.ghost-pirates.de/start.php吸血鬼傳奇:/SimOpsStudiosCode3D:/MSASafetyPoliceLine熱成像仿真游戲:/thermal_enforcer.htmlTreeform敢死天使第二次星宿戰(zhàn)爭:/index.htmlKochMediaGmbH,Austria七百萬:/1.3游戲引擎的發(fā)展游戲引擎是游戲廠商擁有和使用的用于開發(fā)游戲的專用中間件,可以有選擇地在微軟Windows、Linux、Mac、Symbian、Android等操作系統(tǒng)上運(yùn)行?,F(xiàn)代游戲引擎最核心的目的是集成、封裝開發(fā)游戲時(shí)的服務(wù)器端功能,并為客戶端游戲應(yīng)用提供相關(guān)支持。作為延伸和擴(kuò)展,許多游戲引擎還提供快速開發(fā)環(huán)境。游戲引擎不僅可以用來開發(fā)游戲,也可以用于虛擬現(xiàn)實(shí)、動態(tài)仿真、影視視頻制作、互動娛樂、時(shí)尚UI、醫(yī)學(xué)診斷、CAI等領(lǐng)域。撇開底層實(shí)現(xiàn)技術(shù),游戲引擎的核心功能包括場景運(yùn)行、2D及3D圖形渲染、物理碰撞檢測及響應(yīng)、動畫、音頻、腳本、人工智能、網(wǎng)絡(luò)、流、內(nèi)存管理、多線程、本地化等。借助于游戲引擎,游戲開發(fā)可以大量實(shí)現(xiàn)代碼重用,促進(jìn)產(chǎn)業(yè)規(guī)?;膶I(yè)技術(shù)角度而言,不同游戲引擎的區(qū)別在于提供不同的硬件兼容、軟件架構(gòu)、組件結(jié)構(gòu)及3D游戲?qū)ο蟪橄?。對于設(shè)計(jì)合理的游戲引擎,無論是在使用不同操作系統(tǒng)的個(gè)人電腦、移動終端還是專用游戲平臺上,運(yùn)行相同游戲幾乎不需要修改代碼或者修改量非常少。隨著計(jì)算機(jī)組件技術(shù)的不斷成熟,好的游戲引擎允許不斷替換、升級或擴(kuò)展特定的組成部分,例如物理動力特性引擎、多維音效引擎、高清數(shù)字視頻引擎等。有些引擎甚至采用不同松耦合的組件系統(tǒng)集成產(chǎn)生。當(dāng)然,相對于引擎擴(kuò)展性而言,引擎實(shí)時(shí)性更加至關(guān)重要。由于視覺需求是第一位的,很多“游戲引擎”有時(shí)專注于實(shí)時(shí)3D渲染,舍棄了其他功能定位,并把相關(guān)內(nèi)容空出,留給后續(xù)開發(fā)人員。其實(shí),這類“游戲引擎”本質(zhì)上是“圖形引擎”、“渲染引擎”。例如OGRE、Irrlicht、JMonkey、RealmForge、Truevision3D、CrystalSpace、Genesis3D、Vision等引擎。1.3.1抽象硬件比游戲引擎、圖形引擎更為底層的圖形及多媒體API軟件抽象是Direct3D、OpenGL、SimpleDirectMediaLayer(SDL)、OpenAudioLibrary(OpenAL),適用于圖形處理器(GPU)、視頻卡或聲卡。它們對鼠標(biāo)、鍵盤、游戲桿、網(wǎng)卡、聲卡等進(jìn)行了硬件無關(guān)處理。有時(shí),這些底層函數(shù)庫也被用來直接開發(fā)游戲,所以在一定程度上產(chǎn)生了誤解。其實(shí)它們不是引擎而是函數(shù)庫,更加關(guān)注與硬件的兼容集成性。隨著硬件圖形加速技術(shù)的發(fā)展,各種物理API,例如逐行倒相制式(PAL)、3D資產(chǎn)內(nèi)部交換格式(COLLADA)也逐步出現(xiàn)。它們通常由不同中間件廠商提供,為上層應(yīng)用與底層物理處理單元提供一種軟件抽象和隔離。1.3.2軟件抽象早先的游戲從頭到尾很少采用抽象設(shè)計(jì)概念,只是進(jìn)行緊耦合式開發(fā),代碼很難重用,除函數(shù)外沒有其他軟件抽象層次。第一代圖形引擎或渲染引擎代表是Argonaut公司的BRender、Criterion公司的Renderware和Reality實(shí)驗(yàn)室的RenderMorphics。后者速度最快,但團(tuán)隊(duì)一些主要開發(fā)人員被微軟撬走從事Direct3D研制,而RenderMorphics引擎也在被游戲巨頭ElectronicArts收購后有意逐漸廢棄。完整的游戲引擎概念出現(xiàn)在20世紀(jì)90年代中期,與第一人稱射擊類3D游戲(FPS)的興起有關(guān),其典型代表是Doom和Quake。獲得許可后,開發(fā)人員可以設(shè)計(jì)自己的場景、角色、武器和關(guān)卡,無需一切從頭開始。有關(guān)定制部分也稱為“游戲內(nèi)容”、“游戲資產(chǎn)”。游戲策劃、游戲資產(chǎn)制作與游戲編程的分工加速了游戲產(chǎn)業(yè)化過程。后來,一些公司更加專注于游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)問題,并通過軟件許可證方式獲利,例如Unreal引擎。通常,一個(gè)高端商業(yè)化游戲引擎的單個(gè)許可證費(fèi)用是1萬到100萬美元。由于游戲引擎研制的專業(yè)化運(yùn)作,游戲產(chǎn)業(yè)更能健康持續(xù)地與最新技術(shù)一起同步發(fā)展。與數(shù)據(jù)庫等行業(yè)軟件類似,現(xiàn)代游戲引擎是一個(gè)非常龐雜精致的應(yīng)用支持系統(tǒng),其內(nèi)部架構(gòu)、組件模式,最終精確實(shí)時(shí)地強(qiáng)化著用戶體驗(yàn)?,F(xiàn)代游戲引擎大多強(qiáng)調(diào)渲染、腳本、關(guān)卡、藝術(shù)效果等功能的強(qiáng)分隔、松耦合。為牛頓式技術(shù)癡人與畢加索式藝術(shù)瘋子同臺演出提供了可能。不同流派的游戲引擎已經(jīng)廣泛應(yīng)用于各種游戲。多線程技術(shù)是現(xiàn)代游戲引擎的核心機(jī)制,涉及場景運(yùn)行、渲染、物理碰撞檢測及響應(yīng)、動畫、音頻、腳本、人工智能、網(wǎng)絡(luò)、流、內(nèi)存管理、本地化。例如,在多線程技術(shù)保持領(lǐng)先的一些賽車游戲中,物理碰撞檢測及響應(yīng)引擎可以使用一個(gè)單獨(dú)的線程,在其他核心子系統(tǒng)移動之前就開始運(yùn)行,因?yàn)殇秩竞推渌蝿?wù)刷新頻率為30~60Hz,而物理碰撞檢測及響應(yīng)引擎刷新頻率大約為100~360Hz。當(dāng)前,游戲引擎已經(jīng)將跨平臺、跨設(shè)備作為一個(gè)發(fā)展方向,對iPhone、iPad、瀏覽器的支持日益加強(qiáng)。實(shí)現(xiàn)語言也從原來的C/C++為主,豐富到涵蓋Java、C#/.NET、Python等。因?yàn)殡S著硬件設(shè)備整體性能的大幅度提高,高級語言已經(jīng)不再會過多延遲游戲運(yùn)行,相反,高級語言尤其是腳本語言的靈活性,為開發(fā)人員及用戶提供了更大的好處。本書將深入介紹Python腳本語言帶來的靈活和便利。微軟在游戲引擎領(lǐng)域也是動作頻頻,使用.NETFramework和新發(fā)布的XNAGameStudio、GameDevelopmentSite,全面支持Xbox360以及Zune播放器。還有一些引擎,不對第三方發(fā)布,由游戲開發(fā)商單獨(dú)控制使用。它們不在本書討論范圍之內(nèi)。1.4開源游戲引擎整體比較業(yè)界公開且比較知名的開源游戲引擎統(tǒng)計(jì)如表1.4所示。從統(tǒng)計(jì)數(shù)據(jù)來看,C++語言依然是目前游戲引擎的主要開發(fā)語言,而腳本語言中支持較多的是Lua和Python。還有一些免費(fèi)游戲引擎,不提供源代碼,但是可以在一定程度上免費(fèi)使用,本書不討論。表1.4知名開源游戲引擎統(tǒng)計(jì)名稱開發(fā)語言綁定跨平臺SDL針對2D腳本代表游戲許可證AlephOneC是是否LuaMarathonMarkupLanguageMarathonGPLAllegroLibraryCAda、C++、C#、D、Lisp、Lua、Pascal、Mercury、Python、Perl、Scheme是否是ZlibArdor3DJava是否ZlibAxiomC#是是否DynamicLanguageRuntimeLGPLBlenderC++Python是是否PythonGPLBox2DC++Java、C#、Lua、Action-Script、JavaScript、D、PythonDarkBasic是否是MIT
續(xù)表名稱開發(fā)語言綁定跨平臺SDL針對2D腳本代表游戲許可證BuildC否否CafuC++是否否LuaGPLProprietaryClanLibC++是是是ClanlibCrystalSpaceC++Python、Perl、Java是是否LGPLCubeC++是是否ZlibCube2C++是是否ZlibDelta3dC++是否PythonLGPLDGDLPC是否是LPCDXFrameworkC++否否PythonBSDExultC++是是是GPLFlixelt是否是GregoryWeir系列MITGenesisDeviceObjectPascal否否PascalScriptLGPLGenesis3DC否否GlestC++是否否LuaHPLC++是是否Penumbra:OvertureGPLProprietaryidTech1C是否否DoomDoomIIGPLidTech2C是否否QuakeIIGPLidTech3C是否否QuakeIIIArenaGPLidTech4C++是是否有Doom3,Wolf-enstein,Brink,EnemyTerritoryQuakeWarsProprietaryioquake3C是是否GPL
續(xù)表名稱開發(fā)語言綁定跨平臺SDL針對2D腳本代表游戲許可證IrrlichtC++Java,Perl,Ruby,Lua,Python,Delphi,FreeBAS,GameMaker,AutoIt是是否Squirrel,AutoItH-CraftChampion-shipZlibJake2Java是否否GPLjMonkeyJava是否否BSDJogreJava是否是GPLKlayGEC++是否否PythonGPLLightweightJavaGameLibraryJava是否是MinecraftBSDNebulaDeviceC++Python,Java,.NET是否LuaRubyTcl/TkPythonMITOpenScenceGraphC++是否否LuaPythonLGPLORXC/C++是是是ZlibPanda3DC++Python是否否Python已介紹BSDPixelLightC++是否否LGPLPLIBC++是是否LGPLQtC++Python,Java,CommonLisp,Haskell是否是QtScriptLGPLQuakeC是否否QuakeCGPL
續(xù)表名稱開發(fā)語言綁定跨平臺SDL針對2D腳本代表游戲許可證RealityFactoryC++否否SimKinTelepath,ImageoftheWeekTheLegendofOkkoraHouseofShadowsMITRealmForgeC#C/C++,C#,D,Delphi,Ada,Perl,Fortran,Python,VB.NET是否C#JScriptLostIsle,LizardRockIslandLGPLRetributionC++否否GPLRubygameRuby是是是LGPLSecondLifeC++是否否LSLSphereC++是否是JavaScriptSpringC++是否否LuaGPLStratagusC是是是LuaGPL1.5知名游戲引擎及代表游戲一些知名游戲引擎及其代表游戲如表1.5所示。其中,實(shí)力較強(qiáng)的完全商業(yè)化游戲引擎是Jade、PhyreEngine、SourceEngine、UnrealEngine3.x等。另外,可以看出,即便與完全商業(yè)化運(yùn)作的游戲引擎相比,Panda3D也還是相當(dāng)有實(shí)力。表1.5知名游戲引擎及其代表游戲游戲引擎名稱代表游戲Nel3DMMORPGGameEngineRyzom,TheSagaofRyzomAlamoEmpireatWar,ForcesofCorruption,UniverseatWar:EarthAssault續(xù)表游戲引擎名稱代表游戲AdventureGameStudioChzoMythos,SovietUnterzoegersdorf,TheBlackwellSeries,BenJordan:ParanormalInvestigatorAnvilAssassin’sCreedII,PrinceofPersia:TheForgottenSands,Assassin’sCreed:BrotherhoodBigWorldTwinSkies,StargateWorldsCPAL3DMementoMori,Numen:ContestofHeroes,PoundofGround,AlternativaCryEngineFarCry,Aion:TheTowerofEternityCryEngine2Crysis,EntropiaUniverseCryEngine3Crysis2CrystalToolsFinalFantasyXIII,FinalFantasyVersusXIII,FinalFantasyXIIIAgito,FinalFantasyXIVDuniaEngineFarCry2,JamesCameron’sAvatar:TheGameEssenceEngineCompanyofHeroes,OpposingFronts,Warhammer40,000:DawnofWar2EuropaEngineEuropaUniversalis,HeartsofIronGamebryoDarkAgeofCamelot,TheElderScrollsIV:Oblivion,Fallout3,Fallout:NewVegasGoldSrcHalf-Life,GunmanChroniclesGogiiGamesEngineMortimerBeckettseries,MirrorMysteriesHeroEngineHero’sJourney,StarWars:TheOldRepublicHPLEnginePenumbra:Overture,Penumbra:BlackPlague,Penumbra:Requiem,Amnesia:TheDarkDescentidTech4Doom3,Quake4,Prey,EnemyTerritory:QuakeWars,WolfensteinInfernalEngineGhostbusters:TheVideoGame,MushroomMen:TheSporeWars,BassProShops:TheStrike,Roogoo:TwistedTowersInfinityEngineBaldur’sGate,Baldur’sGateII:ShadowsofAmn,Planescape:Torment,IcewindDale,IcewindDlaeIIIronEngineSinsofaSolarEmpire
續(xù)表游戲引擎名稱代表游戲JadeEngineBeyondGood&Evil,PrinceofPersia:TheSandsofTime,PrinceofPersia:WarriorWithin,PrinceofPersia:TheTwoThrones,PeterJackon’sKingKong:TheOfficialGameoftheMovie,RaymanRavingRabbids,TMNT,RaymanRavingRabbids2,Naruto:RiseofaNinja,Naruto:TheBrokenBond,JamesCameron’sAvatar:TheGame(Wiiversion),PrinceofPersia:TheForgottenSands(WiiandPSPversions)K2EngineSavage2,HeroesofNewerthNebulaDevice3Darkensang:TheDarkEyeNeonEngineOperationFlahspoint2:DragonRisingRaceDriverGridPanda3D已介紹PhyreEngineMalicious(videogame)forPSN,RugbyLeagueLive,topatoi,CritterCrunch,Neptune,BurnZombieBurn,SavageMoon,\o"AnotherCentury'sEpisode:R"AnotherCentury'sEpisode:R,Demon'sSouls,Catan,\o"AtelierRorona:AlchemistofArland"AtelierRorona:AlchemistofArland,ArtonelicoQoga:KnellofArCiel,AtelierTotori:AlchemistofArland2,PachiParaDLHyperSeaStoryInKaribu,ZettaiZetsumeiToshi4:SummerMemories,TrinityUniverse,LastRebellion,\o"UnderSiege(2009videogame)"UnderSiege,GripShift,Shatter,flow,Flower,JourneyRAGEMidnightClub:LosAngeles,GrandTheftAutoIV,RockstarGamesPresentsTableTennis,RedDeadRedemptionRiotEngineDraken:OrderoftheFlame,Darken:TheAncients’Gates,TheLordoftheRings:TheFellowshipoftheRing,TheSuffering,TheSuffering:TiesThatBindRPGMakerVXEternalEdenRPGMakerXPAveyondSAGEEngineRedAltert3,Generals,TiberiumWars,TheBattleforMiddle-earthIIScimitarAssassin’sCreed,PrinceofPersia,ShaunWhiteSnowboardingShiVa3DVoodooDice,PinballYeah,TextingofTheBread,PirateWings,GravitonSilentStormEngineSilentStorm,SilentStorm:Sentinels,Hammer&Sickle,NightWatch,DayWatch,HeroesofMightandMagicV,JaggedAlliance3
續(xù)表游戲引擎名稱代表游戲SourceEngineHalfLife2,TeamFortress2,Protal,Left4Dead,Left4Dead2,Vampire:TheMasquerade-Bloodlines,SinEpisodes,DarkMessiahofMightandMagic,ZenoClash,Vindictus/Mabinogi:Heroes,KOSSecretOperationsTGEAMarbleBlastUltra,FallenEmpire:Legions,Dreamlords,PennyArcadeAdventures:OntheRain-Slick,PrecipiceofDarknessUniginePrimalCarnage,AfterfallUniverseUnityCartoonNetworkUniverse:FusionFall,TigerWoodsPGATourOnline,GooBall,GlobalConflicts:Palestine,Off_roadVelociraptorSafari,WolfQuest,DeadFrontierUnrealEngine2.xAmerica’sArmy,Exteel,LineageII,TheChroniclesofSpellborn,UnrealTournament2004,RagnarokOnline2UnrealEngine3.xAmerica’sArmy3,Batman:ArkhamAsylum,Borderlands,BrothersinArms:Hell’sHighway,BioShock,BlackSite:Area51,GearsofWar,GearsofWar2,UnrealTournament3,RainbowSixVegas,SplinterCell:Conviction,LostOdyssey,MassEffect,MassEffect2,TheLastRemnant,MedalofHonour:Airbourne,BladeandSoul,BulletstormVisionEngine8Arcania:AGothicTale,TheSettlers7:PathstoaKingdom,DIZZEL,DungeonHero,ArenaMorte,CutthroatX-RayEngineS.T.A.L.K.E.R.:ShadowofChernobyl,S.T.A.L.K.E.R.:ClearSky,S.T.A.L.K.E.R.:CallofPripyat4AEngineMetro20331.6游戲引擎的成本與收益采用游戲引擎開發(fā)游戲是上手迅速、品質(zhì)有保障、技術(shù)領(lǐng)先、開發(fā)周期縮短的一種工業(yè)化分工合作模式。不管使用哪種游戲引擎,都會有一定的成本構(gòu)成和預(yù)期收益。(1) 通常,使用游戲引擎的直接成本構(gòu)成如下:許可證費(fèi)用。支付給游戲引擎開發(fā)商的全部費(fèi)用,包括游戲產(chǎn)品許可證費(fèi)用、版稅協(xié)議、客戶培訓(xùn)費(fèi)用等。由游戲產(chǎn)品支持客戶數(shù)、許可證綁定目標(biāo)平臺、每客戶或每年度服務(wù)、銷售版稅等因素決定。游戲產(chǎn)品費(fèi)用。與游戲產(chǎn)品整個(gè)生命周期中“游戲研發(fā)階段”各產(chǎn)業(yè)鏈環(huán)節(jié)相關(guān)的全部費(fèi)用。包括創(chuàng)意、提案、制作、集成、測試、發(fā)布費(fèi)用,直接用于相關(guān)產(chǎn)品開發(fā)的策劃、管理、設(shè)計(jì)與實(shí)現(xiàn)。培訓(xùn)費(fèi)用。這是評估游戲引擎的一個(gè)重要尺度。涉及開發(fā)團(tuán)隊(duì)技術(shù)學(xué)習(xí)曲線成本、時(shí)間投資成本、開發(fā)商培訓(xùn)成本。由論壇、知識庫、技術(shù)文檔、教學(xué)視頻、在線幫助、實(shí)際案例等因素決定。維護(hù)升級費(fèi)用。不論是自己開發(fā)游戲引擎還是使用第三方游戲引擎,都需要對游戲引擎的軟件抽象設(shè)計(jì)、技術(shù)實(shí)現(xiàn)進(jìn)行維護(hù)和升級,以適應(yīng)游戲效果、游戲規(guī)模、硬件平臺、設(shè)備性能、IT技術(shù)的變革。由開發(fā)團(tuán)隊(duì)研發(fā)費(fèi)用、福利薪資、軟硬件測試配置等因素決定。資質(zhì)評測費(fèi)用。在評測游戲產(chǎn)品相關(guān)資質(zhì)時(shí),對于創(chuàng)意、藝術(shù)視覺、音效、產(chǎn)品質(zhì)量、性能體驗(yàn)都需要嚴(yán)格把關(guān)。使用游戲引擎降低了資質(zhì)評測的時(shí)間和費(fèi)用,減少了培訓(xùn)、支持、現(xiàn)場跟蹤的時(shí)間及人力投入。(2) 另一方面,使用游戲引擎的直接收益如下:節(jié)省時(shí)間。游戲產(chǎn)品開發(fā)過程簡化為創(chuàng)意、提案、游戲資產(chǎn)制作、游戲內(nèi)容集成、測試、發(fā)布。每個(gè)環(huán)節(jié)之間的時(shí)序依賴和對底層技術(shù)的依賴相對弱化。有些游戲甚至可以直接采用“腳本+游戲資產(chǎn)”來實(shí)現(xiàn)。節(jié)省成本。開發(fā)團(tuán)隊(duì)及其管理得以精簡,對開發(fā)人員整體技能要求可以有所下降,節(jié)省單個(gè)產(chǎn)品開發(fā)預(yù)算,為延長產(chǎn)品線提供了可能。聚焦游戲產(chǎn)品本質(zhì)。游戲產(chǎn)品歸根結(jié)底是創(chuàng)意產(chǎn)品,借助于優(yōu)秀的游戲引擎,游戲開發(fā)商可以更加聚焦于游戲的創(chuàng)意,并保證好的創(chuàng)意可以最終轉(zhuǎn)換為好的產(chǎn)品,好的體驗(yàn)。支持更為專業(yè)。游戲引擎是一種開放式、發(fā)展的中間件,有利于專業(yè)技術(shù)人才資源的有效整合和共享。共享行業(yè)知識經(jīng)驗(yàn)。游戲開發(fā)商在成長過程中會遇到一系列問題,其有效解決往往與技術(shù)實(shí)現(xiàn)密切相關(guān)。采用游戲引擎可以快速獲取有關(guān)行業(yè)知識經(jīng)驗(yàn),對于游戲開發(fā)商的迅速發(fā)展能提供更多的機(jī)會和便利。1.7選擇游戲引擎的尺度游戲?qū)<襇arkDeloura曾經(jīng)做過一項(xiàng)調(diào)查,統(tǒng)計(jì)有關(guān)游戲開發(fā)商選擇不同游戲引擎的尺度,可以歸結(jié)為以下幾個(gè)方面:整體目標(biāo)。大約90%的開發(fā)商認(rèn)為是確保藝術(shù)家、設(shè)計(jì)師快速上手;大約80%的開發(fā)商認(rèn)為是需要開發(fā)人員只關(guān)注游戲必需代碼;大約70%的開發(fā)商認(rèn)為是需要游戲開發(fā)快一點(diǎn)并且代碼編寫量少一點(diǎn)。引擎質(zhì)量。大約70%的開發(fā)商關(guān)注引擎與計(jì)劃游戲產(chǎn)品流派是否匹配;大約70%的開發(fā)商關(guān)注代碼可讀性及擴(kuò)展性;大約60%的開發(fā)商關(guān)注與現(xiàn)有開發(fā)資源環(huán)境的集成性;大約60%的開發(fā)商關(guān)注是否可以獲取源代碼。實(shí)踐有效性(適用于開發(fā)人員)。大約90%的開發(fā)人員考慮獲取源代碼;大約80%的開發(fā)人員考慮與其他中間件的集成性,大約80%的開發(fā)人員考慮資源管理易于變更;大約80%的開發(fā)人員考慮不斷獲取游戲引擎最新版本;大約80%的開發(fā)人員考慮清晰的工程開發(fā)路線圖。技術(shù)功能。大約90%的開發(fā)商需要多線程/多處理器功能;大約90%的開發(fā)商需要渲染管道;大約90%的開發(fā)商需要?jiǎng)赢嬒到y(tǒng);大約80%的開發(fā)商需要物理碰撞檢測;大約80%的開發(fā)商需要流機(jī)制。支持工具集。大約80%的開發(fā)商希望支持配置文件;大約80%的開發(fā)商希望具有所有目標(biāo)平臺的預(yù)覽工具;大約80%的開發(fā)商希望具有獨(dú)立的場景構(gòu)造工具;大約70%的開發(fā)商希望具有粒子系統(tǒng)編輯器;大約70%的開發(fā)商希望具有腳本支持功能。對于大多數(shù)游戲開發(fā)商而言,采用國外完全商業(yè)化運(yùn)作的游戲引擎的費(fèi)用過于昂貴,而采用開源游戲引擎是一個(gè)相對經(jīng)濟(jì)實(shí)惠、后續(xù)發(fā)展力強(qiáng)勁的選擇。因此,在了解了游戲引擎的整體狀況之后,我們來深入對比幾款著名的開源游戲引擎。1.8十大開源游戲引擎深入比較在國內(nèi)外,業(yè)界盛傳有十大開源游戲引擎,分別是OGRE、Irrlicht、Panda3D、CrystalSpace、jME、BlenderGameEngine、RealityFactory、TheNebulaDevice2、RealmForge、OpenScene-Graph。我們對這十款開源游戲引擎深入進(jìn)行分析。(1) OGRE是面向?qū)ο髨D形渲染引擎(Object-OrientedGraphicsRenderingEngine)的縮寫,采用C++開發(fā),以MIT許可證發(fā)布,可以在Windows、Linux、Mac上運(yùn)行。OGRE自己也說明本身不是游戲引擎。其主要特征如下:面向?qū)ο螅寮U(kuò)展架構(gòu),具有文檔支持。支持腳本??梢酝ㄟ^腳本管理材質(zhì)資產(chǎn)并進(jìn)行多路渲染。支持物理碰撞檢測。支持頂點(diǎn)燈光、像素?zé)艄?、燈光映射。支持陰影映射、三維陰影。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、立體投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持逆向運(yùn)動動畫、骨架動畫、變形動畫、混合動畫及姿態(tài)動畫。支持網(wǎng)格加載、皮膚、漸進(jìn)網(wǎng)格。支持環(huán)境映射、鏡頭眩光、公告牌、粒子、運(yùn)動模糊、天空、水、霧、絲帶軌跡、透明對象。支持XML文件轉(zhuǎn)換。引擎特性全面(),穩(wěn)定性好(),支持全面(),不容易上手和使用()。(2) Irrlicht采用C++開發(fā),以zlib/libpng許可證發(fā)布,可以在Windows、Linux、Mac、Solaris、FreeBSD、Xbox上運(yùn)行。Irrlicht自己也說明本身不是游戲引擎。其主要特征如下:面向?qū)ο?,插件擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建場景、燈光、GUI編輯器。支持物理碰撞檢測。支持頂點(diǎn)燈光、像素?zé)艄狻艄庥成?。支持陰影映射、三維陰影、模板緩沖區(qū)陰影。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、立體投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu),允許無縫集成室內(nèi)及室外場景。支持骨架動畫、變形動畫及混合動畫。支持網(wǎng)格加載。支持環(huán)境映射、公告牌、粒子、天空、水、霧。支持地形渲染。引擎特性全面(),穩(wěn)定性好(),支持全面(),容易上手和使用()。(3) Panda3D采用C++和Python開發(fā),以BSD許可證發(fā)布,可以在Windows、Linux、Mac、SunOS上使用。Panda3D是一個(gè)完整的游戲引擎。其主要特征如下:面向?qū)ο螅_本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建場景、粒子、關(guān)卡編輯器。支持物理碰撞檢測,可以用于運(yùn)動物體。支持頂點(diǎn)燈光、像素?zé)艄狻艄庥成?。支持陰影映射、三維陰影、模板緩沖區(qū)陰影。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、立體投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、公告牌、粒子、霧、火。支持地形渲染。支持“客戶端/服務(wù)器”網(wǎng)絡(luò)模式。支持2D、3D和流音效。支持有限狀態(tài)機(jī)、人工智能。引擎特性全面(),穩(wěn)定性很好(),支持很全面(),很容易上手和使用()。(4) CrystalSpace采用C++開發(fā),以LGPL許可證發(fā)布,可以在Windows、Linux、Mac上使用。CrystalSpace是一個(gè)完整的游戲引擎。其主要特征如下:面向?qū)ο?,組件擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建場景、燈光、GUI編輯器。支持物理碰撞檢測,可以用于運(yùn)動物體。支持頂點(diǎn)燈光、燈光映射。支持陰影映射、三維陰影。支持多紋理、多重材質(zhì)貼圖。支持頂點(diǎn)、像素著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫、變形動畫。支持網(wǎng)格加載、漸進(jìn)網(wǎng)格。支持環(huán)境映射、鏡頭眩光、公告牌、粒子、天空、鏡像。支持地形渲染。支持2D、3D音效。支持游戲世界管理。通過有限狀態(tài)機(jī)、行為樹、神經(jīng)網(wǎng)絡(luò)、遺傳算法支持人工智能。引擎特性很全面(),穩(wěn)定性好(),支持很全面(),不容易上手和使用()。(5) jME是jMonkeyEngine的縮寫,采用Java開發(fā),以BSD許可證發(fā)布,可以在Windows、Linux、Mac上使用。JME的目標(biāo)是提供一個(gè)Java語言3D游戲引擎,但業(yè)界目前也有人認(rèn)為jME還不是一個(gè)游戲引擎。其主要特征如下:面向?qū)ο?,插件擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建游戲世界編輯器。支持物理碰撞檢測。支持頂點(diǎn)燈光、燈光映射。支持三維陰影。支持多紋理、多重材質(zhì)貼圖。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、鏡頭眩光、公告牌、粒子、天空、水、火、爆炸、霧。支持地形渲染。支持3D音效。引擎特性全面(),穩(wěn)定性好(),支持很全面(),容易上手和使用()。(6) Blender游戲引擎是采用C++和Python開發(fā),以GPL許可證發(fā)布,可以在Windows、Linux、Mac、Solaris、FreeBSD、Irix上使用。Blender是一個(gè)完整的游戲引擎。其主要特征如下:面向?qū)ο?,插件及腳本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建工作流、GUI、數(shù)據(jù)庫、角色等編輯器。支持物理碰撞檢測,可以用于運(yùn)動物體。支持頂點(diǎn)燈光、像素?zé)艄?。支持陰影映射。支持多紋理、凹凸貼圖。支持頂點(diǎn)、像素著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持逆向運(yùn)動動畫、幀動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、粒子、天空、水、霧。支持地形渲染。支持“客戶端/服務(wù)器”網(wǎng)絡(luò)模式。支持2D及3D音效。通過腳本方式支持人工智能。引擎特性基本全面(),穩(wěn)定性基本不錯(cuò)(),支持全面(),不容易上手和使用()。(7) RealityFactory是采用C++開發(fā),以MIT許可證發(fā)布,可以在Windows上使用。RealityFactory自稱游戲無需編程。其主要特征如下:面向?qū)ο?,腳本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建幾何形體編輯器。支持物理碰撞檢測。支持頂點(diǎn)燈光、像素?zé)艄?、輻射燈光、三維燈光。支持陰影映射。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、投影。支持頂點(diǎn)、像素著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫及混合動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、公告牌、粒子、天空、水、火、爆炸、霧、貼花、天氣、鏡像。支持地形渲染。支持“客戶端/服務(wù)器”網(wǎng)絡(luò)模式。支持3D及流音效。通過路徑查找、決策及腳本方式支持人工智能。引擎特性基本全面(),穩(wěn)定性基本不錯(cuò)(),支持基本全面(),容易上手和使用()。(8) TheNebulaDevice2是采用C++開發(fā),以MIT許可證發(fā)布,可以在Windows、Linux上使用。NebulaDevice是一個(gè)完整的游戲引擎。其主要特征如下:面向?qū)ο?,插件及腳本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建幾何形體編輯器。支持物理碰撞檢測。支持頂點(diǎn)燈光、像素?zé)艄狻艄庥成洹⒐鉂捎成?。支持陰影映射。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫、變形動畫及混合動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、鏡頭眩光、公告牌、粒子、天空。支持地形渲染。支持“客戶端/服務(wù)器”、P2P網(wǎng)絡(luò)模式。支持2D、3D及流音效。通過腳本方式支持人工智能。引擎特性全面(),穩(wěn)定性好(),支持基本全面(),不容易上手和使用()。(9) RealmForge是采用C#在OGRE上開發(fā),以LGPL許可證發(fā)布,可以在Windows、Linux、Mac、Solaris、HP/UX、FreeBSD上使用。RealmForge是一個(gè)完整的游戲引擎,現(xiàn)在已經(jīng)轉(zhuǎn)入商業(yè)化運(yùn)作。其主要特征如下:面向?qū)ο?,插件及腳本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建游戲編輯器。支持物理碰撞檢測,可以用于運(yùn)動物體。支持頂點(diǎn)燈光、像素?zé)艄狻艄庥成?。支持陰影映射、投影面、立體投影。支持多紋理、凹凸貼圖、多重材質(zhì)貼圖、投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫、面部動畫及混合動畫。支持網(wǎng)格加載、皮膚及漸進(jìn)網(wǎng)格。支持環(huán)境映射、鏡頭眩光、公告牌、粒子、天空、水、火、爆炸、貼花、霧、天氣、鏡像。支持地形渲染。支持“客戶端/服務(wù)器”、P2P網(wǎng)絡(luò)、主控服務(wù)器模式。支持3D及流音效。通過路徑查找、決策、優(yōu)先狀態(tài)機(jī)、腳本、神經(jīng)網(wǎng)絡(luò)等方式支持人工智能。引擎特性全面(),穩(wěn)定性基本不錯(cuò)(),支持基本全面(),不容易上手和使用()。(10) OpenSceneGraph是采用C++開發(fā),以LGPL許可證發(fā)布,可以在Windows、Linux、Mac、Solaris、SunOS、FreeBSD、Irix、Playstation上使用。OpenSceneGraph是一個(gè)完整的游戲引擎。其主要特征如下:面向?qū)ο?,插件及腳本擴(kuò)展架構(gòu),具有文檔支持。支持內(nèi)建場景編輯器。支持物理碰撞檢測。支持頂點(diǎn)燈光、各向異性燈光。支持投影面、立體投影。支持多紋理、多重材質(zhì)貼圖、投影。支持頂點(diǎn)、像素、高級著色。支持場景管理,具有多種數(shù)據(jù)結(jié)構(gòu)。支持骨架動畫、幀動畫及混合動畫。支持網(wǎng)格加載及皮膚。支持環(huán)境映射、公告牌、粒子、鏡像。支持地形渲染。支持“客戶端/服務(wù)器”、P2P網(wǎng)絡(luò)、主控服務(wù)器模式。支持2D、3D及流音效。引擎特性全面(),穩(wěn)定性好(),支持還可以(),上手和使用比較難()。一般說來,選擇開源游戲引擎一定需要獲取源碼、好的文檔及開放式支持。穩(wěn)定性對于商業(yè)化運(yùn)作是一個(gè)雙刃劍,利于產(chǎn)品的開發(fā)運(yùn)營,但需要有效引入新的游戲技術(shù)革新。引擎涵蓋特性是一個(gè)積累過程,可以不斷添加和改進(jìn)。上手和使用性也反映了設(shè)計(jì)開發(fā)游戲引擎的團(tuán)隊(duì)的內(nèi)在價(jià)值取向以技術(shù)為主,還是以應(yīng)用為主。游戲開發(fā)商都希望研制、運(yùn)營一個(gè)萬眾矚目的游戲產(chǎn)品,但是,使用按照不同許可證發(fā)布的游戲引擎開發(fā)的游戲產(chǎn)品需要遵循相應(yīng)的知識產(chǎn)權(quán)法規(guī)。因此,游戲引擎的軟件許可證成為選擇時(shí)的一個(gè)極其重要的考慮因素。1.9開源游戲引擎許可證比較許可證是軟件作者對使用同一作品的其他人授予的特殊許可,表明作者仍然持有作品的原始版權(quán)或?qū)@?,并沒有放棄有關(guān)權(quán)利。如果是直接公開發(fā)布作品,意味著作者放棄了一切版權(quán),人們無需提及作品的原作者和貢獻(xiàn)者。如果逐一授權(quán),作者需要自行處理個(gè)人許可授權(quán)事務(wù)。開源許可證使得其他人無需尋求特別的許可就可以方便地為項(xiàng)目添磚加瓦,同時(shí)也保護(hù)了原創(chuàng)者的權(quán)利,確保作者至少可以因?yàn)樽约旱呢暙I(xiàn)而獲得贊譽(yù),同時(shí)防止其他人將作者的成果據(jù)為己有。上面討論的開源游戲引擎許可證主要有MIT、BSD、GPL、LGPL、Zlib/libpng,有關(guān)初創(chuàng)人、版本/年代、可鏈接其他許可證代碼、可變更許可證發(fā)布等內(nèi)容如表1.6所示。表1.6有關(guān)許可證鏈接、發(fā)布限定許可證初創(chuàng)人版本/年代可鏈接其他許可證代碼可變更許可證發(fā)布游戲引擎BSD加利福尼亞大學(xué)-可以可以Panda3D,jMEGPL自由軟件基金3.0/2007不可以不可以BlenderLGPL自由軟件基金3.0/2007可以不可以O(shè)penSceneGraphCrystalSpaceRealmForgeMIT麻省理工學(xué)院1988可以可以O(shè)GRE,RealityFactory,NebulaDeviceZlib/libpng--可以可以Irrlicht(1) BSD許可證在軟件傳播和使用過程中對版權(quán)限制非常少,基本上沒有約束,可以用于任何商業(yè)場合。實(shí)際上,BSD許可證強(qiáng)調(diào)的只是聲明一下“祖籍淵源”。因此,BSD許可證軟件使用最為廣泛。二版、新版BSD許可證模板主要強(qiáng)調(diào)以下權(quán)利:分發(fā)、使用未經(jīng)修改或修改后源碼時(shí),必須保留有關(guān)版權(quán)聲明和免責(zé)聲明。以二進(jìn)制形式再分發(fā)軟件時(shí),必須保留有關(guān)版權(quán)聲明和免責(zé)聲明。未經(jīng)許可,不得以軟件貢獻(xiàn)者的名字為軟件的衍生產(chǎn)品做代言。(2) GNUGPL是通用公共許可證(GeneralPublicLicense)的縮寫,是使用最廣泛的自由軟件許可證。GPL強(qiáng)調(diào)許可證使用時(shí)必須唯一且必須傳承,因?yàn)楹霌P(yáng)和恪守的是“自由軟件正本清源,代碼開放基業(yè)長青”的理念,也得到社會各界人士的積極支持。但是,在使用過程中必須開放自己的代碼,否則會陷入版權(quán)糾紛。這樣,雖然Blender是一個(gè)非常好的開源游戲引擎,但我們無法對后續(xù)創(chuàng)意進(jìn)行有效的商業(yè)化運(yùn)作。GPL堅(jiān)持軟件開放源代碼,但相關(guān)服務(wù)和支持可以收費(fèi)。最新版本GPL許可證模板主要強(qiáng)調(diào)以下權(quán)利:違反GPL授權(quán)的拷貝、分發(fā)、向公眾發(fā)布等傳播活動有可能直接或間接侵權(quán)。分發(fā)自由軟件時(shí),必須把自由傳遞給接受者,讓接受者明白具有獲取全部源代碼的權(quán)利并且能夠得到全部源代碼。自由軟件沒有任何擔(dān)保責(zé)任。軟件被修改過的版本必須明確標(biāo)示,從而避免它們的問題被錯(cuò)誤地歸咎于先前的版本。源代碼接受者可以通過任何媒介發(fā)布未被修改過的副本,但必須顯著地在每個(gè)副本上都發(fā)布一個(gè)合適的版權(quán)通告。必須完整保持所有授權(quán)通告、所有免責(zé)聲明,并為所有接受者提供GPL授權(quán)。修改源代碼必須明確標(biāo)示并給出日期,完整保持所有授權(quán)通告、所有免責(zé)聲明,為接口提供適當(dāng)法律通告,并且只能為所有接受者提供GPL授權(quán)。傳播目標(biāo)代碼時(shí),必須同時(shí)在有關(guān)場地、介質(zhì)中或以網(wǎng)絡(luò)等方式提供源代碼。如果只有可以獲取源代碼的書面承諾,不允許盈利。公開源代碼時(shí),不包括所調(diào)用的可分離的系統(tǒng)庫部分源代碼。允許附加條款,主要是免責(zé)聲明、法律通告、作者信息、禁止誤傳資料來源、修改的合理標(biāo)示方式、限制通過作者進(jìn)行商業(yè)代言及宣傳、保留合法商標(biāo)及標(biāo)記、接受者責(zé)任假設(shè)合同。違反GPL的行為將自動終止授權(quán),在一定時(shí)間內(nèi)修改后可以恢復(fù)授權(quán)。如果貢獻(xiàn)者需要申請專利,必須履行公開源代碼義務(wù)并允許自由修改(無專利版稅),否則就必須放棄盈利。更詳細(xì)的內(nèi)容可直接查閱有關(guān)許可證說明。(3) GNULGPL是寬通用公共許可證(GNULesserGeneralPublicLicense)的縮寫,在標(biāo)準(zhǔn)GPL基礎(chǔ)上重點(diǎn)對庫進(jìn)行授權(quán)。LGPL放寬了對軟件鏈接的限制,不再強(qiáng)調(diào)鏈接的“純潔”,可以進(jìn)行“雜交”。所謂庫是應(yīng)用程序通過接口調(diào)用,但不依賴這種調(diào)用的軟件集合。對庫中類的派生繼承也認(rèn)為是通過接口調(diào)用。庫和應(yīng)用程序構(gòu)成組合軟件,庫被稱為鏈接版本。最小源代碼取決于應(yīng)用而不是鏈接版本,不能孤立地考慮組合軟件的一部分。組合軟件的相應(yīng)應(yīng)用代碼包括應(yīng)用、輔助工具程序及源代碼,但不包括所調(diào)用的系統(tǒng)庫。最新版本LGPL許可證模板主要強(qiáng)調(diào)以下權(quán)利:庫的任何修改、傳播不會依賴于應(yīng)用提供的功能或數(shù)據(jù),否則,庫也必須無條件使用GPL許可證。應(yīng)用可以使用庫提供的頭文件,但如果不在數(shù)字參數(shù)、數(shù)據(jù)結(jié)構(gòu)布局、數(shù)據(jù)結(jié)構(gòu)訪問器、小型宏、內(nèi)聯(lián)函數(shù)及模板的限制之列,必須為每個(gè)副本提供所鏈接庫的通告。庫的鏈接授予LGPL許可,應(yīng)用程序授予GPL許可。組合軟件不能限制對庫的修改、調(diào)試、兼容式替換。(4) MIT許可證非常簡短,但也比較松散含混。在軟件傳播和使用過程中對版權(quán)限制非常少,基本上沒有約束,可以用于任何商業(yè)場合。同樣,MIT許可證強(qiáng)調(diào)的也只是聲明一下“祖籍淵源”。新版MIT許可證模板主要強(qiáng)調(diào)以下權(quán)利:免費(fèi)授予任何獲得軟件及相關(guān)文檔的人不受限制地使用、拷貝、修改、合并、出版、分發(fā)、再授權(quán)和/或出售軟件的拷貝。版權(quán)聲明和許可聲明必須包含在軟件包的全部拷貝或?qū)嵸|(zhì)性部分中。其實(shí),許可聲明大部分內(nèi)容是免責(zé)聲明。(5) Zlib/libpng許可證沒有特別要求提供源代碼。在軟件傳播和使用過程中對版權(quán)限制非常少,基本上沒有約束,可以用于任何商業(yè)場合。最新版本Zlib/libpng許可證
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集資房認(rèn)購權(quán)轉(zhuǎn)讓合同范本
- 企業(yè)經(jīng)營承包合同協(xié)議范本
- 果園承包合同模板大全
- 農(nóng)村土地買賣合同范本
- 學(xué)校租用轎車合同協(xié)議
- 購房擔(dān)保借款協(xié)議
- 培訓(xùn)機(jī)構(gòu)合作協(xié)議:合同樣本
- 農(nóng)業(yè)住宅轉(zhuǎn)讓協(xié)議書參考
- 工傷賠償協(xié)議書模板
- 2024合作共贏協(xié)議格式
- 管理學(xué)決策計(jì)算題
- 部編版四年級語文上冊專項(xiàng)復(fù)習(xí)課外閱讀專項(xiàng)
- 橫道圖施工進(jìn)度計(jì)劃
- 110kV大司線更換43#44#導(dǎo)地線及橫擔(dān)施工方案
- 新國標(biāo)電動汽車充電CAN報(bào)文協(xié)議解析
- abaqus-鋁合金A357切削加工有限元模擬
- 七年級一元一次方程經(jīng)典題型計(jì)算題100道
- 四川省教師考核工作登記表(空白)
- 魯教版六年級數(shù)學(xué)上冊最新期中試題及答案
- 中醫(yī)院重點(diǎn)??平ㄔO(shè)整改措施
- 華為公司經(jīng)銷商合作承諾書
評論
0/150
提交評論