• <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)

            隨筆分類

            我的博客

            搜索

            •  

            積分與排名

            • 積分 - 304387
            • 排名 - 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 閱讀(1494) 評論(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,想向你討教一些關于這方面的問題!  回復  更多評論
              
            国产—久久香蕉国产线看观看| 2019久久久高清456| 久久午夜羞羞影院免费观看| 色8久久人人97超碰香蕉987| 久久99亚洲网美利坚合众国| Xx性欧美肥妇精品久久久久久| 精品久久久久久久久久久久久久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久综合伊人77777| 97久久国产露脸精品国产| 狠狠色丁香婷婷久久综合不卡| 久久99精品国产99久久6| 日日躁夜夜躁狠狠久久AV| 久久精品亚洲福利| 久久精品aⅴ无码中文字字幕不卡| 狠狠人妻久久久久久综合蜜桃| 一级a性色生活片久久无少妇一级婬片免费放 | 996久久国产精品线观看| 久久中文字幕无码专区| 99久久久精品| 久久亚洲AV成人出白浆无码国产| 久久久久国产视频电影| 久久精品草草草| 久久精品国产亚洲77777| 久久精品国产免费观看三人同眠| 丰满少妇人妻久久久久久4| 久久精品无码专区免费东京热| 超级碰碰碰碰97久久久久| 久久九九久精品国产免费直播| 美女写真久久影院| 国产精品久久永久免费| 亚洲乱码精品久久久久..| 无码8090精品久久一区| 久久精品二区| 国产亚洲精午夜久久久久久| 久久综合九色综合97_久久久| 久久精品国产亚洲av日韩| 久久久久99精品成人片试看| 日韩人妻无码精品久久免费一 | 99久久无码一区人妻a黑| 国产综合久久久久久鬼色|