作者mantohu (流言止於C4)
看板StarCraft
标题[SC2] Starcraft 2 AI分析 (翻译)
时间Tue Mar 2 17:28:08 2010
先说一下,目前网路上有非常多的高手们在讨论,我只是挑其中一篇翻译,而且我翻译的
也不是很好,麻烦多多包涵。这篇是概略的介绍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
1F:推 wxes50608:该不会SC2的突破是A.I.吧XD 03/02 17:34
2F:推 nfs258147:RO的突破也是A.I.XD 03/02 17:35
3F:推 ddavid:听起来很nice,让我也想来试写看看了 03/02 17:37
4F:→ ddavid:其中让AI也公平地需要侦查跟花费APM这点还不赖 03/02 17:37
5F:推 ponponx:Bz:放beta等玩家帮我们写AI 在全部抄回去A_A 03/02 17:41
※ 编辑: mantohu 来自: 219.70.180.248 (03/02 17:59)
6F:推 IF:帮推啊~ 馒头你动作好快!~XD 03/02 18:04
7F:推 unknow12:哪里有突破? ai没有学习机制 03/02 18:05
8F:推 surolanter:AI不会学 有程式员能帮他学..... 03/02 18:21
9F:→ mantohu:BZ在等玩家研究战术,然後写进去AI再开单机战役XD 03/02 18:22
11F:→ mantohu:里面主要都code的部份,高手不少,大推 03/02 20:20
12F:→ mantohu:Addon部份好棒阿~~ 03/02 20:23