基于行为树的新手引导设计
新手引導:在游戲中的作用是指引教學,降低玩家的學習成本。在當今游戲節奏加快的時代背景下,讓新手玩家更快的了解游戲的玩法,更快的上手,進而提升用戶的留存率。游戲引導起到了至關重要的作用。同時游戲在一些功能設計和UI布局上的小缺陷,也可用通過適度的游戲引導讓玩家去了解和適應這些瑕疵,不至于難以理解和發現對應的功能而導致上手困難甚至直接放棄。
雖然是新手引導對國內游戲來說,基本已經是必備的系統功能(甚至有的到了泛濫的地步)。但是開發一個好的引導系統還是比較麻煩的,甚至會導致游戲的異常卡死,反而會導致用戶的流失。尤其是對于一些復雜游戲,沒有引導玩家很難上手,但是復雜游戲的引導設計不太簡單,尤其是開放性引導,要考慮很多異常情況。
引導系統的設計有很多方案,下面來分享一下具體的實現方案。
這也是我這幾年經歷了3款網游的引導系統設計不斷地完善總結出的實用解決方案,也是我們現在正在研發的游戲所采用的引導系統:基于行為樹的引導系統。
正式介紹這個引導系統之前,先簡單的說一下前兩個游戲的引導系統:
1、紙上談兵
這塊游戲是我頭一次開始設計引導系統,每一步的引導單元都是一個switch中的case,完成一步后 id的修改。來實現引導的推進和跳轉。
優點:可以在運行時根據當前運行情況去進行一些引導節點的跳轉,引導顯示的控制也比較隨意。
缺點:編寫要求嚴謹,稍有不慎就容易出現錯誤.可修改性低,后期的增刪維護成本高。
?
?
2、風暴榮耀
第二次做引導系統,總結了之前引導的缺陷,以及基于引導基本是一系列操作序列的特點。因此設計成了一系列行為節點組成一個隊列的方式。允許多隊列并行,也可以在任意的運行時自由的加載編輯好的行為隊列。
優點:行為節點已經獨立了,有了一點行為樹的雛形(組合只有序列一種方式),增刪改動很方便了。
缺點:隊列不能在運行時修改,執行順序是固定的,異常處理能力弱。
?
通過對前面引導系統的總結和完善,我們正在研發的游戲采用了最新的引導系統框架。一套基于行為樹的行為節點組合系統。
基本的參數定義:
?
- BehaviorStatus:為節點的激活狀態。
- BehaviorResult:為節點的運行狀態(運行返回值)。
- BehaviorLogic:邏輯運算方式(目前只用在并行節點)。
主要的行為節點定義:
?
下面通過幾個簡單示例來介紹如何使用,二手手機號碼拍賣也可以感受一下他的靈活性、流程可控性、可配置性。
(注:下面示例圖中藍色節點都為復合節點,綠色節點都為行為節點。)
1、設計一個引導對話框,需求是用戶點屏幕任意位置后,對話框關閉。如下圖所示:
(如果還要增加對話框過了一段時間后自動關閉的功能,則只需要增加下圖中黃色WaitSecond節點就可以了。)
2、游戲中有個界面,在玩家完成了一系列操作后,需要關閉界面,最開始指定時間內是不出現引導提示,允許玩家自己去完成關閉操作。若玩家在指定時間后還沒有去點擊關閉按鈕,則出現引導提示,指引玩家去點擊關閉按鈕。(若要屏蔽其他按鈕的響應,則再開啟下圖中黃色WaitTouchWidget節點,若這樣還不夠,界面中有些觸摸沒有被WaitTouchWidget屏蔽掉,可以再開啟橙色TouchSwallow節點,強制屏蔽觸摸。)
?
3、引導過程中難免會出現一些異常,還有就是某些情況下需要進行一些引導步驟的回退或者跳轉,參照下圖示例:
?
總結:
以上三個簡單的示例雖然只是游戲引導的很小的一部分,但是基本可以看出現在引導系統的編輯靈活性,運行中動態流程控制,異常處理能力都是很不錯的。開發人員可以自由的定制擴展功能。當然任何系統都會存在他的局限性,另外還缺少一個方便好用的編輯器來進行這些引導行為樹的編輯,這個就需要我們開發人員去不停的擴展維護,讓程序不斷的迭代更新,讓功能越來越強大,讓開發越來越便捷。
總結
以上是生活随笔為你收集整理的基于行为树的新手引导设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设计渲染等级?
- 下一篇: 如何10分钟入门3D游戏开发?