<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Behaviac游戲 AI 開發(fā)框架組件

          聯(lián)合創(chuàng)作 · 2023-09-30 10:59

          Behaviac是游戲AI的開發(fā)框架組件,也是游戲原型的快速設(shè)計工具。支持行為樹BT,狀態(tài)機FSM,HTN等多種范式,方便的編輯和調(diào)試。支持全平臺,適用于客戶端和服務(wù)器,助力游戲快速迭代開發(fā)。

          編輯器可以運行在PC上,操作方便直觀可靠,支持實時和離線調(diào)試;編輯器可以導(dǎo)出xml,bson等多種格式,更可以導(dǎo)出C++,C#源碼,提供最高效率。

          運行時支持全平臺,有C++和C#兩個版本,原生支持Unity。

          已被《天天炫斗》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰(zhàn)》等游戲及其他更多預(yù)研項目使用。

          編輯器和運行時

          behaviac作為游戲AI的開發(fā)框架組件,有編輯器和運行時兩個部分,這兩個部分通過元信息(描述AI實例屬性和能力方法的信息)交換信息。

          元信息

          元信息用來描述類型的屬性和方法。運行時導(dǎo)出元信息,如下所示。編輯器中,該元信息作為基本的語法單位用來創(chuàng)建行為樹。

          <agent classfullname="framework::GameObject" base="behaviac::Agent" inherited="true" DisplayName="" Desc="" IsRefType="true">
          <Member Name="HP" DisplayName="" Desc="" Type="uint" Class="framework::GameObject" />
          <Member Name="age" DisplayName="" Desc="" Type="long" Class="framework::GameObject" />
          <Method Name="GoStraight" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="void">
          <Param DisplayName="speed" Desc="speed" Type="int" />
          </Method>
          <Method Name="TurnTowardsTarget" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="int">
          <Param DisplayName="turnSpeed" Desc="turnSpeed" Type="float" />
          </Method>
          <Method Name="alignedWithPlayer" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="bool" />
          <Method Name="playerIsAligned" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="bool" />
          <Method Name="projectileNearby" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="bool">
          <Param DisplayName="radius" Desc="radius" Type="float" />
          </Method>
          <Method Name="distanceToPlayer" DisplayName="" Desc="" Class="framework::GameObject" ReturnType="float" />
          </agent>

          在3.x版本之前的版本中,元信息必須通過運行時來導(dǎo)出,策劃需要新的屬性或方法時,必須等待程序員更新代碼重現(xiàn)導(dǎo)出元信息后才能使用。而在3.x版本 中,可以直接在編輯器中創(chuàng)建一個類型,并且創(chuàng)建它的屬性和方法,而且可以導(dǎo)出類型的c++或c#源碼,這極大的加速了迭代的過程,從而把編輯器作為一個原 型設(shè)計工具。

          編輯器

          編輯器是一個可以運行在Windows平臺上的編輯工具。

          在編輯器內(nèi),使用鼠標(biāo)或快捷鍵,可以添加、編輯、配置、修改行為樹(包括FSM,或HTN),也可以實時或離線調(diào)試游戲的行為,既可以設(shè)斷點,也可以查看或修改變量的值。

          運行時

          運行時有C++和C#兩個版本,Unity使用C#的實現(xiàn),像是cocos等使用C++的引擎或平臺使用C++的實現(xiàn)。其具體邏輯是一致的,即加載編輯器中導(dǎo)出的行為樹,解釋運行之。

              g_player = behaviac::Agent::Create<CBTPlayer>();
              bool bRet = false;
              bRet = g_player->btload(pszTreeName);
              assert(bRet);
              g_player->btsetcurrent(pszTreeName);
          behaviac::EBTStatus status = behaviac::BT_RUNNING;
          while (status == behaviac::BT_RUNNING)
          {
          status = g_player->btexec();
          }

          導(dǎo)出和調(diào)試

          在編輯器內(nèi)創(chuàng)建好行為后,需要導(dǎo)出,然后運行時才可以加載運行。編輯器支持導(dǎo)出多種格式:

          1. xml

          2. bson

          3. cpp

          4. c#

          其中xml和bson作為數(shù)據(jù),可以被加載,而cpp或c#作為源碼直接編輯鏈接進程序,用戶可以根據(jù)需要選擇使用最合適的格式。

          功能

          • behaviac作為游戲AI的開發(fā)框架組件,主要是用來開發(fā)游戲AI。

          • behaviac的編輯器使用圖形化的界面(Visual scripting)和操作,操作直觀方便。

          • 游戲中的NPC,小怪,老怪等等的游戲邏輯都可以通過behaviac來創(chuàng)建和開發(fā)。

          • behaviac并不限于開發(fā)游戲AI的游戲邏輯,也可以用來開發(fā)組隊邏輯(Squad Logic),策略AI(Strategy AI),玩家Avatar,甚至關(guān)卡設(shè)計等各種游戲場景。

          • behaviac還可以用作原型設(shè)計工具,策劃只是使用behaviac編輯器來設(shè)計類型安全的,表達嚴謹?shù)挠螒蜻壿嫛?/p>

          • C#版本的運行時原生支持unity,behaviac可以在unity內(nèi)開發(fā)游戲AI

          • 在iOS平臺,作為熱更新的一種手段

          • C++版本支持全平臺,不僅可以用在客戶端,也可以用在服務(wù)器端。一套邏輯,可以根據(jù)情況分別在客戶端,服務(wù)器運行,避免重復(fù)開發(fā)。

          特性

          • behaviac是游戲AI的開發(fā)框架組件,也是游戲原型的快速設(shè)計工具

          • 支持持行為樹(BT),狀態(tài)機(FSM),層次任務(wù)網(wǎng)絡(luò)(HTN)等多種范式

          • 編輯器可以運行在PC上,操作方便直觀可靠

          • 編輯器可以導(dǎo)出xml,bson等多種格式,更可以導(dǎo)出C++,C#源碼,提供最高效率

          • 支持實時和離線調(diào)試,可以設(shè)斷點,查看或修改變量

          • 編輯器通過socket和游戲連接實現(xiàn)實時調(diào)試,支持遠程實時調(diào)試

          • 運行時支持全平臺(Windows/Linux/iOS/Android等),有C++和C#兩個版本,原生支持Unity。適用于客戶端和服務(wù)器,助力游戲快速迭代開發(fā)

          • 支持熱加載,可以不用重啟游戲就更新行為樹

          • 中英文界面可選,元信息可以提供中英文顯示信息

          • 支持預(yù)制件(Prefab)、子樹,方便重用共享

          • 支持自定義數(shù)據(jù)類型,支持已有第3方庫中的自定義類型

          • 支持擴展節(jié)點類型

          瀏覽 29
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  全国极品999无码视频免费观看 | 大香蕉2017 | 欧美精品成人网站在线观看 | 久久高清系列 | 我想看中国台湾特级黄色录像1级特黄特黄的 |