• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}

            游戲引擎基礎(chǔ)(十一)(最后的章節(jié))

            11部份: 最后的章節(jié)


            前端
              你已經(jīng)看到了菜單系統(tǒng),你可能理解游戲內(nèi)的頭頂顯示(HUDs)時常是游戲經(jīng)歷中被忽視和誹謗的部分。最近,這個領(lǐng)域開始被給人印象非常深刻的Black and White所關(guān)注,這款游戲?qū)嶋H上沒有HUD。在Peter Molyneux經(jīng)歷了Dungeon Keeper以后,它在屏幕上大量的圖標(biāo),他決定游戲的大部分被這些圖標(biāo)占用了,主要的屏幕沒有被足夠利用。因此他決定廢除所有這些東西。Peter邁了大膽的一步,我們?yōu)槟愫炔省:懿恍遥@種方式適用于B&W這類風(fēng)格的游戲,但它并不總是對其他種類的游戲有用。

              大體而言HUDs應(yīng)該是不引人注意的,只提供你需要的關(guān)鍵信息;這本身會在設(shè)計團隊中引發(fā)爭議。Soldier of Fortune的最初設(shè)計在屏幕上有一個圖標(biāo),當(dāng)被擊中時向你準(zhǔn)確顯示身體的哪個部位被擊中。當(dāng)他們決定他們不準(zhǔn)備為不同身體部位的傷害而處罰玩家時,最后這個被丟棄了。在一些早期的Soldier of Fortune的屏幕截圖上,依然能夠在屏幕的右上角看見這個圖標(biāo)。

              在一個完美的世界中HUD是可配置的,因此你能決定顯示什么,在哪里顯示,顯示多久。如果你覺得不需要局部雷達,那么它應(yīng)當(dāng)可以被移除掉。任何顯示的HUD信息應(yīng)當(dāng)有一定程度的alpha(透明度),因此如果需要你能透過它們看見后面的事物。

              說到配置,我是一個游戲個人設(shè)定的十足的狂熱者。因為沒有即時存儲設(shè)備存儲配置文件,在游戲機游戲上不是廣泛地可以獲得配置,這足夠公平。但是隨著PS2Xbox硬盤驅(qū)動器的來臨,我期待在將來看見配置被更多地使用。能夠被定制的每件事物都應(yīng)當(dāng)這樣,如同我看見的一樣。很明顯,也應(yīng)當(dāng)為每件事物提供合理的缺省配置,因此玩家不必一屏一屏地進行枯燥的選擇過程---一會兒我們將更多地討論這個---玩家應(yīng)當(dāng)能夠根據(jù)個人的喜好和可獲得的計算能力定制游戲經(jīng)歷。

              回到缺省事物,保持必需的修改最小化非常重要。作出最少的決定而快速進入游戲總是一件好事情。Mortal Kombat,甚至QuakeIII都有一個非常快速的游戲進入系統(tǒng)。少許選擇,然后你就進入游戲了。這并不意味著你不能有一個接一個的菜單允許你改變每件事物,但它們不應(yīng)當(dāng)是必需的且應(yīng)當(dāng)已經(jīng)有合理的缺省設(shè)置了。如果甚至在你進入游戲以前你必須用14個屏幕設(shè)置一個角色,可能是第一次你可能沒有關(guān)于你正在選擇的線索而且僅僅會做任何事情以通過屏幕,可能做了一些會極大影響初始游戲體驗的事情。而且有可能它將會是不利的影響,作為一個游戲程序員/設(shè)計者,我在這里告訴你無論你做任何事情,讓玩家第一次選擇一些愚蠢的事物,無需讓它更糟糕你就會有足夠的機會制造很差的第一印象。

              藉由關(guān)于配置和HUDs(連同前面十個章節(jié)的大量信息)的簡要論述,我們最終結(jié)束了關(guān)于現(xiàn)代游戲引擎的主要建造元素的討論。當(dāng)然,依賴于游戲的類型和誰在制作它們,每個特定的游戲?qū)@個清單有它自己的添加(或者減少)。然而,有一些對于游戲引擎實際上不是引擎設(shè)計部分的其他元素,但是它們卻需要一些關(guān)注。


            游戲引擎許可與組件
              如今如果你要制作一款游戲,時常最快的開始方式就是購買現(xiàn)有的游戲引擎許可證并在此基礎(chǔ)上開發(fā)---這就是Raven所做的事情,最近使用Quake3引擎編寫了Star Trek Elite ForceHalf Life基于Quake 1引擎,Deus Ex基于Unreal,這個清單還在繼續(xù)。如今有兩種許可證方式---一個完全的游戲引擎(或游戲操作系統(tǒng)如Jason Hall授予LithTech),或者一組給定問題的部分解決方案。這方面一個好的例子會是RenderWare,這是一個渲染場景的部分解決方案并給你提供一些物理。你不能僅僅拍著一些模型并把它們稱為完成了的游戲---還需要有聲音系統(tǒng),游戲機制,等等。但它確實給了你一個建立游戲的堅實基礎(chǔ)。還記得我在渲染和物理學(xué)章節(jié)提到的所有數(shù)學(xué)知識嗎?很好,這樣你就避免了所有那些東西。

              藉由LithTechUnrealQuake,你確實得到了完全的解決方案 -- 或至少是創(chuàng)始者為他們的游戲所需要的全部解決方案。記住QuakeIII是可以多人玩的,不時建立在單人游戲的基礎(chǔ)之上的比如說Unreal Tournament。使用QuakeIII,你失去了單人游戲需用的某些系統(tǒng),像讀取/存儲,腳本等等。你只是的到了Id公司制作一款游戲需要的東西,而不一定就是你所需要的東西。有時侯如果系統(tǒng)的一個局限恰好是你所需要的東西時,這可能是一個真正的缺點。給Star Trek Voyager加入讀取/存儲和腳本:Elite Force不是野餐,但是必須的。然而,使用Quake3引擎依然是領(lǐng)先的開端。

              Unreal有名的Tim Sweeney 對于今天一些流行的預(yù)先打包的游戲引擎解決方案有一些評論。

              "我認(rèn)為我能公平地比較游戲引擎 (QuakeUnreal) 和游戲組件如 RenderWare Karma。游戲引擎是包含游戲開發(fā)的所有技術(shù)方面的組織嚴(yán)密的框架:渲染,編輯工具,物理學(xué),人工智能,網(wǎng)絡(luò),等等。

              它們針對那些想要一個完全的,現(xiàn)成的解決方案的開發(fā)者,以便他們能夠把精力集中在游戲可玩性和內(nèi)容上。像RenderWare這樣的游戲組件針對那些正在開發(fā)他們自己的技術(shù)但不想在一些已經(jīng)很完善的技術(shù)領(lǐng)域做重復(fù)開發(fā)的開發(fā)者。

              游戲引擎有解決游戲開發(fā)中全部技術(shù)問題的優(yōu)點,有容易把一些包括游戲類型的假設(shè)建立在里面的缺點。舉例來說,Unreal已經(jīng)被用來制作第一人稱射擊游戲,第三人稱動作游戲,角色扮演游戲,甚至彈球游戲。但是沒有人用它制作飛行模擬類游戲它不是適合這種游戲的技術(shù)。游戲引擎帶著完整的源代碼而來,這是祝福 ( 你能完全看見內(nèi)部正在發(fā)生什么,你可以自由地根據(jù)你的需要擴充它),也是詛咒 (如果你改變它,你將必須把變化合并進新的版本之內(nèi))

              游戲組件有解決所關(guān)注領(lǐng)域的技術(shù)問題的優(yōu)點,如渲染或者物理學(xué),不用花費大量的時間在這方面就可以比典型的開發(fā)者做得更好。他們的缺點是把這些組件整合進你的引擎其余部分就是你自己的事情了,這有時候會相當(dāng)復(fù)雜。游戲組件一般沒有完整的源代碼伴隨,因此并不總是很清楚他們內(nèi)部做了些什么。"

              謝謝Tim,很精妙的分析。


            建立你自己的游戲引擎?
              你可能建立自己的引擎而不是購買許可證。這避免了誰擁有什么,版稅等所有的法律糾紛,而且如果你產(chǎn)出了質(zhì)量足夠好的東西,你甚至能夠向別人出售許可證。然而,正如已經(jīng)指出的那樣,這需要時間和金錢來完成,更不用說絕對優(yōu)秀的程序員了。LithTech 已經(jīng)發(fā)展了很多年,與Unreal類似。很有趣,主要是因為變化的硬件和API版本,實際上Unreal最初的版本花費了四年時間才完成。當(dāng)他們剛開始的時候,軟件渲染是唯一的游戲。當(dāng)開發(fā)正在繼續(xù)的時候,3dfx帶來了Glide,然后是NvidiaTNT顯卡(從那時起硬件和APIs確實有了更多的進步)。這就是它為何支持這么多不同的渲染途徑的原因。當(dāng)然在一個相同的引擎內(nèi)支持所有這些是一場編碼惡夢,但那是另外的事。每個引擎有模塊化的方式, 并且當(dāng)一個模塊---比如說,腳本---變得過時了或者需求變化了,你只需要把它抽出來并開始做一個新的模塊。

              Quake引擎經(jīng)歷時間有更加完整的進化發(fā)展。相應(yīng)于Id公司下一個游戲的一組需求,當(dāng)John Carmack創(chuàng)造了在當(dāng)時的硬件上運行最快的東西時,引擎的每個版本都經(jīng)過了完全的重寫。QuakeII完全重寫了不少于四次,我個人看到了QuakeIII的機器人代碼的三個不同的版本。其他的開發(fā)者也沒有能夠避免這種情形。John Scott,建造了Soldier of Fortune II的地表系統(tǒng),曾對我提到,在動態(tài)地表生成上他曾嘗試了許多方法讓物理學(xué)正確地工作。

              建造技術(shù)或者完整的引擎不是件容易的事情。當(dāng)今的游戲引擎需要許多,許多的系統(tǒng),就如同許多人們嘗試創(chuàng)造下一個大的引擎時所發(fā)現(xiàn)的那樣,從屏幕上文本的簡單顯示到高級人工智能。并且如我前面提到的,不斷發(fā)展的新技術(shù)使得建造一個快速,高效的引擎是一個變化的目標(biāo)。事實上,我見到有人僅僅為了讓一個帶alpha的紋理正確地顯示而在PS2的混合模式上花了四天時間。

              值得考慮的其他引擎有Garage GamesTribes 2引擎---被稱為The Torque Game Engine。我的理解是它可以收取微小數(shù)量的許可費用,將來有一些版稅協(xié)議。這是的確值得考慮的事情。你可以在這里看到這個引擎的特征細(xì)節(jié)http://www.garagegames.com/index.php?sec=mg&mod=v12&page=features 然后就是Serious Sam 引擎。這也是需要許可證的,的確值得看一看。如果你對它有興趣的話,可以聯(lián)系God Games---他們應(yīng)當(dāng)可以給你指明正確的方向。

              在網(wǎng)絡(luò)上有一些你可以下載的自由引擎---首先想到的是Crystal Space引擎。你可以從這里下載http://sourceforge.net/projects/crystal ,并在你的游戲中隨意使用。這不是一個專業(yè)的引擎,但看看所有的部分如何結(jié)合在一起時常是一個好的學(xué)習(xí)經(jīng)歷。

              還有就是最初的Quake Engine,現(xiàn)在已經(jīng)被Id公司開放源代碼。對于任何有抱負(fù)的游戲程序員來說這是一個很好的開端----下載它,編譯,開始調(diào)整。值得記住的是,這個擎是許多年以前的了,與Quake III或者新的Doom沒有多少相似性。重復(fù)一遍,它確實是個好的開始。你能從這里找到發(fā)現(xiàn)好的資源網(wǎng)頁http://www.inside3d.com/qip/home.shtml

              確實,這一切都是時間與金錢的事情。如果你沒有時間開發(fā)一個新的引擎,就不要介意花錢使用第三方的引擎,去購買一個吧。注意,對于要求使用他們引擎的團隊,如今大多數(shù)引擎許可團體有很合理的途徑。盡可能地讓許多人們使用他們的技術(shù),因此這種經(jīng)驗變成了工業(yè)標(biāo)準(zhǔn),這對他們有好處。


            ‘Mod’
            社區(qū)
              看一眼任何在線游戲服務(wù)器的統(tǒng)計數(shù)字,顯示出Counter Strike服務(wù)器比任何其他游戲服務(wù)器都要多。和它最近的競爭者(Quake III或者Unreal Tournament)相比,幾乎有兩倍的CS服務(wù)器。

              游戲 mods 全部來自于一些編輯程序,這些程序讓游戲者能夠修改DOOM最初的.WAD文件,提供他們自己自家制造的關(guān)卡設(shè)計和紋理。人們開始玩這些(大致)自家建造的工具,并且也發(fā)現(xiàn)了他們可以產(chǎn)生其他人想玩的關(guān)卡。Id注意了這個趨勢,而且將Quake系列引擎帶到了一個新的階段,這樣設(shè)計游戲,使得游戲是用戶可修改的。他們甚至發(fā)布他們自己的設(shè)計工具,指令,而且甚至---喘口氣---游戲中的代碼,如此有抱負(fù)的游戲程序員可以在Quake Universe中玩。你可能從這個創(chuàng)造出自己版本的Quake連線經(jīng)歷。許多今天的業(yè)內(nèi)大師來自這種早期的修改經(jīng)驗。現(xiàn)在有名的設(shè)計者如LevelLordCliffyB在這個行業(yè)中就是這樣開始的。最高的榮譽來自一位名叫ZOID的紳士,他提出了3Wave CTF,第一個奪取旗幟的游戲,游戲中需要人們組隊---連線游戲從純粹的死亡競賽以來的第一次進化發(fā)展。

              一些游戲是如此的流行以致于他們每年都有事件發(fā)生。比如說,Quake有一個QuakeCon,在Mesquite TexasId軟件公司所在地,舉行的一年一次的quake大會。人們帶著他們的PC來到這里,或為了看最新的mods或是展示的基于Quake引擎的游戲。

              如今你制作的任何游戲需要或者有殺人者可多人玩的經(jīng)驗,或者有可以非常容易修改的內(nèi)容這樣連線修改者能利用你的游戲并制作出其他游戲來。這一切延長了你游戲的生命,有希望賣出更多,人們購買它,可以下載mods來玩最新的Quake III修改版本:The Teachers Strike Back。但你不能僅僅生產(chǎn)一款游戲,發(fā)布你的工具,就袖手旁觀。實際上你最初必須把代碼設(shè)計成不需要程序員就可以容易地擴充, …好吧, … John Carmack

              作為一個開發(fā)者,你需要在那里可以見得到,并為那些在家中想利用你的游戲和用它做點別的什么的人們提供經(jīng)驗和幫助。這種支持可以有許多形式----一個親切友好的詞語,一段代碼,建議,宣傳或只是金錢。只要有這個它時常不介意采用何種形式。

              在這里你選擇哪個第三方工具用來建造內(nèi)容可能是至關(guān)重要的。在Raven,過去我們已經(jīng)做了一些開發(fā)決定,在這方面沒有什么幫助,由于我們?yōu)榇蠖鄶?shù)的建模和所有的動畫需求使用了SoftImage。雖然它是制作我們需要的動畫的最好工具,對于家庭業(yè)余愛好者來說它太過昂貴了。這就給那些家庭業(yè)余愛好者在擴充我們制作的內(nèi)容時帶來了問題,因此他們?nèi)菀讙仐壩覀冝D(zhuǎn)而尋求那些比較容易制作內(nèi)容的游戲。在建造或者選擇一個引擎時這確實是值得留意的事情。為了響應(yīng)制作游戲modsDiscreet在市場上發(fā)布了一個3D Studio Max‘lite’版本,稱為gmax。最好的是,它是免費的。如果你想要試一試,你能從這里抓取它http://www.discreet.com/products/gmax/gmaxconsumer/index.html

              最后在線游戲的成功時常能追蹤到 mod 社區(qū),因此我認(rèn)為感謝他們做了件好的工作是公平的。我過去時常說,在行業(yè)中到達一個真正的工作最快的方式是從一個mod開始,說明你有完成它的訓(xùn)練并用它作為一個面試獲得者。不能說,"我能做這個" 就像已經(jīng)完成了一樣。因此去到那里并開始吧。你損失什么了嗎?


            有關(guān)作者
              Jake Simpson 是一個游戲程序員,斷斷續(xù)續(xù)在這個行業(yè)已經(jīng)有大約20 年了。他在英國本土從15歲開始,在C64的時代,Sinclair Spectrums BBC Micros,經(jīng)歷了 Amiga ST,離開了一段時間,然后90年代中期至后期在Mideay Games寫街機游戲。他最近在Raven Software工作過,制作有Soldier of Fortune Heretic Hexen Star Trek : Voyager : Elite force Jedi Knight II : Outcast,在北加州的Maxis可以找到他,為Will Wright的游戲產(chǎn)品工作。業(yè)余時間他為GameBoy ColorAdvance編寫代碼,因為你能盡可能地遠(yuǎn)離C++編碼,而且,如同John Carmack所說,底層編程對程序員的靈魂有好處

            posted on 2007-12-04 13:31 夢在天涯 閱讀(4780) 評論(1)  編輯 收藏 引用 所屬分類: Game/OpenGL

            評論

            # re: 游戲引擎基礎(chǔ)(十一)(最后的章節(jié)) 2008-02-12 06:24 迪克拉

            翻譯的么?有打包么?  回復(fù)  更多評論   

            公告

            EMail:itech001#126.com

            導(dǎo)航

            統(tǒng)計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1804159
            • 排名 - 5

            最新評論

            閱讀排行榜

            大美女久久久久久j久久| 久久国产一片免费观看| 欧美午夜精品久久久久免费视| 嫩草影院久久国产精品| 国内精品久久久久影院日本| 久久午夜福利无码1000合集| 精品综合久久久久久97| 狠狠88综合久久久久综合网| 丁香五月综合久久激情| 伊人久久大香线蕉无码麻豆| 精品国产乱码久久久久久呢| 72种姿势欧美久久久久大黄蕉| 免费一级欧美大片久久网| 亚洲精品无码专区久久同性男| 久久久精品人妻一区二区三区四| 国产亚洲精午夜久久久久久| 久久精品国产亚洲av瑜伽| 久久精品国产亚洲AV久| 一本色道久久88加勒比—综合| 久久亚洲国产精品成人AV秋霞| 99久久人人爽亚洲精品美女| 日韩亚洲国产综合久久久| 婷婷久久综合九色综合九七| 久久天天躁狠狠躁夜夜avapp | 久久综合成人网| 国产亚洲精久久久久久无码| 狠狠人妻久久久久久综合蜜桃| 久久国产热精品波多野结衣AV| 日产精品久久久久久久| 99久久免费国产精品热| 久久久久亚洲国产| 爱做久久久久久| 999久久久免费精品国产| 成人综合久久精品色婷婷| 91久久国产视频| 国产成人精品久久二区二区| 色青青草原桃花久久综合| 久久精品国产72国产精福利| 99久久久国产精品免费无卡顿| 国产精品久久久久久搜索| 2021国产精品久久精品|