形如星际争霸这类电脑的Ai,是怎样做到的?简单说下原理

详情如题

推荐  (0) | 9人关注关注
4个答案
8 0

额。。。看题目的时候看错了,星际争霸看成了魔兽争霸是神马概念。
不过既然问题主体是“AI”,那么神马游戏也就不重要了。
手头有个博客,作者是暴雪的一个设计师,地址是 http://www.codeofhonor.com
他魔兽争霸,星际争霸,大菠萝都有参与过。博客介绍了做游戏的各种权衡和“黑幕”,非常有意思。
其中说到Warcraft的AI,相关内容如下:

Computer AI
As many gamers know, computer-controlled “Artificial Intelligence” (AI) players in strategy games are often weak. It’s common for human players to discover exploits that the computer AI is not programmed to defend against that can be used destroy the AI with little difficulty, so computer AI players usually rely upon a numeric troop advantage, positional advantage, or “asymmetric rules” in order to give players a good challenge.
In most Warcraft missions the enemy computer players are given entire cities and armies to start with when battling human players. Moreover, Warcraftcontains several asymmetric rules which make it easier for the AI player to compete, though these rules would perhaps be called outright cheating by most players.
One rule we created to help the computer AI was to reduce the amount of gold removed from gold mines to prevent them from being mined-out. When a human player’s workers emerge from a gold mine those workers remove 100 units of ore from the mine and deliver it back to the player’s town hall on each trip, and eventually the gold mine is exhausted by these mining efforts. However, when an AI-controlled worker makes the same trip, the worker only remove 8 units of ore from the mine, while still delivering 100 units into the AI treasury.
This asymmetric rule actually makes the game more fun in two respects: it prevents humans from “turtling”, which is to say building an unassailable defense and using their superior strategic skills to overcome the computer AI. Turtling is a doomed strategy against computer AIs because the human player’s gold-mines will run dry long before those of the computer.
Secondarily, when the human player eventually does destroy the computer encampment there will still be gold left for the player to harvest, which makes the game run faster and is more fun than grinding out a victory with limited resources.
Most players are aware of a more serious violation of the spirit of fair competition: the computer AI cheats because it can see through the fog of war; the AI knows exactly what the player is doing from moment to moment. In practice this wasn’t a huge advantage for the computer and merely served to prevent it from appearing completely stupid.
Interestingly, with the long popularity of StarCraft (over 14 years since launch and still played), a group of AI programmers has risen to the challenge of building non-cheating AIs. Aided by a library called BWAPI, these programmers write code that can inject commands directly into the StarCraftengine to play the game. Programmers enter their AIs in competitions with each other to determine the victor. While these BWAPI AI players are good, the best of them are handily beaten by skilled human opponents.


原文地址在:http://www.codeofhonor.com/blog/the-making-of-warcraft-part-3

星际基本没玩过,所以如果下面出现各种错误,可以随意吐槽。
个人简单理解就是:
首先制定一系列规则,比如来几个兵,计算对方小兵的战斗力,自己拉出对应的战斗力的,闲置小兵过去对砍什么的。

拿建筑为例子,
开场首先建筑什么,随后建筑什么,每个建筑都有个权重,
但是建筑有一些特殊的限制,金钱啊什么的,资源的修改可以触发一些线程,判断是否可以建筑,若可以,选择当前资源下权重最高的建筑什么的。


另外,楼上的说法不是很明白,游戏方面我是小白一个,但是,说机器不管人怎么做,这是不对的。
机器的AI,从本质上说,是一个决策进程,它有若干监控线程,当某些条件触发后,监控线程会返回信息,决策系统会做出相应的回应。
如文中所述,战争迷雾(翻译没问题吧?)对AI是无效的,对AI来说,玩家的动作其实也是被完全的监控的,当玩家的动作满足一定条件后,就会触发监控线程,决策系统会同时做出相应的对策。

@猪了个去 你别光点支持啊。。来个专业级别的撒。。我只是"相关"这个级别而已

回复 @SpaceXploration
AI之所以是AI,是因为它--至少到目前为止--其实只是人的intelligence,也就是设计者在设计的时候,预测出现某些特定情景后,给出特定的反应。比较低级的就是,比如你在游戏开头,直接追到对方老家,拆掉某个功能性建筑后,它可能是先补上这个建筑,再搞下个建筑。而不是傻兮兮的不管这个建筑,直接做下面的。
又比如你拿个小兵过去诱惑下AI的小兵,AI的小兵应该会被吸引到,而不是只会坚守岗位。
这就是AI的功劳。
星际一中,它的条件可能是比较简单: 当攒到兵为N的时候,开始进攻。
N是一个常量。

但据我所知,AI还是可以厉害很多的。
首先,更完善的条件。比如来个小小算法,可以简单评估当前局势,本方小兵战斗力,血量,对方小兵,血量都纳入评估。如果估计能打得过,就直接上去砍,否则跑掉。又比如追杀你某些小兵,却始终打不到,判断无法追上了,就自个儿回头了。

其次,一些模式的匹配,设置若干条件,得到在某个场合下,可以来个组合决策,比如拿一小波兵勾引住你,然后一大波兵来个包抄什么的。

总之,就是一系列判断,就看设计的人是否用心了。
星际争霸一产生的年代,机器那么破,又没有多少先例,人家机器脑子缺点货应该可以理解的。

另外,在其他领域的AI,还有其他更进一步的发展,
机器学习的各种模型正在大行其道,比如支持向量机,最大熵,马尔可夫模型什么的

其中一个主要分支,监督学习的主要原理就是,在关键节点抽取一系列特征,这组特征作为1个样本,然后给这个样本给出一个结论(结论类型1:大于0或者小于0,e.g.:支持向量机,以此判断是或者否;结论类型2:一系列类别之一,比如追杀,停下防御,往回跑之类,e.g. 条件随机域),这么搞一大堆样本后,经过一堆计算,得到一个结果数据。
然后在实际行动中,每到一个关键点,抽取各种特征,载入前面的结果数据后,就得到一个决策结果,是追杀呢还是防御呢什么的。

机器学习可以让AI更加犀利的处理各种情况。

机器学习我还没有见过被谁使用在游戏上(维基说有,我其实也是外行的说),我猜可能是如下两点原因:
首先,游戏嘛,找个乐子而已,如果做得谁都干不动,谁还去自虐。
其次,机器学习还是很烧机器的,玩游戏的时候,没事决策一下,低配置的机器可能就玩儿不转了。

以上全是浅薄之见,还请各路大牛喷完后纠正下。

2 0

ProtossProbe工程力学专业,果壳SpaceX小组组长

2013-06-11 14:44
支持者: 劣质数轴 非乌龟

我也不是很懂,不过个人感觉应该是设计了很多个AI的套路,等你进游戏之后电脑随意选择一种打法(比如说可能是RUSH,可能是正常打,可能是发展流的打法)
AI的建造顺序都基本是固定的,什么时候进攻你,用多少兵来进攻,基本上不会根据你的打法来改变。

0 0


我觉得关键要素有两个:时间点和操作,就是在什么时候做什么事情,比如造农民、拍基地什么的,就好像
lrc歌词一样,一句歌词对应一个时间点。星际二电脑现在有好多战术啊,从6d、4BG到中期运营一波再大后期决战,什么战术都有,碉堡了≧◇≦

0 0

星际争霸连电脑都打不过什么水平?

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区