自走棋冷知识之源码篇
近两个月来,一款 Dota2 中的内置小游戏 —— 自走棋(AutoChess)以风卷残云之势收割了各大直播平台以及游戏选手,并以 “下棋一时爽,一直下棋一直爽” 的名言俘获了无数粉丝的芳心,一度使完美的土豆服务器面临崩溃。鉴于玩家普遍痛恨 “代码哥” 的行为,笔者作为一个 CS相关专业的学生,想从源码的角度解析游戏中的某些看似不科学的巧合。
本文所参考的自走棋源码为Steam平台下 Dota2 文件中的自定义地图(版本为20190303)。
以下问题来自于不少志同道合的棋友,于精神混乱之际提出的疑问
- 问题1:为什么有些棋子看起来很聪明 (比如doom) ,有些棋子却愚蠢的令人发指 (比如经常打假赛的风行/光法/谜团) ?
实际上棋子的"智商"取决于棋子的 AI,在源码中我们可以看到,棋子在满蓝后技能的施法目标有15种(如下图所示)。而其中doom和火女的目标是10,也就是敌方等级最高的敌人(在最新的0314版本中火女目标被改成了1,惨遭削弱),这一设定让他们几乎稳定把技能丢在对方"大哥"身上,达到效益最大化。当然,为了不让doom太过强大,在寻找最高等级敌人的代码中,特别增加了一段,有百分之三十的几率会随机选择敌人,所以两个doom的容错率更大哟~