欢迎访问电子工程网!   登录 | 免费注册 ]   

mastiff的个人空间 http://www.eechina.com/space-uid-99574.html [收藏] [复制] [分享] [RSS]

博客

诸神之战在星际争霸1的实现[001]AI游戏的发端

已有 566 次阅读2013-8-7 07:57 |个人分类:人工智能

诸神之战在星际争霸1的实现[001]AI游戏的发端

启示录19:12至19:16,那率领众军的,没人知道他的名字。

古希腊创造了至今无人能及的民主政体,为后世留下了光辉灿烂的哲学思想,还有一本记载了诸神欲望、善恶和争战的神话故事。由此,人们找到了一个唯美掩盖血腥的词——诸神之战。

诸神之战在人世以游戏方式的展现,是因为上帝喜欢玩游戏;AI战争系统以星际争霸1为展现,是因为星际争霸乃上帝借暴雪之手赠与玩家的礼物。游戏的结束,是另一个唯美却掩盖更大血腥的词——诸神的黄昏。

这一切的到来,都是由于有人在大地上显神迹。临到终了,就有人要显更大的神迹。8000万美元的无人机太过昂贵,8000元或800元人民币的才是AI战争系统所追求的。在决定性意义上,AI战争系统只需要一个兵种——自杀机,让所有的钢铁都化做飞行机器,布满天宇,遮蔽太阳的光芒。它的历史任务是将现代化高科技战机、航母舰队和地面装甲集群送入垃圾堆,为《黑客帝国》的锡安抵御并摧毁乌贼军团,进攻乃至夺取机器之城。

于是,有这样一句话:给你一个上帝系统,你就能占领整个世界。

启示录21:23至21:25,那里不用日月光照,因为原没有黑夜。

游戏名称:星际争霸之母巢之战
游戏版本:1.08
种族:Protoss(简称P或P族,神族)

游戏任务M001:分矿

在《星际争霸1的AI设计思路:以人族开局为例》一文中,轮廓式地阐述了AI战争系统的基本概念和设计思路。这一模型主要使用了随机性的思想。为了更贴切地描述真实游戏玩家的意识,更完美地诠释复命思想,特对模型进行改进、调整和规范,将控制线(上帝系统)和指令序列分别视为玩家的大局观和具体操作,使两者均拥有分析中心、策略中心和计算中心,并实现两者在一定程度上的共享。这样,就确立了整个AI的基本结构。

所谓分矿,是指进入游戏后,对已有的4个Probe(俗称“农民”)进行操作,使1个农民采集1个矿的行为。AI进入游戏后,控制线要完成的动作有:计时(从0开始,以秒或更短的时间为单位,由分析中心完成),给建筑单位(大本)和兵种单位(4个Probe)分别建立指令序列(由策略中心完成),选取随机策略(由策略中心完成)。

此时,控制线可选择的策略有:采集资源(采矿),或建造建筑(水晶柱,气矿,等等)。可以想象,采集资源应该是最优的一种策略,因此,经过分析中心的多次比对后,AI应该可以认定游戏的开始时总应该选择这个策略,从而,其他的策略可以删除。这就实现了一个小概率事件。

1个Probe的指令序列可选择的策略有很多,从选择Probe后地图右下的小图中可以看到(有关策略应该在兵种分析中完成),指令序列应如上总是选择采矿。这里有两个技术性问题,一是这个Probe如何做到去采集离它最近的那一点矿?在地图分析中应该完成的是,将地图制作为网格地图,使得地图上每一个位置和单位都有自己唯一的坐标。Probe的计算中心依照网格坐标为它计算出一条路径,给予一个时间限制,命令其前往最近的那一点矿进行采集。为什么Probe完成的任务要带时间限定,是因为为了以后的防止敌方封气矿等策略。二是假如有2个Probe计算出某点距自己最近的矿是同一个时,该怎么办?这就需要它们共享控制线的分析中心,在前往采集前传送任务信息给控制线,告知自己将要去往的位置等信息,进而,等待控制线判断是否出现两个相同的位置信息,如果是的,就可以由控制线的策略中心随机选1个Probe采集那点矿,另一个则由控制线的计算中心和分析中心另行计算和重新分配要采集的矿点。这样,可以防止2个Probe采集同一片矿时有一个处于“停工”的状态,实现同一时间内资源采集的最大化。兵种单位与任务或地理位置之间,则建立起了一一对应的关系。

可以看到,时间与随机性和复命思想一样,在AI系统里的意义是“非凡”的,虽然在哲学里对时间概念的滥用、误用进行了大加鞭笞;AI系统的操作更加复杂了,却更实用了,也更加真切地体现了我们这个现实的AI系统里的运作模式。

相关阅读
★绝对真理的内涵、架构与印证
★概率论:完全可能性的理论与现实图景
★悖论问题的统一解
★从延安文艺座谈会到人类社会的未来
★发现号航天飞机——自然算法伟大的飞矢变换
★星际争霸1的AI设计思路:以人族开局为例
★千古同一梦,开门笑解痴——我的红楼梦

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册
验证问答 换一个 验证码 换一个

回顶部