电竞比分网-中国电竞赛事及体育赛事平台

分享

游戲引擎全剖析(四)

 太陽早 2008-01-15
 
人工智能(AI)
   我們上面已經用了其他九個章節(jié)介紹了游戲引擎,現在讓我們深入到非常有趣和重要的人工智能主題。人工智能如今正在變成被談論得最多的僅次于游戲引擎渲染能力的游戲開發(fā)領域之一,確實如此。直到大約兩年半以前,游戲似乎主要是在考慮你能夠渲染多少個多邊形,眼睛是多么的漂亮,和… 好…勞拉的胸部是多么的有彈性...既然我們現在已經能夠渲染出非常真實的乳房,中心就開始轉移到我們實際上用那些多邊形做什么了(即玩游戲)。因為它給你提供實際玩游戲的刺激作用和參與游戲世界中正在進行的事情,所以人工智能在這個領域非常關鍵。

   人工智能包括了全部的東西,從在Tetris中決定哪一塊新磚頭掉落(這很大程度上知識一個隨即數產生器), 一直到創(chuàng)造基于小組的策略游戲,這些游戲和你交互,并且實際上在你玩的時候向你學習。人工智能包含了許多規(guī)則,如果你(作為一個游戲開發(fā)者)沒有花費足夠多的時間讓它正確地工作,它會反過來在你屁股上咬一口。所以讓我們談論一些哪些規(guī)則?這樣你能更好地理解人工智能系統(tǒng)會確實是多么的復雜。為了避免法律上的糾紛,我們將使用一個假設的游戲而不是一個真實的游戲作為例子。

   假設我們的游戲中有壞份子生活在3D世界中,干著他們的事情,而且如果你打攪了他們的正常次序他們就會反抗你(玩家)。你必須決定的第一件事情就是他們正在從事的到底是什么事情呢?他們正在守衛(wèi)什么東西嗎?在巡查?在計劃一個聚會?在購買食品雜貨?在整理床鋪?建立行為的基線是游戲開發(fā)者的工作之一。一旦有了這個,你就總有NPC(非玩家角色)或計算機控制的‘人’能夠恢復去做的事情,玩家與他們的交互就應當能被完成。

   一旦我們知道一個NPC角色需要做什么 — 比如它在守衛(wèi)一扇門,并且在這個區(qū)域小巡邏,NPC也必須有‘世界意識’。游戲設計者需要決定NPC的人工智能將如何看見世界,和它的知識范圍。你將會僅僅說“計算機知道正在進行的每件事情” 嗎?這通常被認為是一件糟糕的事情,因為非常明顯計算機能夠看見和聽見你不能看見和聽見的事情,這被當成是在作弊。不是一種有趣的經歷?;蛘吣銓⒛M他的視野,這樣他只能夠對他能看見的事物作出反應嗎?當有墻壁出現時這里就有問題了,因為你開始進入那些我在第九部分提到的‘追蹤’例程,看看NPC是否試圖對被墻壁擋住的人作出反應。這是一個很明顯的人工智能問題,但是當涉及到門和窗戶時,這個甚至變得更加復雜了。

   當你開始為AI刺激例程增加聽覺意識時,這依然變得更加復雜了。但是,這個意識是那些關鍵的“小事情”之一,這些使得假想的游戲世界似乎更加真實,或者能夠去除懷疑的懸念。如果你碰到過這樣的事情,請舉手:你在槍戰(zhàn)中跟一個NPC交戰(zhàn),免除了一個NPC,你繞著角落行走并遇到了另外一個NPC依然保持他的缺省行為模式,沒有意識到剛剛發(fā)生的事情?,F在,槍是嘈雜的事物,槍戰(zhàn)可能已經明顯地提醒了一個“傾聽”的NPC有些事情正在進行。避免這種事情的技巧在于找到一個有效的方式來決定聲源(即你武器的發(fā)射)的距離是否足夠接近到NPC能夠聽見。

   接下來就是決策例程。當我們的巡邏NPC角色能夠聽到但不能看見某物時,你試圖實現什么樣的行為呢?他去尋找它嗎?不理睬它?你如何決定什么是重要的聲音他應該去或者不去調查?如同你看見的一樣,這會很快變得非常的復雜。有很多方法來建造處理這些事情的代碼,但通常這樣是一個好主意,建立一個不是對特定的NPC而是對所有的NPC都起作用的系統(tǒng),該系統(tǒng)基于你能夠在游戲引擎以外的文本文件中建立的屬性。這樣就不需要程序員為一個給定的角色而改變AI,并且如果你對游戲代碼做了改動,它將立即自動地應用到所有的角色,這在大多數情況下是一件好事情。

   其他的世界意識問題會冒出來,比如這樣的情形,兩個守衛(wèi)彼此緊挨著站立,你用狙擊武器干掉了一個,而另外一個站在哪兒完全不知已經發(fā)生的事情。再者,遵守真實世界行為的細節(jié)是一款好游戲和一款偉大游戲的之間的區(qū)別。

   讓我們說你已經把所有的刺激-響應部分準備好了—你已經掃描了世界,決定NPC應當對正在進行的一些事情作出反應—他聽到了玩家角色發(fā)出了聲響—并且你(游戲開發(fā)者)決定了他應當對這個做些什么—他將去調查。現在更加復雜的事情來了。他如何離開現在的位置,到達他認為發(fā)出聲音的地方,而不會想通常的數字傻瓜一樣跑到墻壁里面,碰到家具呢?繼續(xù)往下看…


有關正確的路徑 --- 世界導航
   快速,準確的世界導航( 也叫做路徑-發(fā)現) 近來已經成為游戲開發(fā)者的圣杯。 讓它看起來非常信服是一件非常困難的事情。你需要有局部世界的地理知識—墻壁的位置,臺階,懸崖和建筑物等的邊緣。你也需要世界中的對象的知識—比如家具,汽車,尤其是其他人的位置。真正最后的因素是問題所在,一會兒我們將回到這一點上。

   世界導航通常被分為兩個領域,世界導航和局部導航。二者實際上只是范圍上的區(qū)別,但大多數的程序員分別對待它們,因為這樣處理起來容易一些。世界導航例程處理理解房間,門和一般的地理學,并計算出讓玩家或者角色從世界中的A點到達B點的一條路徑?!八鼘⒆屇銖腁點到達B點”,這是一句很容易說的話,不是嗎?說起來容易,但做起來很困難。理解世界是一個非常復雜問題,我已經看到過許多嘗試過的解決辦法。QuakeIII的機器人遵照建造的預先處理過的地圖,一般的說法,使用原來地圖的地面。預處理器檢測地面元素,由地圖建造者作上標記,并自己建造一個只使用地面的世界簡化地圖。機器人并不關心墻壁,因為他們從不接近它們,就像他們遵照地面的地圖一樣,設計上已經把避免墻壁構造在里面了。

   其他方法在地圖本身里面建造一些小的結點,AI可以追隨它們。這些結點通常被建造在彼此的視線里面,有從一個結點到其他所有結點的連接,角色AI能夠直接‘看見’,所以你就確保了從一個結點移動到另外一個結點時AI不會試圖穿越墻壁。如果有門或者降落物,你能夠事先用這些結點對路徑的信息編碼,于是NPC能夠采用適當的行為—等候電梯,打開一扇門,或者從一點跳到另外一點。這實際上是HereticII使用的系統(tǒng),也是Raven在他們其他的大多數游戲中使用的系統(tǒng)。

   關于這個主題,3D Realms的Jess Crable,現在為Duke Nukem Forever工作,如是說:

   "導航在許多方面是個巨大的挑戰(zhàn),主要是當游戲中有大量正在發(fā)生的事情和一些非計劃性的東西,比如障礙。為了避免和(或)真實地對非計劃性的障礙物導航(例如像另外的AI),AI需要很好地知道正在它周圍發(fā)生的事情。比較而言另外一個巨大的挑戰(zhàn)就是真實感。如果AI正在表現玩家在實際生活中看到的一些東西,比如說一個人,或者一條狗, 那么讓它看上去真實可信就更加困難。"

   然后就是局部導航。我們可能有一條路徑讓我們的 NPC 從他在世界中的位置,移動到他認為聽到聲音的地方,但你不能盲目地按照這個執(zhí)行并期望得到看起來不錯的結果。這種性質的路徑傾向于非常特定于一個給定的目的。當你沿著走廊從一個房間跑到另外一個房間時,它很好,但如果你試圖指導他穿越一個巨大的房間時,路徑結點方法容易最終得到一些看起來很奇怪的發(fā)現路徑。這些路徑也不是動態(tài)的。因為他們被預先建造,他們不容易考慮到世界的任何動態(tài)變化。桌子可能有被移動過了,椅子被破壞了,墻壁被摧殘,當然,人們會移動。這就是局部導航不同于世界導航的地方。它必須考慮局部世界并導航NPC在里面穿越。它必須知道周圍的環(huán)境,存在哪些可以選擇的路徑,并決定選擇哪一條。

   在局部導航中最大的問題是其他的NPC。給定一個發(fā)現路徑的具體例程,如果你在相同的一般區(qū)域中有不止一個NPC,他們都試圖到達世界的同一地點,結果是他們都非常容易有相同的路徑。然后他們試圖沿著這個路徑行進,結果彼此遇到一起,然后花費他們所有的時間試圖將彼此分開,并且一旦成功地分開了,他們再次試圖到達目標,然后我們又再次看到同樣的事情發(fā)生。這一切看起來都是非常的愚蠢,這不是大多數人想要的效果。所以需要一些路徑發(fā)現中的變化來避免這種情形,需要一些妥善處理避免的代碼。有大量能夠幫助解決這種情形的算法。


人工智能和角色動畫問題
   當然,當角色自己在世界中行走時你必須完全地決定你想要角色播放什么動畫。聽起來無足輕重?不是的。關于這個主題,Raven的 Chris Reed—Soldier of FortuneII使用名為LICH的AI系統(tǒng)的現在的負責人—如是說:

   "此刻我能告訴你,我們在平滑移動上正有著最大的困難。在一個多丘陵的長滿草的叢林中試圖讓五個角色在彼此附近行走是一個非常困難的問題。讓底層系統(tǒng)完美是重要的,因為除非角色在較低層次上(避免墻壁,適當的動畫)看起來真實,他們不能夠有效地表達任何較高層次決定的智能。由于這個單獨的原因,動畫和底層的移動是最重要的和最難實現的。它確實需要完美。"

   因此我們已經讓我們的角色從A點到達了B點,他自己穿越世界,在途中避免障礙物,正確播放動畫,現在到達了這里。他看見了你。接下來做什么呢?很明顯更多的是作出決策。他將向你射擊。太棒了。你回應射擊。現在干什么?當他試著逃走的時候,現在你再次經歷全部同樣的事情。

   為了讓這些情形看起來令人信服,你看見了這里必須要處理的大量問題。如果你建立你的AI使用沒有動畫的行為讓NPC執(zhí)行,這能被混合。一些Soldier of Fortune中的AI就是這樣的例子。他們受到了指責,因為壞家伙沒有以適當的方式對刺激作出反應。當他們明顯應該這樣做的時候,敵方NPC不掃射,或者不逃跑。部分問題是他們沒有掃射敵人NPC的動畫,或者讓他們往回跑,因為空間的問題。因此世界上所有最偉大的AI代碼都不能夠解決這個問題。這是所有要考慮的重要事情。

   想知道隱藏的難點嗎?看看我前面所有的描述,然后試著將它應用到一組NPC上,這些NPC彼此必須說話,設定目標,彼此溝通,但不妨礙彼此的方式。一旦你這么做了,試試那些代碼,作為玩家的隊友做上面所描述的這些,然而不要在槍戰(zhàn)中妨礙他?,F在這是復雜的。然后這成為樂趣。這是最困難的部分。Raven的 Chris Reed關于AI‘感覺’的一些評論:

   "我認為反饋是AI的一個極大的問題。如果角色對于他周圍環(huán)境的變化不產生反應,游戲的真實感就被完全打破了。這有許多明顯的例子(聽見槍炮聲,看見同伴被擊中...),以及一些更加微妙的事情(當兩個人通過門廳時看著彼此并點頭致意)。玩家是樂意接受一些生硬和可預測性的,但是這些事物容易把游戲帶到現實生活。"

   并且Jess Crable 贊同:

   "平衡是非常重要的… 對玩家將會有多大的樂趣至關重要,但還有其他的問題要平衡。游戲玩家時常說他們想在游戲中看見更加真實的人工智能。然而,太多的真實感開始把樂趣帶走。在這兩者之間必須要有一個好的平衡。變化和隨機同樣也很重要—行為的變化,和保持在可信范圍內的一定程度的不可預測性。"


游戲規(guī)則與自然發(fā)生的游戲
   在我們關于AI的所有描述中,我們采用的是FPS的方式。有不止一種的AI。我們已經描述的是處理3D世界一組規(guī)則。AI遠遠不止這些。時常最好的AI實際上非常的簡單。它就是一組規(guī)則,玩家必須響應和處理的響應(或開始)動作的規(guī)則。

   這里應當處理一個被稱為“自然發(fā)生的游戲”的專業(yè)術語。 自然發(fā)生的游戲本質上創(chuàng)造游戲將遵守的規(guī)則,那將會造成游戲程序員不能預見的情形。

   舉例來說,象棋能被認為是自然發(fā)生的游戲。有一組規(guī)則,但游戲能夠陷入各種程序員不能夠以個別方式處理的情形。你不能為每一種可能的棋局情形編碼規(guī)則。很清楚,游戲玩家每次不會總是面臨相同的游戲情景。一定程度上,進行中的游戲情形會根據他的行動而發(fā)生變化。Black and White是這種情形的一個完美的例子,和The Sims一樣—游戲有它自己的規(guī)則,但你如何運用和調和他們是你自己的事情。實際上,你在玩游戲的過程中創(chuàng)造著游戲,而不是照著游戲設計者/程序員已經為你定義的路線進行。

   有可能把基于規(guī)則的,自然發(fā)生的游戲方式和FPS環(huán)境混合在一起。Half Life中的一些海軍陸戰(zhàn)隊士兵的行為就是這樣做的—壓制火力和側翼攻擊從設定的規(guī)則中動態(tài)完成。它看起來是動態(tài)的,而且一定程度上它是這樣。然而,在FPS世界中僅僅有一組規(guī)則時常是不夠的。幾何和其他AI時常能夠打敗簡單的規(guī)則,這讓保持正確并依然有趣變得更加困難。所以對那些可憐的AI程序員有一些同情心吧。他們的工作不容易。


   好吧,下面還有一個章節(jié),僅僅還剩下一個章節(jié)了。在最后的章節(jié)里,我們將討論頭頂顯示,菜單系統(tǒng),游戲定制和配置,游戲引擎版權與建造,最后是游戲“mods”。










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


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

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

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

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

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

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


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

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

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

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

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

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

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

   謝謝Tim,很精妙的分析。


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

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

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

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

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

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

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


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

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

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

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

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

   在這里你選擇哪個第三方工具用來建造內容可能是至關重要的。在Raven,過去我們已經做了一些開發(fā)決定,在這方面沒有什么幫助,由于我們?yōu)榇蠖鄶档慕:退械膭赢嬓枨笫褂昧薙oftImage。雖然它是制作我們需要的動畫的最好工具,對于家庭業(yè)余愛好者來說它太過昂貴了。這就給那些家庭業(yè)余愛好者在擴充我們制作的內容時帶來了問題,因此他們容易拋棄我們轉而尋求那些比較容易制作內容的游戲。在建造或者選擇一個引擎時這確實是值得留意的事情。為了響應制作游戲mods,Discreet在市場上發(fā)布了一個3D Studio Max的‘lite’版本,稱為gmax。最好的是,它是免費的。如果你想要試一試,你能從這里抓取它http://www./products/gmax/gmaxconsumer/index.html 。

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


有關作者
   Jake Simpson 是一個游戲程序員,斷斷續(xù)續(xù)在這個行業(yè)已經有大約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的游戲產品工作。業(yè)余時間他為GameBoy Color和Advance編寫代碼,因為“你能盡可能地遠離C++編碼,而且,如同John Carmack所說,底層編程對程序員的靈魂有好處”。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多