青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

有限狀態機時代終結的10大理由

有限狀態機時代終結的10大理由

作者:alexjc

譯者:賴勇浩(戀花蝶)

原文地址:http://aigamedev.com/questions/fsm-age-is-over

本文最初發表于戀花蝶的博客(http://blog.csdn.net/lanphaday),如蒙轉載,敬請保留全文完整,包括本聲明。

clip_image002

經過幾個月的發展, AiGameDev.com 形成了一個小有氣候的社區,謝謝大家支持!每個周五,我將抽出時間來回答大家的問題,你可以在 blog 論壇 上提問。

有限狀態機在過去十年里變得非常流行,游戲開發者用它開發了很多極具趣味的游戲。但再好的事情也有個結束,是否到了使用比 FSM 更好的技術來完成 AI 邏輯的時代了?

本周的問題是一個評論,erm@duh.org提出了一個與周三的教程系列有關的有趣話題,讓我把它改得更有建設性一些:

 “據我所知很多領域(如游戲業界)都使用有限狀態機來實現游戲 AI。為什么你不用它來實現這個模擬游戲里的狗的行為?”

這個教程使用行為樹來體現它與狀態機的不同,而且游戲 AI 開發者也能夠從中得到分級邏輯的好處。

當然我們也可以用有限狀態機(FSM)來構建相同的行為。但業內人士都知道這一技術在邏輯增長時有多么有脆弱。遠離 FSM 是避免游戲項目變得一塌糊涂的選擇!

非正統

問題: 構建 FSM 的方式對于不同的軟件工程師而言是完全不同的流程。是的,概念上它是“設計師友好”的,但實際上應用 FSM 需要應用非常多的編程知識和細節。

原因: FSM 要求每一個狀態明確地轉換到另一狀態。沒有一個編程語言需要這樣,語言本身的語義就隱含了所有轉換(如C++編譯器從語句構造執行指令序列)。

過于底層

問題: 編輯FSM的邏輯非常底層,而且機械性十足。我們常常會發現自己總是在構建相似的行為,而且這會花費我們大部分時間。

原因: 我們所能做的僅是編輯從一狀態到另一狀態的轉換,而無法做出更高層次的模式導致頻繁重復相似的序列或條件。有限狀態機的世界不存在元編程(Meta-programming)。

邏輯受限

問題: 有限狀態機形式固定,從而導致計算受限(又稱為非圖靈完備)。這意味著我們不能像計數一樣做事。

原因: 如果我們把事件當作符號,我們只能用有限狀態自動機識別正則文法,這一方法下一個正則表達式不能識別某些類別的文本模式。同樣,有限狀態機僅能作為正則語言的傳感器。

需要自定義擴展

問題: 游戲開發者在實踐中經常需要擴展 FSM 才能將其用于項目,然而這并不容易被理解,甚至還缺乏文檔。這是與FSM的學術基礎并不相同。

原因: 因為 FSM 受限于理論,開發者必須自行增加功能擴展以實現確定的某些特性。這意味著要用編程語言去實現計數器、計時器和任何形式的內存對象。

難以標準化

問題: 不像規劃器(HTN)或搜索算法(A*),它們能用相關的通用方法實現。而 FSM 則非常難以在不同的游戲間重用,甚至在引擎是不同的部分重用也不可能。

原因: 因為 FSM 是非圖靈完備的, FSM 需要為每一問題自定義特定的解決方案。這使得它們適用度極低,而不像腳本語言一樣能夠很容易地重新打包。

非自主的

問題: 使用 FSM 實現目標導向的行為需要做很多工作。這是一個大問題,因為大部分有針對性的 AI 需要處理長遠目標。

原因: FSM 運作于反應模式,只能處理事件和觸發跳轉。它們無法自動向前(又稱為自主),因此我們必須為所有不同的目標手動轉換。

難以并發

問題: FSM 難以并發。當并行運行多個狀態機,要么死鎖,要么我們通過手工編輯來確保它們在某個程度上能夠兼容。

原因: FSM 存儲的信息越多在處理外部資源沖突上的問題就越多。使狀態機并發的解決方案通常是擴展 FSM 自身,把它作為支持邏輯或一套工具來保證并發安全。

大規模支持較差

問題: 有限狀態機,甚至是分層的,也難以大規模擴展。它們往往是在其中夾雜一大塊邏輯代碼,而非行為編輯模塊化。

原因: FSM 并不利用編程語言提供的用以解決大問題的規模化特性,同樣地FSM 也難以同步多個行為模塊。

勞動密集型

問題: 用 FSM 實現任何設計都需要做大量工作。甚至狀態機本身也有著無數問題。

原因: 如前所述,應對所有挑戰需要花費設計師的大量時間,甚至最終這還會成行為中的 bugs 的來源!

行業進步

事實: 許多資深游戲開發者已經不再使用有限狀態機,而是使用行為樹之類的可替換方案。

事實: 現在多個游戲 AI 中間件提供商致力于規劃器實現的 AI,在 2008 年將會見到更多可用的此類產品。

結論

FSM,就像其它技術一樣,在游戲開發的進程中占有了應得的一席之地。然而,開發者默認使用有限狀態機來實現 AI 的時代,已經行將結束。帶有協程的腳本在今天已經極其流行,而分級規劃器將越來越多地應用在游戲及其中間件。

有問題不明白?請教Google大神吧!

clip_image003

   

 

發表于 @ 2008年01月28 22:40:00 | 評論( 15 ) | 編輯| 舉報| 收藏

Googol 發表于2008128 23:44:28  IP:舉報刪除

那么用什么?協程?

jq0123clip_image004 發表于2008129 09:33:51  IP:舉報刪除

元編程(Meat-programming)?肉編程?hehe...

lanphaday 發表于2008129 10:06:12  IP:舉報刪除

Re jq0123: 謝謝指正,當時筆誤,已經改正過來了。是 meta-programming

FSM 發表于2008130 12:52:11  IP:舉報刪除

只能說是游戲開發者設計的FSM不夠完善。
有限狀態自動機不僅僅用于游戲,現代通訊軟件都是采用FSM原理來完成狀態變遷。通訊軟件的開發難度比游戲要大得多,而且可靠性要強得多。
非正統?作者怎么能將FSM和編程語言做比較,而得出如此結論?
過于底層?任何復雜的事情最終都可以分解實現,就像編程,你還是得去寫賦值語句,條件判斷
邏輯受限?這正是FSM的強項,邏輯清晰
難以并發?交換機上同時運行的FSM何其多
大規模支持較差?中國移動都2億用戶了

其實原因文中也已說明游戲開發者使用有限狀態機的經驗極其缺乏

cppof286 發表于2008130 13:20:19  IP:舉報刪除

我不太懂規劃器,但是如果把MetaProgramming理解為動態生成需要的優先狀態自動機的話我并不覺得是問題,FSM的算法支持抽象和分層結構。在我看來把一些需要的動作的FSM規范出來形成工具包也是一個可行的辦法,雖然也許不是最通用的,但如果在同類型游戲之間的話我相信這種抽象還是可以辦到的。

cppof286 發表于2008130 13:22:54  IP:舉報刪除

抱歉忘了說,我承認FSM不是圖靈完備的,不過我不太相信現在的游戲已經復雜到需要圖靈自動機來設計人工智能。我更傾向于認為現在的引擎難以通用的原因是由于工程的壓力無法進行合理的全局規劃的原因。理解難免片面,歡迎大家執政。

葉子節點 發表于2008130 15:18:49  IP:舉報刪除

不同意作者的觀點,FSM 在嵌入式控制,通訊等系統都具有不可替代的有點。

FSM
確實需要非常好的設計,不能憑感覺就開始coding,否則終歸會有崩潰的一天,不管是人還是代碼!!

微笑的撒旦 發表于2008130 15:49:06  IP:舉報刪除

感覺作者僅僅只是搬概念而已。自己是否真的深入研究過了?

realdreamer 發表于2008130 16:08:00  IP:舉報刪除

概念,扯不明白

reader 發表于2008130 18:59:46  IP:舉報刪除

翻譯好像有點問題。。。

事實: 游戲開發者使用有限狀態機的經驗極其缺乏,不如改用行為樹。
Fact: Experienced game developers are using finite state machines less and less, switching to alternatives like behavior trees.

lanphaday 發表于2008131 00:21:58  IP:舉報刪除

Re reader: 謝謝提醒,已經更改為:許多資深游戲開發者已經不再有限狀態機,而是使用行為樹之類的可替換方案。

inshua 發表于2008130 20:33:09  IP:舉報刪除

Right。切換太復雜,編碼不好編。就像在編譯過程中,用遞歸函數實現 Parse 一樣,不使用有限狀態機代碼更流利。

linkerlin 發表于2008131 12:48:57  IP:舉報刪除

同意你的觀點.
我在TX的一款MMO養成游戲里面大規模使用Lua的協程機制.
感覺還行.
:)

michaelpp 發表于200822 15:09:09  IP:舉報刪除

其實, 腳本里也是用的條件判斷呀, 只是換成腳本之后, 程序變得靈活多了. 但歸根到底還是用的FSM的原理嘛!
這世界, 幾乎任何事情都離不開狀態判斷, 不管有限無限, 根據條件來判斷是最普遍的.
假如有一天人們不用條件作判斷,那世界將變成什么樣子呢,誰都不知道,呵呵.
因此, 我想狀態機根本還不存在被終結的理由吧. 除非哪位天才發明了更科學的方法, 這也將是科學的大發展了!

Hiskoa 發表于20081126 11:16:38  IP:舉報刪除

MARK

pascal4123 發表于2009210 18:56:49  IP:舉報刪除

FSM根本的弱點是封閉性.FSM一旦有變化(比如添加1個狀態)將帶來巨大的潛在風險.
模式匹配則小的多,便于模糊處理以及分級處理.
我覺得在大規模擴展性良好要求的軟件開發領域(這方面要求抓住行業本質),FSM退出舞臺是必然.在嵌入式領域或更硬的領域,FSM還是比較易懂,因為它模仿了數字邏輯的本質.

fasmot 發表于2009416 09:17:33  IP:舉報刪除

"FSM一旦有變化(比如添加1個狀態)將帶來巨大的潛在風險"確實,我是做游戲輔助的,經常需要添加修改狀態,幾乎沒改必錯,調試找半天……

 

posted on 2009-10-31 11:38 肥仔 閱讀(20966) 評論(2)  編輯 收藏 引用 所屬分類: 狀態機 & 自動機 & 形式語言

評論

# re: 有限狀態機時代終結的10大理由  回復  更多評論   

看的惱火。
2014-07-02 11:15 | 鑫鵬君

# re: 有限狀態機時代終結的10大理由  回復  更多評論   

技術終會發展,但也用不著扯淡吧。
2016-05-05 11:39 | ywx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久亚洲精品中文字幕 | 亚洲一区久久| 免费的成人av| 欧美激情一区二区| 亚洲国产精品综合| 欧美激情一区在线| 亚洲精品一区二区在线| 在线一区欧美| 欧美一区二区免费视频| 久久综合色天天久久综合图片| 久久视频免费观看| 欧美黑人在线播放| 国产日韩欧美一区二区三区在线观看| 国内精品一区二区| 亚洲精品一区中文| 香蕉国产精品偷在线观看不卡| 欧美一区二区三区日韩| 欧美成年人视频网站| 亚洲免费高清| 欧美在线观看网站| 欧美精品一区二区久久婷婷| 国产精品美女久久久久久久| 雨宫琴音一区二区在线| 一本色道久久综合亚洲精品小说 | 亚洲一区二区三区乱码aⅴ| 亚洲一区二区三区影院| 久久精品国产亚洲高清剧情介绍| 欧美aa在线视频| 国产欧美不卡| 亚洲无限乱码一二三四麻| 久久精品1区| 亚洲毛片在线| 久色成人在线| 国产亚洲成精品久久| 99re6这里只有精品| 久久综合网络一区二区| 亚洲深夜激情| 欧美欧美天天天天操| 在线观看欧美日韩| 久久久国产视频91| 亚洲在线视频一区| 国产精品videosex极品| 最新亚洲视频| 免费中文日韩| 久久久久久夜| 很黄很黄激情成人| 久久精品五月婷婷| 亚洲无玛一区| 国产精品久久久久久久一区探花| 亚洲乱码视频| 亚洲激情在线观看| 欧美mv日韩mv国产网站app| 伊人色综合久久天天| 久久国产精品亚洲77777| 亚洲综合电影| 国产欧美日韩亚洲一区二区三区| 亚洲专区一区二区三区| 99国产精品久久久久老师| 欧美精品亚洲精品| 一区二区三区四区五区在线| 亚洲三级免费| 欧美日韩国产综合视频在线观看中文 | 一本色道久久综合精品竹菊| 欧美激情中文字幕在线| 日韩视频一区二区三区在线播放免费观看| 玖玖在线精品| 蜜臀久久99精品久久久久久9 | 在线综合亚洲欧美在线视频| 欧美日韩久久精品| 午夜电影亚洲| 午夜伦理片一区| 激情小说亚洲一区| 欧美国产高潮xxxx1819| 欧美国产激情| 亚洲日本免费| 国产精品一二一区| 欧美一区二区在线看| 午夜精品一区二区在线观看| 狠狠干成人综合网| 欧美不卡在线视频| 欧美激情亚洲一区| 亚洲一区日韩| 欧美影院久久久| 亚洲国产一区在线观看| 亚洲精品免费在线播放| 国产精品久久久久影院色老大| 久久国产加勒比精品无码| 久久天天躁狠狠躁夜夜爽蜜月| 91久久在线观看| 亚洲午夜精品| 亚洲国产婷婷| 亚洲天堂免费观看| 伊人成人网在线看| 一本色道久久综合狠狠躁篇的优点| 国产欧美大片| 亚洲狠狠丁香婷婷综合久久久| 欧美午夜精品久久久久久孕妇| 久久久噜久噜久久综合| 欧美精品日韩综合在线| 久久久国产91| 国产精品v欧美精品v日韩| 久久综合免费视频影院| 欧美午夜片欧美片在线观看| 你懂的网址国产 欧美| 国产精品卡一卡二| 亚洲高清在线精品| 国内不卡一区二区三区| 一区二区电影免费观看| 亚洲第一色在线| 欧美亚洲尤物久久| 亚洲在线视频网站| 欧美电影在线观看| 麻豆视频一区二区| 国产欧美日韩精品专区| 一二三四社区欧美黄| 亚洲国产婷婷| 久久久久高清| 久久久久久色| 国产精品亚洲一区二区三区在线| 亚洲国产精品电影在线观看| 影音先锋日韩有码| 欧美一区成人| 久久精品国产清自在天天线| 国产精品久久77777| 99xxxx成人网| 一区二区三区高清视频在线观看| 六十路精品视频| 欧美77777| 亚洲国产另类精品专区| 久久久久久久久一区二区| 另类亚洲自拍| 在线观看精品视频| 久久裸体艺术| 欧美高清不卡| 日韩视频在线永久播放| 欧美激情第六页| 亚洲精品久久久蜜桃| 亚洲美女毛片| 欧美日韩亚洲一区| 中文亚洲字幕| 亚洲一区二区三区在线| 欧美二区在线观看| 欧美日韩亚洲系列| 在线亚洲美日韩| 亚洲自拍偷拍网址| 欧美亚韩一区| 欧美一级欧美一级在线播放| 久久国产精品久久久久久久久久| 国产欧美日韩在线| 久久精品人人做人人综合| 欧美 日韩 国产 一区| 亚洲精品在线二区| 欧美日韩国产高清视频| 亚洲一区在线免费观看| 久久女同互慰一区二区三区| 亚洲国产精品嫩草影院| 欧美高清视频www夜色资源网| 亚洲蜜桃精久久久久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品一页| 免费观看成人网| 亚洲图色在线| 欧美福利一区二区三区| 中文av一区特黄| 国内久久婷婷综合| 欧美日韩免费观看一区=区三区| 亚洲欧美日韩国产一区二区三区| 蜜桃av噜噜一区| 亚洲午夜精品久久| 韩国一区二区三区在线观看| 欧美另类极品videosbest最新版本 | 欧美日韩国产成人在线| 亚洲欧美日韩天堂一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 一区二区视频在线观看| 欧美乱在线观看| 久久激情五月激情| 日韩视频在线免费观看| 免费试看一区| 久久精品官网| 亚洲四色影视在线观看| 亚洲高清123| 国产一区二区三区黄| 欧美日韩喷水| 欧美成人激情在线| 久久国产精品电影| 亚洲一区日韩| 一区二区三区四区蜜桃| 欧美不卡视频一区发布| 久久精品国产一区二区电影| 亚洲视频在线观看免费| 亚洲国产专区校园欧美| 国产一区二区精品久久| 国产精品久久久久久久久| 欧美精品亚洲| 欧美欧美天天天天操| 免费在线欧美视频| 麻豆国产va免费精品高清在线| 久久电影一区| 国产精品va在线播放|