找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 17957|回复: 11

从零开始的AI设计--萌新向AI设计指南

[复制链接]
发表于 2021-4-15 20:48:57 | 显示全部楼层 |阅读模式
本帖最后由 ys19971023 于 2021-4-25 14:43 编辑

各位老板,AI是一个MOD中比较重要的部分,写好它直接关乎到玩家在游玩单机时的体验。相信大部分玩红警的都是在和AI摔♂跤。眼下,AI教程有马王头的2019【AI教程】AI的艺♂术 - 2019年6月版AI教程和耗神之前的AI教程,本人在研读后,又借鉴了MLP AI在用一个月给自己制作的主要是跟同学一起MOD设计好了AI,效果就是反应出来感觉跟之前完全就是两个游戏。所以想跟大家分享经验,主要是个人使用的一些参数的数值及思路等。希望给将要设计或者害怕设计AI的萌新一点思路。
前置任务:
1.你需要先把上面提到两篇AI教程一字不落的看完,这是基础。然后换上Ares平台,目前来说,反正你要用本篇经验的话得用Ares
2.把你的建筑列表整理好,用Excel表格算好AI要用的三种不同的值,如图

3.再整理一张科技等级对应注册名表(PS:我的MOD把TechLevel都按兵的价格出现顺序等重新改了一下,当然不是所有的AI设计都要把科技等级注意到,但是我觉得既然已经准备设计个完整的AI,就一块做了吧;总之至少你得把所有电脑要用的单位的注册名弄个表),然后接着把这种兵分类一下,比如AA啊,什么的。。。

4.写一个AI大纲,主要是AI的部队类型,总的来说肯定大类型分为防御型和进攻型,建议先写防御型小队,因为防御型小队是AI最先要造的,也是必须的,所以说先写防御再写进攻吧。以下是我个人的看法,您可以参考并自己按需补充。
  • 常驻防空部队
  • 常驻防地部队
  • 常驻巡逻部队
  • 反应防空部队
  • 反应防地部队
  • 反应巡逻部队
注:常驻代表无论如何都会使用的部队(就是日常炮灰部队),反应则是指遇到特定情况再增派的防御部队(比如防Rush,防间谍AI)
5.然后设计好三种难度梯度出兵方案,设计时难度梯度你可以想象日常对战情景,你能想到的最好的方案都用在困难难度上,其他难度则进行相应的削弱即可得到简单和普通难度。因为我的MOD科技树修改了(PS:很多修改跟MO2的设计相同,如果您玩过那就更容易看了),所以我这里写上我当时用的,您可以参考并自己按需修改。首先我拿防空举例:
简单 5重装 5煤球兵 5鱼叉兵 5真空兵 5枪兵
中等 5IFV 5煤球 5盖特 5炮车 5炮车
困难 5防空车/6飞人/2防空要塞 5煤球/3天启 5盖特/6飞人/5飞碟 5防空车/2要塞5防空车/6武直
  • 总之就是简单难度常驻防空就靠5个防空兵
  • 普通难度常驻防空使用5个防空车
  • 困难难度有多套防空方案,随机抽取一套
6.进攻方面AI部队类型
  • 正面进攻部队
  • 敌后战场部队
注:正面进攻部队是普通使用的部队(就是正面跟你不断打,以干掉你为目的的部队),敌后战场部队就是一些进行阴险战术的部队,旨在出其不意造成巨大破坏(比如运输车偷家,自爆小队,神经车突击队,巷战,间谍破坏等)7.设计好三种难度梯度的进攻出兵方案,以下方案仅供参考
  • 简单难度:前期纯步兵,中后期混合步兵与纯坦克
  • 普通难度:前期混合步兵,中期纯坦克,后期步兵+坦克
  • 困难难度:前期坦克+步兵,中后期混合坦克
注:实际操作有交叉,比如困难难度,为了保证进攻的节奏感,您还是要在前期让电脑冲一波初始的坦克(纯坦克部队),而且,只冲坦克也会让玩家感到疲劳,所以还是要加一点步兵,就是说这个分类只是大体的方向,具体还是要混合一点。
具体出什么样的兵,怎么混合部队进攻,那这个时候你可以对照你的之前列好的单位注册名,在脑海中自由组合。
三种难度虽然都有相似的地方,比如都会有纯坦克,可以通过数量来进行难度区分,比如普通一次只派5个犀牛,而困难一次派8个。
8.其他部队
  • 经济类部队
  • 建设性部队
注:此类部队负责电脑日常行为,经济类比如电脑自动补矿车,建设性小队比如电脑没补充基地等
9.三种难度的其他类型部队出兵方案设计,以下方案仅供参考
重建基地方案 扩建基地方案 补矿车方案
简单 没基地时补基地 矿车少于3个时补矿车
普通 没基地时补基地 发现你开了三个基地(或囤三个基地车后)自己也追加基地 矿车少于2个时补矿车
困难 没基地时补基地 发现你开了二个基地(或囤二个基地车后)自己也追加基地, 矿车少于1个时补矿车
注:我个人认为不要让电脑直接就开始多建基地,那样太变态,给玩家带来的体验极差,所以我选择的是自己没基地,或者电脑看到你备用基地太多的时候再多建基地。其次,你要知道,补矿车对于电脑来说是拖后腿的行为,一般我们都会选择用其他手段增加电脑的收入(如在Rules中调AI的资金红利等等),因此,像困难难度,为了不拖电脑后腿又不让玩家觉得电脑太离谱,仅象征性的没矿车了补1个即可,当然你觉得没必要的话,可以直接不给电脑矿车。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2021-4-15 20:49:38 | 显示全部楼层
本帖最后由 ys19971023 于 2021-4-25 16:06 编辑

终章:
做完以上工作,你的AI工作正式开始
  • Rules中的AI部分:首先大多数东西在教程里写的很清楚,而且您可以在ModEnc网站上搜AI,找到相关AI加强的推荐设置,我只是在这里写几个其他的我个人推荐的值,仅供参考,不喜勿喷
    1. AISafeDistance=35 ;AI执行53号指令时的集结点与敌方基地的距离。
    2. AIFriendlyDistance=20;AI执行54号指令时的集结点与己方基地的距离。
    复制代码
    以上两个数值,一个是电脑在自己家聚兵的时候,减轻交通堵塞;另一个就是这个地方基地的距离,这个距离设置成这个我只能说是巧了,这个距离在原版地图一般都是家门口的高地,或者家门口的桥头,电脑聚在这里会直接跟你的进攻部队交火,会大大增加作战难度。
  • AI部分:首先我建议你直接把旧的AI文件清空,做MOD完全就自己重写就好了。AI部分有很多借鉴了@Mamamia 的MLP AI
  • AI文件清空后,先把这几个字段写上
  1. [AITriggerTypes]

  2. [TeamTypes]

  3. [ScriptTypes]

  4. [TaskForces]

复制代码
  • 首先,建议先写脚本[ScriptTypes](ST),因为脚本在很多情况下是通用的,写的时候头脑风暴,按照你写的部队类型,想想电脑该做什么。直接把想法先一行行地码上,然后再注册命名,命名的时候最好是自己根据脚本类型按照一种格式命名,并把相应的注释简要写上,这样有助于你在引用脚本的时候直接找到需要的脚本,下面给出我脚本的一部分以供参考
    1. [ScriptTypes]
    2. ;防御
    3. 1=ADEFST1-G;1巡逻
    4. 2=ADEFST2-G;守1家
    5. 3=ADEFST3-G;守1电
    6. 4=ADEFST4-G;守1矿
    7. 5=ADEFST5-G;守1兵
    8. 6=ADEFST6-G;守1工
    9. 7=ADEFST7-G;守1港
    10. 8=ADEFST8-G;守1机
    11. 9=ADEFST9-G;守1超1
    12. 10=ADEFST10-G;守1超2
    13. 11=ADEFST11-G;反应防御1
    14. 12=ADEFST12-G;反应防御2
    15. 13=ADEFST13-G;反应防御3

    16. 14=SDEFST1-G;2巡逻
    17. 15=SDEFST2-G;守2家
    18. 16=SDEFST3-G;守2电
    19. 17=SDEFST4-G;守2矿
    20. 18=SDEFST5-G;守2兵
    21. 19=SDEFST6-G;守2工
    22. 20=SDEFST7-G;守2港
    23. 21=SDEFST8-G;守2机
    24. 22=SDEFST9-G;守2超1
    25. 23=SDEFST10-G;守2超2
    26. 24=SDEFST11-G;反应防御1
    27. 25=SDEFST12-G;反应防御2
    28. 26=SDEFST13-G;反应防御3

    29. 27=YDEFST1-G;3巡逻
    30. 28=YDEFST2-G;守3家
    31. 29=YDEFST3-G;守3电
    32. 30=YDEFST4-G;守3矿
    33. 31=YDEFST5-G;守3兵
    34. 32=YDEFST6-G;守3工
    35. 33=YDEFST7-G;守3港
    36. 34=YDEFST8-G;守3机
    37. 35=YDEFST9-G;守3超1
    38. 36=YDEFST10-G;守3超2
    39. 37=YDEFST11-G;反应防御1
    40. 38=YDEFST12-G;反应防御2
    41. 39=YDEFST13-G;反应防御3

    42. 40=ZDEFST1-G;4巡逻
    43. 41=ZDEFST2-G;守4家
    44. 42=ZDEFST3-G;守4电
    45. 43=ZDEFST4-G;守4矿
    46. 44=ZDEFST5-G;守4兵
    47. 45=ZDEFST6-G;守4工
    48. 46=ZDEFST7-G;守4港
    49. 47=ZDEFST8-G;守4机
    50. 48=ZDEFST9-G;守4超1
    51. 49=ZDEFST10-G;守4超2
    52. 50=ZDEFST11-G;反应防御1
    53. 51=ZDEFST12-G;反应防御2
    54. 52=ZDEFST13-G;反应防御3

    55. 53=FDEFST1-G;5巡逻
    56. 54=FDEFST2-G;守5家
    57. 55=FDEFST3-G;守5电
    58. 56=FDEFST4-G;守5矿
    59. 57=FDEFST5-G;守5兵
    60. 58=FDEFST6-G;守5工
    61. 59=FDEFST7-G;守5港
    62. 60=FDEFST8-G;守5机
    63. 61=FDEFST9-G;守5超1
    64. 62=FDEFST10-G;守5超2
    65. 63=FDEFST11-G;反应防御1
    66. 64=FDEFST12-G;反应防御2
    67. 65=FDEFST13-G;反应防御3
    68. ;基地
    69. 66=MCVST1-G;基地补充
    70. 67=MCVST2-G;基地骑脸
    71. ;巷战
    72. 68=UBNST1-G;巷战防御
    73. 69=UBNST2-G;巷战进攻
    74. 70=UBNST3-G;步兵碉堡
    75. 71=UBNST4-G;坦克碉堡
    76. ;通用
    77. 72=ATKST1-G;瞎打
    78. 73=ATKST2-G;游击
    79. 74=ATKST3-G;前线部署
    80. 75=ATKST5-G;前线埋伏
    81. 76=ATKST6-G;前线压制
    82. 77=ATKST7-G;跟随

    83. 78=ATKST8-G;平推
    84. 79=ATKST9-G;打楼
    85. 80=ATKST10-G;打钱
    86. 81=ATKST11-G;打人
    87. 82=ATKST12-G;打车
    88. 83=ATKST13-G;打厂
    89. 84=ATKST14-G;打塔
    90. 85=ATKST15-G;打电
    91. 86=ATKST16-G;打房

    92. 87=ATKST17-G;打钱打人
    93. 88=ATKST18-G;打钱打车
    94. 89=ATKST19-G;打人打车
    95. 90=ATKST20-G;打人打钱
    96. 91=ATKST21-G;打人打楼
    97. 92=ATKST22-G;打车打人
    98. 93=ATKST23-G;打车打塔
    99. 94=ATKST24-G;打车打楼
    100. 95=ATKST25-G;打塔打车
    101. 96=ATKST26-G;打塔打楼

    102. 97=ATKST27-G;近距传送
    103. 98=ATKST28-G;远距传送
    104. 99=ATKST29-G;传送打楼
    105. 100=ATKST30-G;传送打车
    106. 101=ATKST31-G;传送打人
    107. 102=ATKST32-G;传送打钱
    108. 103=ATKST33-G;传送1家
    109. 104=ATKST34-G;传送2家
    110. 105=ATKST35-G;传送3家
    111. 106=ATKST36-G;传送4家
    112. 107=ATKST37-G;传送5家



    113. 108=ATKST38-G;铁幕打车
    114. 109=ATKST39-G;铁幕打楼
    115. 110=ATKST40-G;铁幕打塔
    116. 111=ATKST41-G;铁幕1家
    117. 112=ATKST42-G;铁幕2家
    118. 113=ATKST43-G;铁幕3家
    119. 114=ATKST44-G;铁幕4家
    120. 115=ATKST45-G;铁幕5家

    121. 116=ATKST46-G;潜能打车
    122. 117=ATKST47-G;潜能打楼
    123. 118=ATKST48-G;潜能打塔

    124. 119=NVLST18-G;轰4港

    125. ;飞机
    126. 120=AIRST1-G;瞎炸
    127. 121=AIRST2-G;炸矿
    128. 122=AIRST3-G;炸人
    129. 123=AIRST4-G;炸车
    130. 124=AIRST5-G;炸厂
    131. 125=AIRST6-G;炸塔
    132. 126=AIRST7-G;炸电
    133. 127=AIRST8-G;炸房
    134. 128=AIRST9-G;炸科技
    135. 129=AIRST10-G;炸1超
    136. 130=AIRST11-G;炸2超
    137. 131=AIRST12-G;炸2核电
    138. 132=AIRST13-G;炸3超
    139. 133=AIRST14-G;炸4超
    140. 134=AIRST15-G;炸5超
    141. ;船
    142. 135=NVLST1-G;待命
    143. 136=NVLST2-G;压制
    144. 137=NVLST3-G;制海权

    145. 138=NVLST4-G;轰1港
    146. 139=NVLST5-G;轰1岸
    147. 140=NVLST6-G;轰1家
    148. 141=NVLST7-G;轰1超

    149. 142=NVLST8-G;轰2港
    150. 143=NVLST9-G;轰2岸
    151. 144=NVLST10-G;轰2家
    152. 145=NVLST11-G;轰2超
    153. 146=NVLST12-G;轰2电

    154. 147=NVLST13-G;轰3港
    155. 148=NVLST14-G;轰3岸
    156. 149=NVLST15-G;轰3家
    157. 150=NVLST16-G;轰3超
    158. 151=NVLST17-G;轰3塔

    159. 152=NVLST19-G;轰4岸
    160. 153=NVLST20-G;轰4家
    161. 154=NVLST21-G;轰4超

    162. 155=NVLST22-G;轰5港
    163. 156=NVLST23-G;轰5岸
    164. 157=NVLST24-G;轰5家
    165. 158=NVLST25-G;轰5超
    166. 159=NVLST26-G;轰5塔

    167. ;矿车
    168. 160=AMINERST-G;1
    169. 161=SMINERST-G;2
    170. 162=YMINERST-G;3
    171. 163=ZMINERST-G;4
    172. 164=FMINERST-G;5

    173. ;暗度陈仓
    174. 165=BASEST1-G;1
    175. 166=BASEST2-G;2
    176. 167=BASEST3-G;3
    177. 168=BASEST4-G;4
    178. 169=BASEST5-G;5

    179. 170=ATKST4-G;战地医疗

    180. ;间谍
    181. 171=SPYST1-G;间谍1电
    182. 172=SPYST2-G;间谍1矿
    183. 173=SPYST3-G;间谍1兵
    184. 174=SPYST4-G;间谍1车
    185. 175=SPYST5-G;间谍1雷
    186. 176=SPYST6-G;间谍1超
    187. 177=SPYST7-G;间谍2电
    188. 178=SPYST8-G;间谍2矿
    189. 179=SPYST9-G;间谍2兵
    190. 180=SPYST10-G;间谍2车
    191. 181=SPYST11-G;间谍2雷
    192. 182=SPYST12-G;间谍2超
    193. 183=SPYST13-G;间谍3电
    194. 184=SPYST14-G;间谍3矿
    195. 185=SPYST15-G;间谍3兵
    196. 186=SPYST16-G;间谍3车
    197. 187=SPYST17-G;间谍3雷
    198. 188=SPYST18-G;间谍3超
    199. 189=SPYST19-G;间谍4电
    200. 190=SPYST20-G;间谍4矿
    201. 191=SPYST21-G;间谍4兵
    202. 192=SPYST22-G;间谍4车
    203. 193=SPYST23-G;间谍4雷
    204. 194=SPYST24-G;间谍4超
    205. 195=SPYST25-G;间谍5电
    206. 196=SPYST26-G;间谍5矿
    207. 197=SPYST27-G;间谍5兵
    208. 198=SPYST28-G;间谍5车
    209. 199=SPYST29-G;间谍5雷
    210. 200=SPYST30-G;间谍5超

    211. ;工程师
    212. 201=ENGST1-G;工程师修桥
    213. 202=ENGST2-G;工程师油井
    214. 203=ENGST3-G;工程师医院
    215. 204=ENGST4-G;工程师商店
    216. 205=ENGST5-G;工程师机场
    217. 206=ENGST6-G;工程师前哨
    218. 207=ENGST7-G;工程师电厂
    219. 208=ENGST8-G;工程师时间
    220. 209=ENGST9-G;工程师警察局
    221. 310=ENGST10-G;工程师机械厂
    222. 311=ENGST11-G;运输工程师1家
    223. 312=ENGST12-G;运输工程师2家
    224. 313=ENGST13-G;运输工程师3家
    225. 314=ENGST14-G;运输工程师4家
    226. 315=ENGST15-G;运输工程师5家
    复制代码
    然后直接在AI最下面部分按照你的注册表,一项项的写就可以了,写的时候就体现出之前整理的建筑列表的作用了,具体怎么写就要看你的MOD了,如果改了建筑列表,用的ID肯定不一样了,我只晒一条参考吧
    1. (上方是AI其他部分)

    2. ;-----------脚本--------------
    3. ;防御
    4. [ADEFST1-G]
    5. Name=1巡逻
    6. 0=58,131072
    7. 1=5,5
    8. 2=58,131073
    9. 3=5,10
    10. 4=58,196608
    11. 5=5,10
    12. 6=58,196609
    13. 7=5,10
    14. 8=49,0
    15. 9=6,5

    16. (下方是其他的脚本)
    复制代码
    注:写脚本的时候多使用49号动作,以保证触发分量调节AI的功能



  • 写完脚本之后,我们开始写特遣部队[TaskForces](TF),因为特遣部队也有一定的通用性,比如你间谍不管是偷什么,都是几个间谍。还是先头脑风暴,想想电脑应该用什么样的部队打,这时候之前列的三种梯度的部队类型就有用了,比如之前的防空部分直接对照着写。对于进攻的,因为只是写混坦克进攻,所以拿出注册名表来,自己挨个注册单位思考,他可以怎么组合,要做什么。以下仅供参考,因为我是5个阵营,这里只给盟军阵营的,其他的差不多,用省略号代替了,其他的只列框架
    1. [TaskForces]
    2. ;防空
    3. 0=ADEFTFAA1-G;5防空兵
    4. 1=ADEFTFAA2-G;5防空车
    5. ……

    6. 10=ADEFTFAA3-G;要塞防空
    7. ……

    8. ;特殊防御
    9. 14=ADEFTF1-G;要塞防地
    10. 15=ADEFTF2-G;飞人防
    11. ……

    12. ;巡逻
    13. 21=AATSPYTF-G;反间谍
    14. ……

    15. ;通用
    16. ;For easy AI
    17. ……
    18. 27=AATKETF1-G;8个灰熊
    19. ……
    20. 31=AATKETF2-G;6遥控-AC
    21. ……
    22. 34=AATKETF3-G;5光棱
    23. ……
    24. 39=AATKETF4-G;5幻影
    25. ……
    26. 47=AATKETF5-G;5监狱
    27. ……
    28. 50=FATKETF5-G;5共振
    29. 51=AATKETF6-G;1要塞
    30. ……

    31. 54=AATKETF7-G;3海豹-AC
    32. 55=AATKETF8-G;3狙击
    33. 56=AATKETF9-G;5光棱
    34. 57=AATKETF10-G;3时空
    35. ……

    36. ;For medium AI
    37. ……
    38. 70=AATKMTF1-G;10个灰熊
    39. ……
    40. 74=AATKMTF2-G;8遥控-AC
    41. ……
    42. 77=AATKMTF3-G;6光棱
    43. 78=AATKBTF3-G;3光棱+5灰熊
    44. ……
    45. 87=AATKMTF4-G;6幻影
    46. ……
    47. 95=AATKMTF5-G;6监狱
    48. 96=AATKMTF6-G;3幻影+3监狱
    49. ……
    50. 102=AATKMTF7-G;2要塞
    51. 103=AATKMTF8-G;4光棱+1要塞
    52. ……

    53. 108=AATKMTF9-G;5海豹-AC
    54. 109=AATKMTF10-G;3狙击
    55. 110=AATKMTF11-G;8光棱
    56. 111=AATKMTF12-G;光棱+光棱
    57. 112=AATKMTF13-G;5时空
    58. 113=AATKMTF14-G;8飞人
    59. ……

    60. ;For Hard AI
    61. ……
    62. 133=AATKHTF1-G;12个灰熊
    63. ……
    64. 137=AATKHTF2-G;10遥控-AC
    65. ……
    66. 139=AATKHTF3-G;8光棱
    67. 140=AATKHTF4-G;5光棱+7灰熊
    68. ……
    69. 149=AATKHTF5-G;8幻影
    70. 150=AATKHTF6-G;5幻影+8灰熊
    71. ……
    72. 159=AATKHTF7-G;8监狱
    73. 160=AATKHTF8-G;5幻影+5监狱
    74. ……
    75. 170=AATKHTF9-G;3要塞
    76. 171=AATKHTF10-G;5光棱+2要塞
    77. 172=AATKHTF11-G;5幻影+3要塞
    78. 173=AATKHTF12-G;5幻影+3监狱+2要塞
    79. ……

    80. 183=AATKHTF13-G;6海豹-AC
    81. 184=AATKHTF14-G;3海豹车
    82. 185=AATKHTF15-G;3狙击
    83. 186=AATKHTF16-G;1狙击车
    84. 187=AATKHTF17-G;8光棱
    85. 188=AATKHTF18-G;5时空
    86. 189=AATKHTF19-G;3时空车
    87. 190=AATKHTF20-G;8飞人
    88. 191=AATKHTF21-G;8飞人+5光棱
    89. 192=AATKHTF22-G;8飞人+5幻影
    90. ……

    91. ;特殊攻击
    92. 218=AATKHTF23-G;夜莺TANY偷
    93. ……
    94. ;特殊
    95. 232=ABASETF-G;基地
    96. ……
    97. 237=AMINERTF-G;矿车
    98. ……
    99. ;巷战
    100. 242=SUBNTF-G
    101. 243=YUBNTF-G
    102. 244=ZUBNTF-G
    103. 245=FUBNTF-G
    104. ;海军
    105. 246=ANVLTF1-G;5驱逐
    106. 247=ANVLTF2-G;5海豚
    107. 248=ANVLTF3-G;3神盾
    108. 249=ANVLTF4-G;5光棱
    109. 250=ANVLTF5-G;5时空
    110. 251=ANVLTF6-G;3航母
    111. 252=ANVLTF7-G;5驱逐+3光棱
    112. 253=ANVLTF8-G;5驱逐+3时空
    113. 254=ANVLTF9-G;8驱逐
    114. 255=ANVLTF10-G;8海豚
    115. 256=ANVLTF11-G;8光棱
    116. 257=ANVLTF12-G;8时空
    117. 258=ANVLTF13-G;5驱逐+5光棱
    118. 259=ANVLTF14-G;5驱逐+5时空
    119. 260=ANVLTF15-G;5航母
    120. ;国家
    121. 352=COUNTRY1-G;Americans
    122. 353=COUNTRY2-G;Alliance
    123. 354=COUNTRY3-G;French
    124. 355=COUNTRY4-G;Germans
    125. 356=COUNTRY5-G;British
    126. ……
    复制代码

然后根据组合,在AI底部按照上方的列表一个个地写好单位,这里只拿一个作说明(其实也没必要说明)
  1. (上方为AI其余部分)
  2. ;--------------部队-----------------
  3. ;防空
  4. [ADEFTFAA1-G]
  5. Name=5防空兵
  6. 0=5,GGI
  7. Group=-1
复制代码



  • 特遣部队写完之后,开始写AI触发[AITriggerTypes],我建议触发与作战小队[TeamTypes]一起写,即触发使用了这个作战小队,接着把这个作战小队写出来。因为这部分比较复杂,我单独详细说明:
  • AI触发的设计关键有两点,一个是触发条件,另一个就是触发分量,我们先来说触发条件,设计触发条件的时候要考虑一下难度梯度,并结合你的之前特遣部队进行设置,我只举部分例子:
例1.对于断电偷袭:简单难度不断电偷袭,中等难度电力红时偷袭,困难难度电力黄时就专门过来打你电厂并在电力红时进行偷袭。例2.对于反应防御:简单难度发现你屯了10辆天启后买5个天启等着守家,中等难度发现你屯了8辆后买8个天启等着守家,而困难难度发现你屯了6个就开始买8个天启等着守家。注:千万不要太过分,否则游戏体验差,我曾经设计成玩家每屯5个电脑也跟着屯5个,一个是触发条件不好调,再一个就是这样根本没法打,差不多电脑屯8个守一下就得了!
  • 触发分量的合理分配,注意在分配触发分量时先弄明白要达到什么效果,分量说白了就是一种影响电脑出兵概率的问题,其中有几个特殊值0-永不触发和5000-必定触发。用于电脑在失败多少次后换另一种出兵方式。这里我在底下拿我的分量做举例说明。
    1. AITriggerSuccessWeightDelta=20;5
    2. AITriggerFailureWeightDelta=-50;-5
    复制代码
    这是rules部分,分别控制触发成功和失败后的权重变化,可见我目前的设置是成功一次分量+20,失败一次分量-50
  • 目前对于困难难度的几种AI种类,我是这样设计分量的(排序与AI触发格式排序相同),仅供参考,简单难度的我就不说了,无脑都是600,600,600。
  • 先来一些非进攻性的AI,因为涉及的情况比较简单,分量也比较单一
基础分量最小分量最大分量
补基地 5000 5000 5000
常驻防空与反应防空 700 700 700
常驻防地 600 550 600
反应防地 650 600 650
防间谍 5000 5000 5000
以上的设计理念:
  • 补基地是基地炸了相关的肯定要求快点触发
  • 防空比防地优先,这是考虑到一般电脑防空力弱
  • 反应防地比常驻防地优先,因为这部分是根据敌军屯兵数量来的
  • 防间谍,有间谍触发一次买狗巡逻就完事了
  • 接着说进攻类,单独列出进攻类,因为进攻类情况实在是多,我设计了很多种分量,只列举盟军,仅供参考
基础分量 最小分量 最大分量
步兵/间谍骚扰类(海豹、恐怖分子) 300 300 350
步兵正常进攻类(狙击手,光棱)250 0 350
步兵偷袭类(飞行兵、超时空兵) 5000 5000 5000
单一坦克/海军进攻 650 600 650
多种坦克/海军混合进攻 600 600 700
步兵+坦克进攻 620 550 660
飞机乱炸 100 100 100
飞机特定炸 200200 200
…… ………………
在谈设计理念之前,先说一下,之前经过跟群友的讨论,谈一下自己的触发分量的新发现
  • 分量是按工厂类型发挥作用的,所以上面飞机虽然用了100,比步兵的300,坦克的600要低很多,但是仍然会正常使用飞机,即在不同工厂生产的单位,分量是不会互相影响的(至少目前我看上去是这样子)
  • 设计理念:
  • 步兵骚扰,既然是骚扰用的,当然要一直骚扰了啊,所以即使失败也会不断骚扰,成功那就会更起劲地骚扰
  • 步兵进攻,前期好用,后期防御起来后就成炮灰了,所以最小分量是0,基础是250,连续失败5次后就不单独派兵当炮灰了,如果成功的话电脑就继续用兵打,但是上限只有350
  • 步兵偷袭,这些是之前说的断电和黄电的时候用的,趁火打劫肯定是必须的,不管怎样都掏你一波,毕竟你断电了怎么牛逼也得难受
  • 坦克/海军类,可见,刚开始单一坦克类型分量是650,比另外步坦的620和混合坦克600都要高,因此这样设计会使前期电脑冲单一种坦克,玩家初期也比较好对付。随着电脑的失败一次,分量会变成600而且会就此固定,这时步坦分量高,也就是对应游戏中期阶段,会变成步坦混合进攻。但是步坦的缺点就是其中的步兵容易死,所以后期还是混合坦克比较好。因此步坦进攻失败,那么会使其降低分量到570,这时多种坦克和单一坦克分量相等都是600,会随机抽取进行进攻,失败的话已经降低到600的下限不会再降低,成功则会增加分量,而且总的混合坦克进攻上限是700,比其他两种都高,因此最终会达到电脑后期进攻主要靠混合坦克来进攻。这样设计,前期中期后期分配比较合理,前期玩家可以轻松应对,中期稍微有点难度,后期难度比较大。
  • 空军类,平时就是乱炸的是骚扰,100的分量,需要炸特定建筑的分量是200,所以空军优先完成炸特定的任务,比较合理。


  • 最后一部分,就是写作战小队[TeamTypes],作战小队写的时候,之前的注释就很有作用了,你想用什么部队,想用去做什么,直接去搜索你注释的特遣部队和脚本就可以了,写这一部分关键的地方就是对于优先级(Priority)和重组(Recruiter)方面的设定
  • 首先,我在设计的时候,根据触发条件,要每隔一段时间就来的(比如上面的骚扰小队)设定成Autocreate=yes
  • 其次,偷袭之类的,设定成AvoidThreats=yes
  • 最后,就是关于优先级和重组了,这一部分比较复杂,单独说一下,进攻参考
  • 先看rules中关于状态的,让一部分状态支持重组,防止他没事干
    1. [Hunt]
    2. Recruitable=yes
    复制代码
    因为伞兵是默认Hunt状态,被电磁脉冲解除也是这个状态(这个可以在Ares设置成别的),所以我把这个设置成了可重组
  • 然后就是作战小队的优先级和重组了,基本上,我所有的都设置的可重组AreTeamMembersRecruitable=yes和Recruiter=yes状态,私以为重组不重组,由优先级决定即可,都设成可重组可以避免AI出现闲置单位的情况。这里面我设置的优先级顺序是这样的:单一进攻类<混合进攻类<常驻防御类<反应防御类<紧急类
  • 上面顺序只是我个人的设计理念,防御类要偏重一些,这个各人有各人的爱好,您觉得我这个好的话参考着设置一下即可



最后是MLP AI给我带来的灵感,简单的说一下,想学习还是去看看大佬的MLP AI比较好
  • 多用Ares的初始载客功能,让电脑产出来的如战斗要塞就是装满步兵的,这有多处有点,一是我们写脚本好写,不用写装载之类的;二是避免电脑塞兵卡顿;三是AI节奏更好
  • 使用空投超武,完成AI对来犯单位的快速反应,这里面学问比较大,要用好指示者等模拟好建筑的范围。大佬使用了一个假建筑,还用反向的建筑动画当做是建筑的破坏动画来模拟了变卖,真的是很高明
  • 这是我自己的观点,配合上面的第2条,当自己家出现上面的假建筑时(即说明有东西靠近基地了),配合一个触发,将部分防空和防地单位主动聚集到这个假建筑附近攻击来犯敌人
  • 可以通过给电脑一些加钱的超武,让AI的资金不断,因为AI用矿车实在是太垃圾了,还是直接给钱好一点
  • 个人觉得,2和3配合起来AI感觉就真的很像真人了,试想你自己PVP的时候,有没有提前就绪好一个防御塔,等对面攻过来之后突然建起来,然后将别的地方的部队拉过来打。大佬完成了第2点,给我们留下了思路,我们也应该多思考!


最后,说一下效果,自从我按以上思路重写了AI,说一下变化。
  • 原先的电脑:无脑暴兵流,疯狂暴兵暴到没钱,然后任由你欺负,虽然难打,但是没意思,就算输了觉得也没啥,因为纯靠数量压制,只要撑住,等他没钱你必赢,平均游戏时间(凉:1min,赢:30min)
  • 现在的电脑:细水长流式,每次派兵数量适中,但是非常多样化,每次AI的进攻都能给你带来新的防御体验,让你自认为能打过,然后最后却打不过,有挑战性,进攻也比较有意思,电脑会过来主动迎战,不是被动挨打,平均游戏时间(凉:5min,赢:1h30min)
祝大家都能设计出好的AI!
回复

使用道具 举报

发表于 2021-4-19 16:36:05 | 显示全部楼层
请问补基地优先级设置高好还是低好?试过改成99和4,但电脑基地被炸后继续派兵进攻,就是不补基地。
回复

使用道具 举报

 楼主| 发表于 2021-4-19 16:44:17 | 显示全部楼层
贝儿利亚 发表于 2021-4-19 16:36
请问补基地优先级设置高好还是低好?试过改成99和4,但电脑基地被炸后继续派兵进攻,就是不补基地。 ...

你的优先级理解就有错误,优先级是控制小队重组的,你所谓的优先级是触发分量,我马上更新触发分量相关的内容
回复

使用道具 举报

发表于 2021-4-24 16:07:05 | 显示全部楼层
能看教程悟到这程度,值得鼓励。
其实还有另一篇教程,忘了发DIY——Ra2AI设计理念
回复

使用道具 举报

 楼主| 发表于 2021-4-24 17:41:13 | 显示全部楼层
Mamamia 发表于 2021-4-24 16:07
能看教程悟到这程度,值得鼓励。
其实还有另一篇教程,忘了发DIY——Ra2AI设计理念 ...

主要还是受大佬MLP AI的启发,而且我摸鱼了,还没写完
回复

使用道具 举报

 楼主| 发表于 2021-4-25 10:00:26 | 显示全部楼层
完结了!!摸鱼了很多天,终于完工了
回复

使用道具 举报

发表于 2021-4-25 10:09:05 | 显示全部楼层
强啊,正好假期可以抽时间搞AI了
回复

使用道具 举报

发表于 2021-4-25 14:25:25 | 显示全部楼层
码字辛苦,写得颇适合初学者,省得俺再单独给入门AIer开坑了。
想学更有♂趣的东西的话,可以来俺的裙—— 758012141。
回复

使用道具 举报

发表于 2021-4-25 16:21:31 | 显示全部楼层
本帖最后由 贝儿利亚 于 2021-4-25 16:54 编辑

大佬问一下,Script怎样能写让维修车跟随大部队修理?目前是大部队进攻的AITriggerTypes支援teamType触发为2个维修车。维修车写
0=54,0
1=53,0
2=49,0
3=...
从3开始不会写了。目前是跟随大部队移动到敌人基地周围开始就停在原地不动。无论3开始后面写攻击还是警戒都不会跑去维修,在rules里把警戒范围GuardRange=20改很大,加上警戒3=5,300依然不会动,发现GuardRange无论写1000还是20自动迎敌范围都是固定的。另外测试10,0跟随无效。看教程说“如果写在Script的第一行,将会无条件跟随产生的第一个小队”。于是干脆rule做一个假维修车,初始乘客工程师,Script第一行就写10,0。结果是在停在自己基地根本不会出来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-9-1 21:18 , Processed in 0.093118 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表