如何設計(規劃)一款遊戲戰鬥系統的狀態機?

3D動作類網遊


這次先來個總結了,僅對於ACT遊戲的需求來說:

1 動畫與狀態綁定(有缺點但不深入討論)

2 上層一定有能夠返回邊介面,邊要有存儲綁定邏輯的能力(應對遊戲後期有大量變化和成長的需求)

3 有對狀態進行集合標識的框架(分層框架),集合嚴格不允許產生交集

4 input系統要有與各個系統(ACT中一般是輸入系統,敵方狀態返回,自身狀態返回等)統一規範的介面

下面是細節:又來挖這種大坑,工作太忙,填坑精力有限,忘各位看官見諒:)

剛好在做ACT的架構梳理,以後慢慢水:

這三個概念必須非常清晰,FSM 任意時刻都有唯一確定S,對於圖的數據結構表達要有一定認識。

圖是由結點的有窮集合V和邊的集合E組成---這個定義要明確

不太多從數學和計算機科學角度說,從ACT這類遊戲來說:

要想明白對應ACT遊戲美術資源層如何與狀態邏輯層如何交互的:先來個《鬼泣1》的例子:

我們先把遊戲邏輯簡化到最低。方塊按下發動攻擊,然後回IDLE

S (有兩個) IDLE 狀態 和 Attack1 狀態

I (有兩個) 一個是input來的消息,另一個是狀態的內在邏輯自動返回的

即使這樣一個最簡單的例子 我們會發現在處於一個狀態時,其實是有其他系統邏輯在工作,我們用最常見的計時器來舉例:

事件觸發器一般分為:

由狀態機系統自己驅動的計時器

由綁定系統(例如動畫系統)驅動的計時器


推薦閱讀:

易語言精通之後是不是能跟C++這些主流的編程語言一樣強大?
Windows 平台下除了 Visual Studio,還有什麼軟體能編譯 C、C++ 文件?
不想寫工作中的代碼,怎麼辦?
在程序員這個職業里,究竟是天賦重要還是興趣和努力重要?
為什麼c++程序中#define max 5000000 太大不能運行?

TAG:遊戲 | 遊戲設計 | 遊戲開發 | 編程 |