Re: [程式] 一般遊戲的AI作法有人知道嗎?

看板GameDesign作者 (靈魂之舞)時間16年前 (2008/01/29 12:08), 編輯推噓10(1004)
留言14則, 8人參與, 最新討論串3/6 (看更多)
我個人不算什麼老手 只能提供一點粗淺的想法互相討論 首先AI的撰寫方法 一般最常用的就是前面大大所提到的有限狀態機 有限狀態機顧名思義 就是在有限數量的狀態下經過判斷而反應出不同的行為模式 就以你在文章中推文的範例來說好了 HP太少時補血,HP正常時隨機攻擊 此時"HP太少"跟"HP正常"....即為所謂的"狀態" 當遇到"HP太少"這項狀態該做什麼 或當遇到"HP正常"這項狀態該怎麼反應 即為使用有限狀態機設計AI的基本概念 所以其實你的原始想法裡面 已經存在著有限狀態機的雛型了 另外,為了用較容易的方式設計出一個具有多變性的AI AI的設計也經常會使用到機率來加以輔佐 例如: 當"HP太少"時: XX%的機率用魔法補血、XX%的機率用道具補血、XX%的機率繼續攻擊、XX%的機率逃跑 而前提是對該角色是否具有補血魔法或補血道具進行判斷 並要對MP不足、道具不足時的行為反應進行設定 (當然、此部份方法很多,有限狀態機的狀態是有限的,但設計的方法是無限的) 將許多不同模組的判斷式以及反應方法,透過流程來撰寫成文件 原則上就會具有有限狀態機的大致型態了 再來,AI設定一個很重要的要點就是,流程 一開始處於最原始的狀態 接著就要開始設計不同層級的先後判斷模式 例如: =============================================================== 初始待機狀態 ----------------------------第一層----------------------------- 敵對角色是否進入攻擊範圍內 是=>進行第二層判斷 否=>回到初始待機狀態 ----------------------------第二層----------------------------- 敵對角色等級是否比自己高出超過五級、自己血量是否少於10% 是=>90%朝玩家反方向移動(移動多遠、多久,就要延伸到第三層) 10%朝玩家進行普通攻擊(使用何種技能,就要延伸到第三層) 否=>95%朝玩家進行普通攻擊  5%使用技能(使用何種技能,同樣就要延伸到第三層) =============================================================== 也就是說 經過了兩層(或更多)的判斷以後,才能決定該角色所要做出的行為模式 再來,談談你的紙牌遊戲吧 我個人紙牌遊戲的經驗不多 因此只能大略提一點想法 首先要做紙牌遊戲的AI 先要透徹瞭解該紙牌遊戲的"規則" 當你手上拿到一組牌組之後 依據你的規則所給予的優勢 不同牌組可以給予不同的出牌機率 這部份很難用量化的文字敘述 因為不同規則給予紙牌的出牌方向有著很大的差異 但紙牌遊戲通常都是以完全扣除對方生命值、以及保持自己生命值為最終目的 你可以以這個為方向 整理出你的紙牌遊戲規則中,能夠較佔優勢的出牌順序有哪些 如果手上剛好有可以達成優勢出牌順序的紙組 那麼優勢出牌順序的首張牌卡即可大幅增加其出牌機率 不過前提是,要先進行對於自己以及對方生命值的估算 假如自己生命值過低,而對方生命值又非一兩次可以擊倒 此時就可能要增加防守、迴避、補血性質的牌卡出牌機率 最後一點能夠較輕易設計出具有挑戰性AI的方法就是,作弊 例如連續派給電腦較佔優勢的牌組 或者讓電腦可以依據玩家手上的牌組進行反應 當然這部份要適當參酌 不可以作弊做到讓玩家摔手把砸鍵盤的程度 我自己設計AI時常說的說法是: "只要不被玩家發現作弊就不算作弊" 因此即便作弊,還是要調整不同的給好牌機率 不能每次都給電腦好牌 也可在電腦生命值過低的狀態下再提升給予好牌的機率 大致上就這樣 AI設計上細部可以再拆解、舉例、分析的部份當然還有很多 我這邊提供一點基本的想法 希望對你能有所助益 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.134.1

01/29 15:14, , 1F
01/29 15:14, 1F

01/29 20:13, , 2F
推作弊XD
01/29 20:13, 2F

01/29 20:39, , 3F
這篇好長,分兩三次才看完..^^"
01/29 20:39, 3F

01/29 20:40, , 4F
不過真的很受用,尤其那個作弊..>O< 以前都沒想過可以這樣
01/29 20:40, 4F

01/29 20:40, , 5F
做,難怪有時打遊戲王,會發現電腦的牌超好,我的超爛這樣XD
01/29 20:40, 5F

01/29 20:42, , 6F
然後..謝謝大大的指導,總算對AI有比較進一步的認識了~:)
01/29 20:42, 6F

01/30 12:10, , 7F
都有作弊啦,只差明不明顯而已,像三國志大戰hard最後...
01/30 12:10, 7F

01/30 14:00, , 8F
按 電腦作弊啦!
01/30 14:00, 8F

01/30 16:28, , 9F
記得AOE作弊也很明顯..@@
01/30 16:28, 9F

01/30 17:31, , 10F
戰略遊戲作弊都超嚴重的XD
01/30 17:31, 10F

01/31 12:07, , 11F
不作弊的話,最好開發者都有那美國時間全專做AI...
01/31 12:07, 11F

01/31 16:05, , 12F
有一個可能性啦,就是學生在校把遊戲AI當專題、論文做,直
01/31 16:05, 12F

01/31 16:06, , 13F
接帶進遊戲公司、同人遊戲發表或是自組公司XD
01/31 16:06, 13F

02/02 21:42, , 14F
作弊還挺有趣的
02/02 21:42, 14F
文章代碼(AID): #17dgQxKU (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #17dgQxKU (GameDesign)