遊戲開發的兩大超級法寶---協程和樹狀結構配置

###最近遇到了幾個複雜系統的設計,包括:程序員

粒子系統性能優化

技能系統異步

劇情繫統編輯器

AI系統性能

UI系統優化

場景系統命令行

###發現這些複雜系統最終都採用了樹狀結構配置:設計

例如經典的 ogre 火炬之光的粒子系統;協程

rpg遊戲的 技能系統,火炬之光,暗黑破壞神;遊戲

劇情繫統,魔獸爭霸3編輯器中的劇情;

AI行爲樹, 例如 Halo 光暈;

UI樹狀結構;

場景樹,四叉樹,八叉樹,kdtree;

###樹狀結構系統的好處是:

業務邏輯互相之間解耦合;

系統容易擴展和修改;

系統模塊之間互相訪問的方式也是很是規範化;

這樣設計的系統,很是優雅,歡迎你們和我多多交流關於 樹狀結構在遊戲設計中的應用。

###而協程是 很是優雅的用於將異步業務邏輯線性化的機制, 經過結合協程和樹狀結構能夠設計很是優雅的系統。

例如AI行爲樹:

行爲樹有重要的Action 節點用於執行必定的命令行爲,而Action是須要必定時間來執行的,傳統的作法是經過Tick 機制,即每幀率更新,可是 存在嚴重問題是每幀更新會致使 上下文丟失,每次執行都必須從新根據狀態來跳轉代碼;

而協程序好處,即免去寫狀態機的麻煩,由編譯器生成狀態機,而程序員只須要設計,業務流程,以及執行等待便可。

雖然忙等待可能會有性能損失,可是帶來的開發巨大便捷是很是有優點的, 同時即使須要熱點性能優化,只須要手動將 協程改寫爲 狀態機便可。

相關文章
相關標籤/搜索