精華區beta GameDesign 關於我們 聯絡資訊
我個人不算什麼老手 只能提供一點粗淺的想法互相討論 首先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
geken:推 01/29 15:14
kuso0516:推作弊XD 01/29 20:13
mudgame:這篇好長,分兩三次才看完..^^" 01/29 20:39
mudgame:不過真的很受用,尤其那個作弊..>O< 以前都沒想過可以這樣 01/29 20:40
mudgame:做,難怪有時打遊戲王,會發現電腦的牌超好,我的超爛這樣XD 01/29 20:40
mudgame:然後..謝謝大大的指導,總算對AI有比較進一步的認識了~:) 01/29 20:42
chrisho:都有作弊啦,只差明不明顯而已,像三國志大戰hard最後... 01/30 12:10
softcloud:按 電腦作弊啦! 01/30 14:00
LinaInverse:記得AOE作弊也很明顯..@@ 01/30 16:28
kuso0516:戰略遊戲作弊都超嚴重的XD 01/30 17:31
chrisho:不作弊的話,最好開發者都有那美國時間全專做AI... 01/31 12:07
ddavid:有一個可能性啦,就是學生在校把遊戲AI當專題、論文做,直 01/31 16:05
ddavid:接帶進遊戲公司、同人遊戲發表或是自組公司XD 01/31 16:06
loading1:作弊還挺有趣的 02/02 21:42