[SC2] Starcraft 2 AI分析 (翻譯)

看板StarCraft (星海爭霸2 - SC2)作者 (流言止於C4)時間15年前 (2010/03/02 17:28), 編輯推噓7(705)
留言12則, 8人參與, 最新討論串1/1
先說一下,目前網路上有非常多的高手們在討論,我只是挑其中一篇翻譯,而且我翻譯的 也不是很好,麻煩多多包涵。這篇是概略的介紹AI以及Scripts 。 目前的方法都是用MPQ Archives或者WinMPQ,把原本應該透過SC2 編輯器產生出來的檔案 抽出來,用文本的方式編輯地圖或者AI那些,改天我再找些這部份文章翻譯。 本篇文章原文:http://www.broodwarai.com/forums/index.php?showtopic=743 MPQ Archives:http://www.zezula.net/en/mpq/download.html WinMPQ:這好像是wow用的,我沒用過QQ 其他論壇討論:http://darkblizz.org/Forum2/land-of-ai/ AI Tools:http://www.broodwarai.com/tutorials/ashara/ 論壇部份或者其他的工具麻煩請版上各位先進多多推薦一下~ ------- Starcraft 2 AI 分析 Script 正如先前BZ所說,SC2 把Script(以下簡稱腳本)語言命名為Galaxy。語法非常接近普 通的C 語言,這也是BZ先前所說的。令人驚訝的是,從特殊單位的微行為處理,可看到SC 2 AI相當的開放。它在腳本中並沒有一個建立順序(build orders),似乎是種基於目標的 動態生成功能。 似乎擺放建築物也是一個硬編碼(hardcoded) ,但硬編碼藉由一些好方法,來定位不 同的choke point 或者擴張點,所以你可以簡單的告訴AI想要建立在最近的 choke point 。我仍然不太瞭解大部分的腳本的意義甚至它如何執行的,悲哀的,我不是個好程序員。 ( SC2這次很多都是Flash格式,而且目前沒看到switch只有一堆else if... ) Behavior 這就是讓事情變得有意思的地方,在以旁觀者的角度觀察SC2 AI後,我發現它在遊戲 中的互動是通過跟普通玩家一樣的介面。舉例來說你可以看到AI選取單位並且點擊地面來 命令單位移動。這是一個非常棒措施讓我們限制AI的APM 來調整AI難度。 現在SC2 Beta中當腳本執行的時候只有 "Very Easy"這部份有實施,其他的難度都還 沒完成,而且這AI APM大約在 100,所以你可以注意到它會犯一些人類會產生的錯誤。像 是單位生產後會直接跑去集結點,而不管剛剛經過的基地已經被攻擊了,因為AI還沒命令 它去攻擊。 既然AI在遊戲中的互動跟你一樣,它看地圖也跟你一樣,需要先作偵查來發現目標之 類的。 更困難的AI在腳本中大部分單位都有可用的微操幫助碼(Micro assist code) ,讓單 位在戰鬥中表現最佳,舉例來說人類鬼子的狙擊功能對單一目標有著嚴重的傷害,AI會掃 描範圍中有著足夠血量的敵人,但仍然不足以抵擋一次狙擊的目標下手。 ( 我猜是假設狙擊傷害100 目標hp 110 90 10,AI會挑90的下手,來尋求最大削弱敵人 ) 這是其中一項AI永遠比任何的人類玩家更快更好的部份。 ( 目前差不多有460個函數,355個是AI用的... ) Conclution 目前為止看起來SC2 的AI有能力打出一場完全無作弊的抗衡玩家的比賽,這是RTS 首 見的。我真的很期待去模組化(modding) 這個遊戲所創建的世界。 Function 任何一個對我抽取出的全套SC2 腳本感興趣的人,在這篇文章附件中可以找到。任何 一個人都歡迎來幫忙瞭解這些腳本的功能,還有它們之間的互相行為是如何作用。 目前為止可以看到SC2 有著極佳的系統來支援模組(Mod) ,實際的單機玩家和多人玩 家部份模組,已經像其他的模組一樣準備好了。 Starcraft2\Mods\Core.SC2Mod 遊戲中包涵的所有通用檔案(Global files),以及所有 包涵本機功能和定義的腳本檔案核心。 Starcraft2\Mods\Liberty.SC2Mod 第一個釋放出來版本的單人遊戲部份,包涵目前為止 所有AI檔案,如果檔案出現在這裡,在同一個核心中由這個模組運行的會有優先權。 Starcraft2\Mods\LibertyMulti.SC2Mod 多人遊戲的部份,看起來遊戲可以同時運行數 個模組,就像是World of Warcraft裡面的 Addons方式。 this one contains no scripts of interest tho. ( tho不懂是啥小縮寫,though? ) 這些是目前為止我能拿出來的,回到工作,Zala out! 原文的附件:http://0rz.tw/DwsiX Google分流:http://0rz.tw/yxhtH ------- 下面一位網友提供的,裡面包涵很多的東西,後面是三個文件放在GoogleCode,有興趣的 可以仔細看 Galaxy Wiki:http://galaxywiki.com/wiki/Main_Page Raw Events/Callbacks:http://0rz.tw/dpIen Raw Functions:http://0rz.tw/eWj8d Raw Types:http://0rz.tw/aemop >If the function isn't in this list then it simply doesn't exist (yet). >If you have the beta then chances are you can already mod the AI. ------ 補充一下好玩的東西,AI分級XD // Melee AI Functions only used by beginner/easy/medium. //---------------------------------------------------------------------------- // Very Easy // APM: 100 // scouts: starts late game // detect: late game or after being attacked by cloakers // wave 1: 100 resources, ~2 units, 480 seconds // wave 2: 300 resources, ~3 units, +360 seconds (840) // wave 3: 600 resources, ~4 units, +360 seconds (1200) // wave X: 900 resources, ~5 units, +300 seconds //---------------------------------------------------------------------------- // Easy // APM: 200 // scouts: starts late game // detect: late game or after being attacked by cloakers // wave 1: 300 resources, ~4 units, 450 seconds // wave 2: 800 resources, ~6 units, +340 seconds (790) // wave 3: 1500 resources, ~8 units, +340 seconds (1130) // wave X: xxx resources, ~10 units, +280 seconds //---------------------------------------------------------------------------- // Medium // APM: 300 // scouts: starts middle game // detect: middle game or after being attacked by cloakers // wave 1: 500 resources, ~6 units, 420 seconds // wave 2: 1000 resources, ~9 units, +320 seconds (740) // wave 3: 1800 resources, ~12 units, +320 seconds (1060) // wave X: xxx resources, ~15 units, +260 seconds //---------------------------------------------------------------------------- // Hard // APM: 400 // scouts: starts early game // detect: middle game or after being attacked by cloakers // wave 1: 700 resources, ~8 units, 390 seconds // wave 2: 1200 resources, ~12 units, +300 seconds (690) --- 如果活在Matrix,我就是Very Easy ~ Easy的Agent探員........ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.180.248

03/02 17:34, , 1F
該不會SC2的突破是A.I.吧XD
03/02 17:34, 1F

03/02 17:35, , 2F
RO的突破也是A.I.XD
03/02 17:35, 2F

03/02 17:37, , 3F
聽起來很nice,讓我也想來試寫看看了
03/02 17:37, 3F

03/02 17:37, , 4F
其中讓AI也公平地需要偵查跟花費APM這點還不賴
03/02 17:37, 4F

03/02 17:41, , 5F
Bz:放beta等玩家幫我們寫AI 在全部抄回去A_A
03/02 17:41, 5F
※ 編輯: mantohu 來自: 219.70.180.248 (03/02 17:59)

03/02 18:04, , 6F
幫推啊~ 饅頭你動作好快!~XD
03/02 18:04, 6F

03/02 18:05, , 7F
哪裡有突破? ai沒有學習機制
03/02 18:05, 7F

03/02 18:21, , 8F
AI不會學 有程式員能幫他學.....
03/02 18:21, 8F

03/02 18:22, , 9F
BZ在等玩家研究戰術,然後寫進去AI再開單機戰役XD
03/02 18:22, 9F

03/02 20:19, , 10F

03/02 20:20, , 11F
裡面主要都code的部份,高手不少,大推
03/02 20:20, 11F

03/02 20:23, , 12F
Addon部份好棒阿~~
03/02 20:23, 12F
文章代碼(AID): #1BZDeh5s (StarCraft)
文章代碼(AID): #1BZDeh5s (StarCraft)