青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

游戲引擎基礎(八)(腳本系統)

8部份: 腳本系統


腳本系統
  我們從第七部分的游戲網絡問題來到了腳本系統,因為其呈現的故事敘述機會,最近已經形成一種很大的游戲元素。在一個需要以受控制的方式解釋的情景,預先編制的電影腳本是解決問題的方法。在電影中,這通常用來處理或者由主角向一個伙伴解釋情形,或者敵人對英雄解釋。當然,有其它的方法來做這件事情 -- 敘事者,倒敘,等等但通常是使用實時情景的人們和事件來完成。當然,游戲是不同的,游戲開發者在他們平常的FPS中不應該做太多的倒敘,因為通常會需要載入新的環境或者關卡,以及新的紋理和/或模型。所有這些額外的處理和渲染能影響到主要的游戲序列的性能。你可以重用已經存儲在內存里面的場景元素來倒敘,但那樣會看上去明顯比較粗陋。

  RavenSoft Star Trek Voyager: Elite Force廣泛利用了腳本序列產生游戲中的事件和使用游戲引擎本身的剪輯場景。

  在游戲中設計腳本情節的一個有趣趨勢是使用當前極大改進了的3D游戲引擎自己產生剪輯場景。現在這可能像是相當地明顯,但是數年以前,當 3D 圖形卡還比較簡單的時候,剪輯場景通常使用高端3D工作站制作,得到的3D動畫然后被記錄為一個數字視頻文件,以流式文件存儲在CD-ROM。你從剪輯場景的漂亮圖形畫面回到真實游戲的相對粗陋的3D畫面,這是相當令人不愉快的失望的事情。但像Half-Life Star Trek Voyager : Elite Force這樣的游戲很好地利用了它們自己的引擎產生所有的剪輯場景,結果是剪輯場景和游戲之間的過渡更加平滑。

  把腳本和人工智能區分開來可能是個很好的主意。腳本是你完全控制著一個給定場景,建立玩家幾乎總是沒有控制的事件,游戲者沿著軌道移動到一個給定地點,或者建立一個游戲玩家需要解決的情形。一個好的例子可能是巨石掉在走廊上,需要游戲玩家找到一個新的逃脫方法。

  如今有一些不同類型的腳本系統可供程序員或者美術師使用,而且它用非常有條理和邏輯的思想恰當地做這些。第一種是簡單的基于文本的,單線索的風格,就像我們程序員習慣的編碼。在許多情況,它實際上基於 C,盡管以一種非常簡單的形式。 大量這種類似“if thisthen do that”的東西。大部分腳本傾向在范圍內是相當線性的意味著它通常由許多在次序上彼此相接的命令組成。在世界中移動角色A指向B。當完成以后,讓他講話,完成以后,移動他指向C。相當簡單的事情。

  然后有復雜的東西--允許多重線索,和實際上允許可變情形。可變情形是當腳本開始時你實際上不能確知誰會出現在附近,但是你必須按這樣的方式編寫腳本以便任何人出現在附近它都將會工作。舉例來說--一個正常的簡單腳本會有三個家伙,全部被預先定義,全部有一組他們將會討論的情形。一個可變的腳本將會有三個人,你不能保證是某一個特定的人,并必須按相同的方式工作?;蛘咴谝粋€極端的情形中,也許只有二個,或者甚至一個家伙將會在那里,使得三方交談有一點困難。

  RavenStar Trek Voyager: Elite Force中面臨的一個很大的問題是這樣的情形,使用者可能會想要把一個角色從一條船的某個地方帶到另外一個地方,但是從A點到B點的路徑可能會隨著每次游戲根本地改變。舉例來說,他們需要讓Munro(你所扮演的游戲主要角色)從發動機艙室到輸送艙。 不幸的是由于游戲的非直線性,在事件到達這一點以前你可能已經破壞了渦輪升降機,或者也許 Jeffries 管被損害不能通過。假定當腳本開始的時候我們不知道世界的狀態,我們不得不為幾乎各種可能發生的事情編寫腳本以便適用于這些如果。。。怎么辦的情形。而且它僅僅從那里變得更加糟糕。我們能建立的一些情形提供了如此多可能的組合情形,以致于為了一個滿意的結論而準確測試每一個可能發生的事情幾乎是不可能的。請和在SiN, Star Trek Voyager : Elite Force or Deus Ex中工作的任何人談談。QA部門傳統地憎恨這些類型游戲,因為這已經使他們的工作比以前更加困難了 50 倍。

  你能夠想象為這些情形編寫腳本是何等的困難。但那是今天的非線性游戲路徑要求的事情,而且它為何博得了較多的開發支持從而能夠努力實現它。


Jim Dose
關于腳本系統的論述
  去年底我訪談了Jim Dose--Ritual的前任開發者,現在是Id Software的一個開發者,Doom3腳本系統(和其他一些事情)的設計者。盡管這次訪談有些久了,但仍然是很有洞察力。

  Jim談了腳本系統和創建一個易用且健壯的系統( 與包含設計者傳統想要使用的所有特征相反):

  設計一個腳本系統最難的部份是知道何時該停止。一旦你完成了并開始運行,你發現有許多能夠利用它的系統。對于Sin,最初的主意只是要有一個比較容易的方法讓關卡設計者描述對象怎樣動態的在環境中移動。在項目的后期,我們也使用它來讓聲音和游戲事件與動畫同步,在多個關卡跟蹤任務目標,控制HUD的布局和游戲內部電腦控制臺用戶接口,描述人工智能如何對不同的情形產生反應,以及粒子系統。

  控制復雜度可能也是相當的困難。當你把腳本的力量放進有創造力的人們手中時,他們開始探究他們所能做的界限。時常,他們受啟發做一些剛好輕微超出系統能力范圍的事情。很容易陷入到這種增加僅僅再多一個特征就允許他們做他們想做的事情之中。隨著語言增長,一個可能對最初的規格有意義的語言結構變得嚴重過度擴充了。在一些時候,重新思考系統變得有意義,但在那時,你可能已經積累了數量巨大的必須重新編寫的腳本。和FAKK2一樣,Sin遭受了這樣的損失。我沒有得到對腳本系統進行大規模徹底檢查的機會直到我為Rogue's 'Alice'.重寫了腳本系統。

  阿們,吉姆。-- Raven已經看到這個恰好在他們的ICARUS系統中出現了。ICARUS 實際上是一種與Jim在上面描述的相同種類的腳本系統,而且負責在Star Trek: Voyager: Elite Force中的所有腳本事件。它在Soldier of Fortune IIJedi Knight II : Outcast中被重復使用。為了解決系統需要處理的新問題,這些問題在最初的實現中沒有被預見/不需要,腳本系統的很多部分已經被重新編寫了。


可視化腳本系統
  第二種類型的腳本是可視化腳本系統。使用這種方法,而不是文本文件的編碼方式,實際上你能夠在真實的游戲環境中使用真實的角色建立你的腳本。你能夠追蹤角色在世界中行走的路徑,定義使用的動畫,并且通常得到關于你的腳本實際上將看起來如何的更好的主意。它對我們已經討論的非線性問題沒有太大的真正的幫助,但它確實可以很快速地生成最初的腳本。

  其次,Jim談論了可視化腳本系統。

  可視化腳本系統確實有它們的用處,但往往實現更加困難,如果設計得很差,當復雜度上升時就容易讓開發者感到困惑。舉例來說,人工智能可以用一個流程圖似的結構來進行可視化的設計。你能非常容易地可視化地表現人的行為舉止方式,用盒子代表狀態,箭頭代表轉化到其它狀態,指示角色能夠從一個狀態轉換到另外一個狀態的方式。

  腳本的一種通常使用是在游戲世界中控制物體,指示他們他們如何在世界中移動。在一個編輯器中可視化地移動物體到關鍵位置并播放整個運動的能力對一個設計者可能會更加直觀。然而,它確實有它的極限,因為將需要另外一個接口來設計物體在它的移動中必須作出的任何決定。那種能力是把腳本動畫片斷和類似3DS Max或者Maya 這樣的程序產生的動畫區分開來。

  在一些時候,使用者可能需要一些方法決定一個腳本為何沒有做他們所期望的事情。一些形式的除錯工具能使這件工作非常容易。至少,決定哪些腳本正在運行和腳本當前位置的一些方法必需的。在腳本中檢查變量,開始,停止,和單步執行的能力也是有幫助的。通常,一個程序師能夠在他們的調試器中進行除錯,但這個過程要比如果有一些內建的腳本調試器可用時花費的時間更長。


  以上就是第8部份,在接下來的章節中我們將討論使用現成產品和定制的游戲引擎設計工具的功過得失,然后探究游戲控制機制,開發游戲對象,和一些刺激有趣的事情 (武器系統)。

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

公告

EMail:itech001#126.com

導航

統計

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

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1811980
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美亚洲一区| 国产亚洲欧美中文| 亚洲国产精品一区二区第一页| 久久久久久欧美| 欧美一级黄色网| 激情文学一区| 亚洲国产欧美一区二区三区同亚洲| 性欧美长视频| 在线看视频不卡| 亚洲丁香婷深爱综合| 欧美极品影院| 亚洲综合电影| 久久国产精品久久久久久电车| 亚洲第一精品久久忘忧草社区| 欧美激情一区在线| 欧美日韩在线播放一区二区| 亚洲一区视频| 久久久久国产精品www| 91久久国产综合久久91精品网站| 亚洲精品国产精品国自产在线 | 欧美综合激情网| 久久综合久久综合久久综合| 夜色激情一区二区| 欧美亚洲一区二区三区| 亚洲人成小说网站色在线| 日韩一区二区福利| 国产一区二区三区在线观看免费视频| 蜜桃久久精品乱码一区二区| 欧美剧在线免费观看网站| 性刺激综合网| 欧美成人国产一区二区| 午夜精品久久久久久久| 免费在线观看一区二区| 欧美一级淫片aaaaaaa视频| 免费久久99精品国产自在现线| 亚洲先锋成人| 欧美成人tv| 欧美一区二区成人| 欧美成人有码| 久久久久女教师免费一区| 欧美日韩成人在线观看| 美女性感视频久久久| 亚洲午夜女主播在线直播| 亚洲欧洲偷拍精品| 国产精品一区二区三区成人| 91久久精品国产91久久性色| 精品不卡在线| 欧美亚洲视频| 亚洲欧美日韩直播| 欧美日韩免费视频| 欧美大片免费观看| 国产一区999| 亚洲欧洲av一区二区| 一区二区欧美在线观看| 欧美成年人网| 欧美大片一区二区| 在线播放中文一区| 久久久久久亚洲精品不卡4k岛国| 午夜久久久久久久久久一区二区| 欧美日韩麻豆| 99视频有精品| 亚洲视频精选在线| 欧美日韩国产色站一区二区三区| 免费视频一区| 亚洲国产精品va在线看黑人 | 欧美高清成人| 亚洲国产99| 欧美成人免费全部| 亚洲国产精品国自产拍av秋霞| 在线观看一区二区精品视频| 久久精品亚洲一区| 美女福利精品视频| 亚洲国产一成人久久精品| 欧美成人综合在线| 亚洲高清精品中出| 一片黄亚洲嫩模| 欧美日精品一区视频| 亚洲一区视频在线| 欧美一区在线看| 国内精品美女在线观看| 久久久久青草大香线综合精品| 蜜桃av噜噜一区二区三区| 亚洲精品1区| 欧美日韩国产一区精品一区| 在线一区二区三区做爰视频网站 | 这里只有精品视频| 国产伦精品一区二区三区| 欧美在线视频日韩| 亚洲国产精品va在线看黑人| 亚洲一区二区三区四区中文| 国产精品自在欧美一区| 久久久久网址| 日韩视频在线永久播放| 久久国内精品自在自线400部| 精品动漫3d一区二区三区| 欧美国产日韩精品| 亚洲一区二区三区影院| 麻豆精品一区二区av白丝在线| 亚洲国产精品999| 欧美小视频在线观看| 欧美中在线观看| 亚洲欧洲另类| 久久久久久黄| 亚洲天堂第二页| 在线观看欧美亚洲| 国产精品成人在线观看| 久久这里只精品最新地址| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲精品麻豆| 亚洲欧洲日产国产综合网| 欧美一区二区日韩| 亚洲国内欧美| 国产伦精品一区二区三区视频孕妇 | 亚洲国产成人久久综合一区| 销魂美女一区二区三区视频在线| 亚洲国产影院| 国产有码一区二区| 国产精品久久久久久久久免费桃花| 久久手机免费观看| 亚洲欧美日韩天堂一区二区| 亚洲国产老妈| 欧美高清视频免费观看| 久久精品国语| 欧美在线一二三区| 亚洲中无吗在线| 一本在线高清不卡dvd| 亚洲国内自拍| 亚洲国产欧美一区二区三区久久 | 另类欧美日韩国产在线| 欧美一区二区三区免费观看 | 亚洲国产视频直播| 在线观看亚洲视频啊啊啊啊| 国产欧美一区二区三区国产幕精品| 欧美日韩成人一区二区三区| 欧美a级一区| 欧美成人影音| 欧美成人亚洲成人| 久久在线91| 欧美大片免费久久精品三p | 美女任你摸久久| 久久久国产一区二区三区| 久久不见久久见免费视频1| 午夜精品在线观看| 午夜一区二区三区在线观看| 亚洲欧美日韩一区在线观看| 久久精品麻豆| 亚洲免费一区二区| 亚洲欧美自拍偷拍| 欧美在线观看一区二区| 欧美一级成年大片在线观看| 欧美一区激情| 久久久亚洲欧洲日产国码αv| 久久精品亚洲一区二区| 久久午夜精品一区二区| 久久综合五月天婷婷伊人| 亚洲伊人伊色伊影伊综合网| 久久久999国产| 暖暖成人免费视频| 亚洲国产精品久久精品怡红院| 欧美第十八页| 99成人在线| 香蕉国产精品偷在线观看不卡 | 亚洲人成人一区二区三区| 亚洲精品在线观看免费| 亚洲永久在线| 久久―日本道色综合久久| 欧美肥婆在线| 国产精品久久久久久久久久免费看 | 久久最新视频| 欧美成人精品一区二区| 欧美日韩系列| 国产一区二区久久| 亚洲精品欧美极品| 香蕉久久国产| 欧美不卡一卡二卡免费版| 日韩视频在线免费| 欧美在线资源| 亚洲欧美日韩精品久久久久| 一区二区欧美日韩视频| 久久九九国产精品| 亚洲欧洲一级| 欧美中文字幕在线播放| 欧美日韩在线影院| 激情自拍一区| 亚洲男人av电影| 亚洲二区精品| 久久成人亚洲| 欧美亚一区二区| 亚洲人成亚洲人成在线观看图片| 欧美在线视频观看| 亚洲精品日韩欧美| 久久久久久**毛片大全| 国产精品久久久久久妇女6080| 亚洲高清自拍| 久久全国免费视频| 欧美一区二粉嫩精品国产一线天| 亚洲国产mv| 久色成人在线| 国产一区二区精品在线观看| 亚洲欧美电影院|