• <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>
            隨筆 - 119  文章 - 290  trackbacks - 0

            博客搬家了哦,請移步
            叫我abc

            常用鏈接

            留言簿(12)

            隨筆分類

            我的博客

            搜索

            •  

            積分與排名

            • 積分 - 304373
            • 排名 - 84

            最新評論

            閱讀排行榜

            終于進行到這里了,由于Mathematics And Physics我只看懂了Floating-Point Tricks,并覺得里面說的東西有點繁瑣,其實現在很多引擎根本不會用到這些tricks,而且書內也建議在不得已的情況下才使用,就不在這里介紹了。

            其中的Real-Time Particle-Based Fluid Simulation with Rigid Body Interaction我還是打算嘗試好好看的,不過能不能看懂就是另外的事情了。一直比較遺憾的是,數學一直是弱項,也許是阻礙成長的一個瓶頸吧。

            那么,現在進入 ARTIFICIAL INTELLIGENCE

            3.2 Achieving Coordination with Autonomous NPCs
            本篇講述了如何實現NPC和玩家對抗的時候,如何進行NPC之間的協作,使得看起來像一個有組織有記錄的部隊。
            首先拋出的解決方案是The Centralized Approach,由一個中央單元收集和分析玩家、NPC的所有信息,做出決策,然后給不同NPC下達不同指令,形成有組織的行動。NPC沒有靈活的決策權。
            但是這個解決方案有一個問題,那就是隨著游戲系統的增大,中央單元的決策邏輯逐漸變得更復雜,消耗更多的CPU時間。因此文章拋出了一個Autonomous NPCs。
            Autonomous NPCs是一個自治單元,能自我作出決策,并能和其它NPC交流并共享信息。
            文章給出了多個在自治單元間交流和共享信息的方法,前面的方法都比較具體,后面的就比較抽象和籠統了,這也是一個由低到高的過程。

            (a)Attack Slots
            NPC在決策最佳攻擊位置的時候,總是傾向于最接近玩家的距離,因此玩家很可能就被包圍住了。Attack Slots就是用來解決這個問題的。它就像一個令牌用來規定每個NPC能接近玩家的最小距離。
            形象的說,Attack Slot是以玩家為圓心的許多半徑不同的圓,這個半徑是NPC能接近玩家的最小距離。每個半徑只能容納一定數量的NPC,當某個slot被其他NPC占據后,當前NPC就只能選擇另外一個slot了。以這種方式來分散NPC,形成一種錯落有致又不難對付的戰斗。

            (b)Exclusion Zones
            雖然Attack Slots能解決NPC過分包圍玩家的問題,但是它們還是有可能選擇同一個攻擊位置,或者站在能擋住別人攻擊的地方。
            Exclusion Zones是NPC用來標記它領地的,即NPC當前位置下一定半徑的圓,以及火力線區域,它將這些區域標記為已使用,因此其他的NPC就不能進入這些區域了。
            這也在一定程度上分散NPC,并使它們有協作性,而不是相互妨礙。

            (c)Trigger Systems
            觸發器系統,想必大家都知道的。此前,我多少有點把消息機制和觸發器機制相混淆,或者說他們本身就有很大的相似性。
            這里所說的觸發器,就像是玩家或者NPC下的蛋,不屬于原有的角色,而是一個全新而獨立的對象了。并且,觸發器產生消息,但觸發器并非消息本身。
            觸發器系統能夠很好的解決聲音和尸體的問題,NPC發出聲音,或者NPC尸體,都會生成一個觸發器對象,觸發器對象給周圍的角色發送某個消息,周圍的角色就對此作出了反應。

            (d)Enemy Events
            消息系統,NPC之間可以根據自身的情況發送消息給其他NPC,至于是否處理則看消息的優先級以及其他NPC樂不樂意之類的。

            (e)Player Mutex
            對于NPC而言,玩家就是一份共享資源,加鎖的話,就可以控制同時打算攻擊玩家的NPC數量。

            (f)Allowed Zones
            這個用來定義每個NPC的活動范圍,以防止NPC為了追擊玩家跑出自己的活動范圍。

            (g)BlackBoards
            黑板系統,又名知識共享系統,NPC可以向黑白添加自己知道的信息,也可以讀取自己感興趣的信息,以作出相應的決策。
            黑板系統在NPC進行資源共享方面相當有用。


            最后一篇了。自己知道,卻未必能寫出來。還是少說話,多學習為上。

            posted on 2007-11-30 21:06 LOGOS 閱讀(1493) 評論(2)  編輯 收藏 引用 所屬分類: 《GAME PROGRAMMING GEMS6》讀書筆記

            FeedBack:
            # re: 《GAME PROGRAMMING GEMS6》讀書筆記-4 2008-11-02 10:27 水杯
            你好!看了你的讀書筆記,受益匪淺,尤其是這一小節的內容!正是我想要的,能不能把這一張詳述一下啊!  回復  更多評論
              
            # re: 《GAME PROGRAMMING GEMS6》讀書筆記-4 2008-11-02 10:29 水杯
            你好!能不能告訴我你的QQ,想向你討教一些關于這方面的問題!  回復  更多評論
              
            久久久久一本毛久久久| 久久99国产亚洲高清观看首页| 久久久久人妻一区精品果冻| 色综合久久久久综合99| 国内精品久久久久影院薰衣草| A狠狠久久蜜臀婷色中文网| 久久九九久精品国产| 午夜欧美精品久久久久久久| 伊人色综合久久天天| 久久精品青青草原伊人| 精品无码久久久久久国产| 丁香色欲久久久久久综合网| 国内精品久久久久久不卡影院 | 亚洲国产成人精品女人久久久| 99精品国产综合久久久久五月天| 99久久无色码中文字幕| 久久强奷乱码老熟女网站 | 伊人久久综合热线大杳蕉下载| 伊人伊成久久人综合网777| 美女写真久久影院| 无码专区久久综合久中文字幕| 精品一久久香蕉国产线看播放| 国产99精品久久| 国产成人精品久久免费动漫 | 久久av高潮av无码av喷吹| 国产婷婷成人久久Av免费高清| 亚洲中文精品久久久久久不卡| 亚洲AV伊人久久青青草原| 精品熟女少妇aⅴ免费久久| 亚洲成色999久久网站| 久久久久久免费一区二区三区| 久久综合久久自在自线精品自| 成人综合久久精品色婷婷| 亚洲国产成人精品女人久久久| 久久久精品视频免费观看| 久久久受www免费人成| 国产精品日韩欧美久久综合| 99久久国产综合精品网成人影院| 亚洲国产精久久久久久久| 久久99中文字幕久久| 久久国产成人精品麻豆|