遊戲引擎剖析(十一)

來源:互聯網
上載者:User
原文作者:Jake Simpson
譯者: 向海

第11部份: 最後的章節

前端
  你已經看到了菜單系統,你可能理解遊戲內的頭頂顯示(HUDs)時常是遊戲經曆中被忽視和誹謗的部分。最近,這個領域開始被給人印象非常深刻的Black and White所關注,這款遊戲實際上沒有HUD。在Peter Molyneux經曆了Dungeon Keeper以後,它在螢幕上大量的表徵圖,他決定遊戲的大部分被這些表徵圖佔用了,主要的螢幕沒有被足夠利用。因此他決定廢除所有這些東西。Peter邁了大膽的一步,我們為你喝彩。很不幸,這種方式適用於B&W這類風格的遊戲,但它並不總是對其他種類的遊戲有用。

  大體而言HUDs應該是不引人注意的,只提供你需要的關鍵資訊;這本身會在設計團隊中引發爭議。Soldier of Fortune的最初設計在螢幕上有一個表徵圖,當被擊中時向你準確顯示身體的哪個部位被擊中。當他們決定他們不準備為不同身體部位的傷害而處罰玩家時,最後這個被丟棄了。在一些早期的Soldier of Fortune的螢幕上,依然能夠在螢幕的右上方看見這個表徵圖。

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

  說到配置,我是一個遊戲個人設定的十足的狂熱者。因為沒有即時存放裝置儲存設定檔,在遊戲機遊戲上不是廣泛地可以獲得配置,這足夠公平。但是隨著PS2和Xbox硬碟的來臨,我期待在將來看見配置被更多地使用。能夠被定製的每件事物都應當這樣,如同我看見的一樣。很明顯,也應當為每件事物提供合理的預設配置,因此玩家不必一屏一屏地進行枯燥的選擇過程---一會兒我們將更多地討論這個---玩家應當能夠根據個人的喜好和可獲得的計算能力定製遊戲經曆。

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

  藉由關於配置和HUDs(連同前面十個章節的大量資訊)的簡要論述,我們最終結束了關於現代遊戲引擎的主要建造元素的討論。當然,依賴於遊戲的類型和誰在製作它們,每個特定的遊戲對這個清單有它自己的添加(或者減少)。然而,有一些對於遊戲引擎實際上不是引擎設計部分的其他元素,但是它們卻需要一些關注。

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

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

  Unreal有名的Tim Sweeney 對於今天一些流行的預先打包的遊戲引擎解決方案有一些評論。

  "我認為我能公平地比較遊戲引擎 (Quake,Unreal等) 和遊戲組件如 RenderWare 和 Karma。遊戲引擎是包含遊戲開發的所有技術方面的組織嚴密的架構:渲染,編輯工具,物理學,人工智慧,網路,等等。

  它們針對那些想要一個完全的,現成的解決方案的開發人員,以便他們能夠把精力集中在遊戲可玩性和內容上。像RenderWare這樣的遊戲組件針對那些正在開發他們自己的技術但不想在一些已經很完善的技術領域做重複開發的開發人員。

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

  遊戲組件有解決所關注領域的技術問題的優點,如渲染或者物理學,不用花費大量的時間在這方面就可以比典型的開發人員做得更好。他們的缺點是把這些組件整合進你的引擎其餘部分就是你自己的事情了,這有時候會相當複雜。遊戲組件一般沒有完整的原始碼伴隨,因此並不總是很清楚他們內部做了些什麼。"

  謝謝Tim,很精妙的分析。

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

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

  建造技術或者完整的引擎不是件容易的事情。當今的遊戲引擎需要許多,許多的系統,就如同許多人們嘗試創造‘下一個大的引擎’時所發現的那樣,從螢幕上文本的簡單顯示到進階人工智慧。並且如我前面提到的,不斷髮展的新技術使得建造一個快速,高效的引擎是一個變化的目標。事實上,我見到有人僅僅為了讓一個帶alpha的紋理正確地顯示而在PS2的混合模式上花了四天時間。

  值得考慮的其他引擎有Garage Games的Tribes 2引擎---被稱為The Torque Game Engine。我的理解是它可以收取微小數量的許可費用,將來有一些版稅協議。這是的確值得考慮的事情。你可以在這裡看到這個引擎的特徵細節http://www.garagegames.com/index.php?sec=mg&mod=v12&page=features 。 然後就是Serious Sam 引擎。這也是需要許可證的,的確值得看一看。如果你對它有興趣的話,可以聯絡God Games---他們應當可以給你指明正確的方向。

  在網路上有一些你可以下載的自由引擎---首先想到的是Crystal Space引擎。你可以從這裡下載http://sourceforge.net/projects/crystal ,並在你的遊戲中隨意使用。這不是一個專業的引擎,但看看所有的部分如何結合在一起時常是一個好的學習經曆。

  還有就是最初的Quake Engine,現在已經被Id公司開放原始碼。對於任何有抱負的遊戲程式員來說這是一個很好的開端----下載它,編譯,開始調整。值得記住的是,這個擎是許多年以前的了,與Quake III或者新的Doom沒有多少相似性。重複一遍,它確實是個好的開始。你能從這裡找到發現好的資源網頁http://www.inside3d.com/qip/home.shtml 。

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

‘Mod’社區
  看一眼任何線上遊戲伺服器的統計數字,顯示出Counter Strike伺服器比任何其他遊戲伺服器都要多。和它最近的競爭者(Quake III或者Unreal Tournament)相比,幾乎有兩倍的CS伺服器。

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

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

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

  作為一個開發人員,你需要在那裡可以見得到,並為那些在家中想利用你的遊戲和用它做點別的什麼的人們提供經驗和協助。這種支援可以有許多形式----一個親切友好的詞語,一段代碼,建議,宣傳或只是金錢。只要有這個它時常不介意採用何種形式。

  在這裡你選擇哪個第三方工具用來建造內容可能是至關重要的。在Raven,過去我們已經做了一些開發決定,在這方面沒有什麼協助,由於我們為大多數的建模和所有的動畫需求使用了SoftImage。雖然它是製作我們需要的動畫的最好工具,對於家庭業餘愛好者來說它太過昂貴了。這就給那些家庭業餘愛好者在擴充我們製作的內容時帶來了問題,因此他們容易拋棄我們轉而尋求那些比較容易製作內容的遊戲。在建造或者選擇一個引擎時這確實是值得留意的事情。為了響應製作遊戲mods,Discreet在市場上發布了一個3D Studio Max的‘lite’版本,稱為gmax。最好的是,它是免費的。如果你想要試一試,你能從這裡抓取它http://www.discreet.com/products/gmax/gmaxconsumer/index.html 。

  最後線上遊戲的成功時常能追蹤到 mod 社區,因此我認為感謝他們做了件好的工作是公平的。我過去時常說,在行業中到達一個‘真正的’工作最快的方式是從一個mod開始,說明你有完成它的訓練並用它作為一個面試獲得者。不能說,"我能做這個" 就像已經完成了一樣。因此去到那裡並開始吧。你損失什麼了嗎?

有關作者
  Jake Simpson 是一個遊戲程式員,斷斷續續在這個行業已經有大約20 年了。他在英國本土從15歲開始,在C64的時代,Sinclair Spectrums和 BBC Micros,經曆了 Amiga 和ST,離開了一段時間,然後90年代中期至後期在Mideay Games寫街機遊戲。他最近在Raven Software工作過,製作有Soldier of Fortune, Heretic, Hexen, Star Trek : Voyager : Elite force 和 Jedi Knight II : Outcast,在北加州的Maxis可以找到他,為Will Wright的遊戲產品工作。業餘時間他為GameBoy Color和Advance編寫代碼,因為“你能儘可能地遠離C++編碼,而且,如同John Carmack所說,底層編程對程式員的靈魂有好處”。

(全文完) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.