文章主题:
🌟星际争霸AI揭秘:🔥深度学习时代的游戏智者🔍在游戏AI的进化历程中,尽管深度学习已崭露头角(`(.`),但早期多数仍受限于规则基础的设计。👀那么,这些神秘的AI规则究竟是如何构建的呢?遗憾的是,相关资料往往模糊不清,只提供了一个大概轮廓。📚网络上虽有零星探讨,但对于这类基于AI的决策机制,深入解析实属不易。它们就像棋局中的算法大师,遵循一套特定的计算逻辑,却不常透露其具体运算法则。🔍尽管如此,我们不妨想象:这些AI通过复杂的学习过程,从海量数据中汲取智慧,逐步优化策略,为玩家带来更逼真的挑战与惊喜。🚀对于想要深入了解这一领域的朋友,不妨关注未来的研究动态,或许未来的某个突破将揭示更多关于星际争霸AI的黑科技秘密。🎓
📚 分析了UAlbertaBot源码,深入研究了几篇AI代码解析。这款开源的星际争霸AI,自2010年起活跃于各类AI竞技场,其在2013年AIIDE星际争霸AI大赛中的冠军荣誉,无疑为学习者提供了宝贵的参考价值🌟。探索AI世界,UAlbertaBot是你的智慧导航✨。
总共写了这么几篇,可以作为参考。
架构和规则,宏观介绍UAlbertaBot的原理建造顺序搜索,介绍使用深度搜索算法去找到最优建造顺序的方法战斗模拟评估,介绍模拟队伍作战评估能否获胜的方法starterbot,一个最简单的机器人,从中理解最基础星际AI的写法策略制定,策略制定部分的代码分析建造实现,生产、建造相关系统的代码分析战斗实现,战斗相关代码分析寻路算法,地图相关代码的分析
这个程序分为如下几大部分:
ProductionManager 生产管理器
在程序中,策略管理器(StrategyManager)会负责选择合适的策略,而针对不同的策略需要生产不同的单位,StrategyManager会生成一个建造目标(build order goal ),包含要生产的内容,由ProductionManager去执行。由于建造单元有依赖关系,也会消耗资源,必需合理的安排生产的顺序。ProductionManager会调用StarcraftBuildOrderSearch进行搜索,找到最合理的建造顺序(后续还会详细介绍搜索的过程),形成建造列表(build order)按照优先级,建造队列(build order)里的单位。ProductionManager会调用BuildingManager来实现具体的建造过程,包括分配工人去建造、建造过程中工人被打死需要重新分配工人、管理建筑的状态(准备建、已分配工人、建造中、建造完成)。
CombatCommander 战斗管理器
如果敌人来到我方占领的区域,创建防御队伍(defense Squad)去防御。如果存在攻击单位,按照如下顺序进行攻击,a:已知的敌人基地;b:可见的敌人单元;c:已知的敌人建筑;d:进行探索,直到找到攻击目标。CombatCommander会根据需要创建队伍,如需要防御时创建防御队伍,攻击时创建攻击队伍,分配单元到各个队伍(Squads),并且管理它们。其中Squads模块会调用CombatSimulation进行战斗模拟(后续也会详细说明),如果预估会胜利,则指示队伍去攻击敌人;如果预估会失败,则撤退。Squads会调用各种MicroManager进行微观动作的操控。MicroManager是一个基类,派生出MeleeManager(混战)、RangedManager(范围攻击)、DetectorManager(侦查管理器),不同子类会实现一种特定行为的控制。在合适时间,设置一个工人去侦查,以探索地图区域。CombatCommander会调用scoutManager,负责侦查逻辑,a:具体逻辑是寻找敌人基地并往敌人基地的方向行进;b:如果在敌人基地内遇到敌方工人则攻击它;c:如果敌方工人反击,则撤退。
WorkerManager 工人管理器
如果有空闲工人,分配它们去收集矿产为每个提炼厂分配3个工人如果发现新的油矿,重新分配工人去挖矿如果需要建造,分配一些工人去建造
其他系统诸如InformationManager会记录已发现的敌人信息,MapGrid和MapTool会实现寻路辅助的功能。
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!