[程式] 請教棋盤類遊戲AI學習建議

作者: eucylin (Cloud)   2015-07-01 14:28:36
本魯最近要跟別人合作寫一個 棋盤類、回合制的遊戲
棋盤大小在6x6 ~ 8x8 之間
規則類似象棋 + 遊戲王
透過移動棋子來攻擊對手的棋子,只是一回合可移動的棋子不只一個
最近在思考AI的部分怎麼寫
由於本魯以前沒接觸過什麼AI設計,對審局什麼的這方面較不理解
查找資料後又聽聞回合制的AI會比即時戰略的AI更難寫,甚感惶恐
所以來請教版上的神人大大:
有沒有什麼適合的AI入門書籍?(中文佳、回合制AI佳)
或是遊戲AI的教學或學習網站、經典必讀這類的
謝謝各位了!
作者: azureblaze (AzureBlaze)   2015-07-01 14:55:00
對AI而言回合和即時是一樣的東西吧會說回合難應該是因為棋類的發展很久了要做出跟其他比有競爭力的不容易
作者: cowbaying (是在靠北喔)   2015-07-01 15:18:00
我認為沒有什麼必讀的 重點是你想要怎樣讓你的程式能夠思考AI其實就是一堆if 組成的可以先參考版上#1Jx_qm_f 有原始碼
作者: cooper6334 (庫波)   2015-07-01 15:56:00
A*,Alpha-Beta,蒙地卡羅 可以google看看這些演算法
作者: hodsala (猴的沙拉)   2015-07-01 16:01:00
跟著感覺走
作者: titan1127 (泰坦子)   2015-07-01 17:11:00
你怎麼想就讓程式怎麼想
作者: LayerZ (無法如願)   2015-07-01 17:23:00
走出一步,算出一步,算出N步,邊算邊計分
作者: oikl1268 (迷路)   2015-07-01 18:04:00
看到遊戲介紹和我先前設計的桌遊竟然有9成像 ̄▽ ̄不過後來發現深廣度很難設計,就轉設計別的遊戲了
作者: zxcmoney (修司)   2015-07-01 19:06:00
將情境轉換成數字加以決策 就是運籌學與博弈論吧?
作者: ctrlbreak   2015-07-01 21:01:00
finite-state machine 有限狀態機
作者: laymu (炎羅)   2015-07-01 21:02:00
讓AI每次都丟骰子決定要幹麼就好了
作者: holymars   2015-07-01 22:33:00
即時制的AI通常基於狀態機(FSM)或行為樹(Behavior tree)回合制戰棋的AI會基於search algorithm像上面提的A*之類要基於search algorithm就得有一種計算方法來評估每一種盤面的「分數」再基於回合的盤面變化來進行search要說哪個比較難寫..總之就是各有各的用途吧
作者: viceversa56 (姊超猛)   2015-07-01 23:54:00
有空去看一下A*吧,很多尋路都會用到,當然不用也可以製作出來我覺得你這個遊戲沒有到這麼難,你的AI不是設計和電腦對戰,如果是設計成線上遊戲,就要用client server架構眼殘..把即時戰略看成要做線上即時遊戲..
作者: cybaw (y=sinx+cosx)   2015-07-02 12:49:00
離散數學?
作者: eucylin (Cloud)   2015-07-03 14:26:00
謝謝各位的建議!! 目前正在嘗試用Alpha-beta剪枝設計中
作者: ddavid (謊言接線生)   2015-07-04 01:22:00
@laymu 每次都丟骰子不行喔,這樣你會發現AI的行為完全沒有一致性,可能會發生前一刻往前走,下一刻又沒理由地往後走,連基本if-then AI的行動感都不如大概就像RPG遊戲中常見路人NPC在路上沒目標亂走一通的感覺回合制AI比即時制AI難寫的誤解,主因應是出在玩家對AI的期待差別。事實上舉出Starcraft跟LoL的AI來看,至今仍是遠遠落後玩家。Starcraft只要技術戰術運用得宜,從一挑二到一挑七家電腦都是沒問題的事情。LoL也是一個會玩的玩家就足以一個人殺爆五個電腦,這還是在電腦英雄的經濟是作弊處理的條件下。但玩家因為有操作感又殺得很爽,所以不覺得電腦爛到這個地步不好玩,真的想要強力對戰感的都去打玩家了。相較之下回合制的AI會比較被要求對應強度,特別是常見棋類遊戲的目標更都擺在直接正面跟人類對抗。一開始評估標準落差就很大了。
作者: os653   2015-07-04 03:11:00
Starcraft跟LoL的AI目的本來就不是要多強,會放水很正常以前War3有些特別強調AI的地圖就不是那麼好打了
作者: viceversa56 (姊超猛)   2015-07-05 00:33:00
身為一個玩家對ai期待至少不要走廢步 XD突然想到,以前做回合制遊戲,當ai難度提高Alpha-beta搜尋計算時間會變長,回合制遊戲電腦想個3~5秒沒關係,但線上即時遊戲的ai,沒辦法讓BOSS思考太久,這也許也是BOSS不強原因之一
作者: cjcat2266 (CJ Cat)   2015-07-05 05:57:00
是因為boss太強就不好玩了吧,強的即時遊戲boss不難寫難寫的是好玩的boss及時遊戲boss行為應由遊戲設計師和AI程式設計師合作像薩爾達傳說的boss就是這樣,不強,但是設計得很好玩
作者: ddavid (謊言接線生)   2015-07-07 01:38:00
即時戰略遊戲AI讓你覺得強的,一方面是地圖設計配合,另外就是加上一些作弊(地圖全開、收入調整)Starcraft跟LoL與其說AI本來就不是要多強,不如說要做得強Cost太高了沒意義。要是Cost不高的話當然是不做白不做,還可以加入看起來很公平的難度調整讓玩家看起來很高級XD另外對戰的即時戰略遊戲沒辦法用強大Boss處理難度,基本條件是公平的,在運算要快的前提下想跟戰術可以不斷進化學習的人類玩家一樣強實在挺難的。但事實上話說回來,即便是非即時的SLG,認真做AI的遊戲也是少中之少......XD
作者: cowbaying (是在靠北喔)   2015-07-07 08:15:00
太強的AI = hardcore
作者: LayerZ (無法如願)   2015-07-07 11:45:00
mmo boss強不強其實跟AI沒有多大關係喔,最近剛好接觸到一款遊戲 "史丹利的預言" 可以參考看看需要的不是AI而是心理學XD 不過跟棋盤AI完全是兩個方向了

Links booklink

Contact Us: admin [ a t ] ucptt.com