- 游戲引擎原理與實(shí)踐·卷1:基礎(chǔ)框架
- 程東哲
- 1715字
- 2020-02-28 19:10:57
1.1 什么是游戲引擎
什么是游戲引擎?其實(shí)這很難給出明確的定義。在很多游戲的宣傳中,我們會聽到對游戲引擎的推崇。絢麗的特效,流暢的體驗(yàn),似乎都是游戲引擎的功勞。在游戲玩家看來,游戲畫面的表現(xiàn)力越好,游戲場面的震撼程度越大,游戲體驗(yàn)的真實(shí)感越強(qiáng),底層的游戲引擎就可能越強(qiáng)大。
看看業(yè)界給出的一些定義。
游戲引擎是指一些已編寫好的可編輯計(jì)算機(jī)游戲系統(tǒng)或者一些交互式實(shí)時(shí)圖像應(yīng)用程序的核心組件。這些系統(tǒng)為游戲設(shè)計(jì)者提供編寫游戲所需的各種工具,其目的在于讓游戲設(shè)計(jì)者能容易和快速地寫出游戲程序而不用從零開始。大部分游戲引擎支持多種操作平臺,如Linux、Mac OS X、Windows。游戲引擎包含渲染引擎(即“渲染器”,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統(tǒng)、音效引擎、腳本引擎、電腦動畫引擎、人工智能引擎、網(wǎng)絡(luò)引擎以及場景管理引擎。
根據(jù)上述定義,在很多人看來,游戲引擎負(fù)責(zé)把很多已有的零部件組裝起來,如同組裝手機(jī),CPU、屏幕、攝像頭、主板等都是別人生產(chǎn)的,手機(jī)廠商按照自己喜歡樣式組裝一下就好了。
下面再看看Game Engine Architecture(中文書名《游戲引擎架構(gòu)》)是怎么說的:
通常,游戲和其引擎之間的分界線是很模糊的。一些引擎有相當(dāng)清晰的劃分,一些則沒有嘗試把二者分開。在一款游戲中,渲染代碼可能特別“知悉”如何畫一只妖獸(Orc);在另一款游戲中,渲染引擎可能只提供多用途的材質(zhì)及著色功能,“妖獸”可能完全是用數(shù)據(jù)去定義的。沒有工作室可以完美地劃分游戲和引擎。這不難理解,因?yàn)殡S著游戲設(shè)計(jì)的逐漸成形,這兩個(gè)組件的定義會經(jīng)常轉(zhuǎn)移。
似乎游戲界引擎專家也無法真正給引擎下一個(gè)明確定義,雖然大家都知道什么是游戲引擎,卻很難用三言兩語把它表述出來。本節(jié)嘗試用比喻的方式把它講清楚。
假設(shè)我們穿越回20世紀(jì)80年代,我們的手中已經(jīng)有整套的FC游戲《超級馬里奧》[見圖1.1(a)]的代碼,現(xiàn)在我們要開發(fā)另一款FC游戲《冒險(xiǎn)島》[見圖1.1(b)]。此時(shí)我們需要從零開始嗎?顯然,這兩款游戲有著太多共性,都是一個(gè)游戲角色在橫板卷動的地圖上蹦來蹦去,都可以踩死怪物。當(dāng)然,也有不同,畫面不同,聲音不同,關(guān)卡不同……但對于共同的功能,聰明的我們當(dāng)然會重用一些現(xiàn)成的代碼。而這種橫板卷軸游戲模板的通用性非常好,目前游戲界對它的需求量也非常大,所以我們決定把這種特定類型游戲的核心功能提煉出來,供那些也要開發(fā)這種游戲的人使用。

(a)

(b)
圖1.1 《超級馬里奧》與《冒險(xiǎn)島》游戲畫面
后來,蹦蹦跳跳的游戲逐漸沒落,即時(shí)戰(zhàn)略游戲開始興起,有人要開發(fā)即時(shí)戰(zhàn)略游戲《紅色警界》(如圖1.2所示)。

圖1.2 《紅色警界》游戲畫面
雖然游戲模板的代碼能渲染2D動畫、播放聲音、處理鼠標(biāo)鍵盤的按鍵響應(yīng),但無法用于即時(shí)戰(zhàn)略游戲。因?yàn)橥婕覀兿胍氖嵌嗳寺?lián)網(wǎng),這就要求程序能夠處理大量同屏2D動畫,能夠快速編輯適應(yīng)即時(shí)游戲的關(guān)卡,能夠運(yùn)行無法與玩家和平相處的AI,甚至能夠讓游戲運(yùn)行在不同的地方,比如PS1和PC。可是原有的游戲模板根本做不到這些。
直到有一天,卡馬克設(shè)計(jì)了一款叫《DOOM》(中文名《毀滅戰(zhàn)士》)的游戲(如圖1.3所示),這簡直就是PC(DOS系統(tǒng))游戲史的一個(gè)里程碑。這款游戲漂亮的3D畫面,讓很多游戲愛好者在計(jì)算機(jī)前面“火拼”。

圖1.3 《DOOM》游戲畫面
卡馬克又寫出了全3D的游戲《QUAKE》,而且支持當(dāng)時(shí)最強(qiáng)大的3D加速卡,人們再次被震驚了。崇拜卡馬克的人們用《QUAKE》的代碼制作了新的射擊游戲——《Counter-Strike》,也就是家喻戶曉的CS。《QUAKE》的動畫、渲染的程序也被拿來繼續(xù)開發(fā)其他游戲。
故事總歸是故事,但對于《冒險(xiǎn)島》來說,被復(fù)用的那部分《超級馬里奧》代碼其實(shí)就是最早的游戲引擎。不過它的技術(shù)沒那么先進(jìn),功能也不甚強(qiáng)大,還缺乏順應(yīng)潮流的更新,以致最終銷聲匿跡了。但卡馬克的代碼則不同,它超越了當(dāng)時(shí)人們的想象力。他不但為射擊游戲制定了完整方案,而且實(shí)現(xiàn)的代碼功能強(qiáng)大。其高度的復(fù)雜性和健壯性,甚至讓很多人樂于用其中的某些模塊去開發(fā)非射擊類的游戲,結(jié)果不但節(jié)省開發(fā)時(shí)間而且游戲健壯性也不錯(cuò)。這幾乎是一部簡短的游戲引擎發(fā)展史。
我們?yōu)槭裁匆绱诵量嗟靥接懸娴亩x?每個(gè)人心中都有自己的哈姆雷特,對錯(cuò)已經(jīng)沒那么重要。開發(fā)屬于我們自己的游戲,了解哪個(gè)引擎更強(qiáng)大以及什么引擎更適合,才是研究游戲引擎的真正意義所在。
- Excel 2019公式與函數(shù)應(yīng)用大全(視頻教學(xué)版)
- 善用圖表:一看就懂的商業(yè)數(shù)據(jù)表達(dá)術(shù)
- Getting Started with Simulink
- Hands-On G Suite for Administrators
- 我的世界:Minecraft模組開發(fā)指南
- Excel+PPT+Word+PS+短視頻剪輯+PDF+思維導(dǎo)圖+居家辦公+辦公設(shè)備9合1
- 精通Excel數(shù)據(jù)統(tǒng)計(jì)與分析
- 巧學(xué)巧用Excel函數(shù):掌握核心技能,秒變數(shù)據(jù)分析高手
- 新編Word/Excel/PPT商務(wù)辦公應(yīng)用大全(2016實(shí)戰(zhàn)精華版)
- Project 2007企業(yè)項(xiàng)目管理實(shí)踐
- 新編電腦辦公(Windows 7 + Office 2016版)從入門到精通
- Word/Excel/PowerPoint 2007三合一辦公應(yīng)用實(shí)戰(zhàn)從入門到精通
- 極簡辦公:職場Word基礎(chǔ)課
- Word-Excel- PPT 2016入門與提高
- Office 2010辦公高級應(yīng)用(慕課版)