ryan_knight_12吧 关注:46,230贴子:2,738,162

回复:【modder必看】拯救311AI智商的方法大全

只看楼主收藏回复

二 物流篇
三国志11向来是前线城VS前线城的战斗,AI(和思维正常的玩家)都不会从后方出兵途径自己的城去打仗,只需要把资源调配到前线然后前线出兵就可以了。
在中后期,或者困难抗压剧本的全期,boss势力一定是有大后方的,那么AI的资源调配情况就直接决定了你这把的游戏体验。我们先设想两个极端情况。
甲 假设AI完全不调配,那么你的玩家用智慧打败前线城市应该不难,然后玩家就会重复打败一个又一个前线城市直到他玩腻为止,我相信他很快就会玩腻。
乙 假设AI把全部的资源(人力,兵力,兵装,钱粮等)通通调往前线,那么玩家的开局会极为恶心、劝退。并且,你不开sire加资源的话AI一波没打下来自己就没了,因为后方啥也没有;你要是开了加资源,那基本上就只剩下杀光boss武将一种解法。
更要命的是,个别能扛下来的高手在他被恶心完之后会反过来恶心你或者其他玩家,“就这?”“这都不能破局?”,等你再想做个简单的剧本时他们又会说“感觉不如XX有挑战性”。


IP属地:美国34楼2022-07-11 22:13
回复
    我不知道你是否想做开局就地狱难度,“富有挑战性”的mod,如果是这么理解的就不用往后看了,反正我们希望的是ai看起来能阳间一些,玩家可以正常的赢或者正常的输的mod。
    而所谓阳间,就体现在你的玩家能看懂、能理解敌人AI的资源调配,并在此基础上与AI展开正面对决。
    我们的剧本除了一个高难度抗压本之外,其他的在打到四城之前都比较轻松,有了四城的本钱后才会发现难度开始急剧上升。这就是我们的设计理念。
    我们敢这么设计的原因,就是相信玩家在有四城的时候,面对一个有10城的boss只能打个旗鼓相当,需要用一点点智慧才能逐渐灭掉他,没有智慧就会被灭——要知道玩家4城的时候虽然凑不到顶配阵容,但他想有的武将配置已经基本凑出轮廓了。这也就意味着AI对资源的利用率,大约能有玩家的40%。如果你的作品能够超越这个水平,那还希望我们去求教的时候你能指点一二。
    那具体应该怎么改呢?我们这几个月收到了很多想当然的建议,其实你能想到的改法,程序员100%都想过,并且发现90%都是行不通的,只会更差,剩下10%会导致运算量过大而回合事件加长。不要不服,也不用解释为什么能行得通,show me the code,等你做出来,才是真的行得通。


    IP属地:美国35楼2022-07-11 22:14
    收起回复

      帮我看看哪里是敏感词)


      IP属地:美国38楼2022-07-11 22:19
      回复
        我这里就直接给结论了,一共十条。前提是你采纳我前面说的经济篇和后面要说的港关篇。
        1、AI的运输间隔从一年一次改成一季度一次,一年一次的话前方基本就喝西北风了;并且要你的地图和运输队移速能保证三个月之内任意两个相邻据点之间发车都必定能到,否则物流会卡住。
        2、运输队的兵力上限是六万,这个我们不会改也不想改。如果你也不改的话,就要稍微计算一下兵力产出和钱粮产出,以适配这个“六万”。产兵太多运不走,太少的话车不好发。
        3、原版AI只会进行军团内运输,极其坑爹。我们已经有自定义包可以让AI跨军团运输了。
        4、每座城要留至少3个人,一个运输一个生产兵装一个征兵兼备用。如果你不用我上面说的一键征召系统,那你可能得考虑留6到10个人,然后禁止玩家提问“AI怎么有这么多人留在后方挂机啊”。
        5、由于4的原因,剧本人数要足够多。七百人我只能说勉强够用。假如你想挂机欣赏两个不智障的AI天下二分激烈厮杀,那最好想办法弄999个人。


        IP属地:美国39楼2022-07-11 22:21
        收起回复
          楼主,搞快点!


          IP属地:新疆来自Android客户端40楼2022-07-11 22:23
          回复
            楼主,能把AI攻击玩家的提示去掉么?那个太烦了,发现以XX为攻击目标的敌军。。。


            IP属地:新疆来自Android客户端42楼2022-07-11 22:59
            收起回复
              大爱楼主,希望能分享更多图文并茂的心得体验


              IP属地:浙江来自iPhone客户端43楼2022-07-12 00:03
              回复
                这么说,又可以开新挡了?


                IP属地:广东来自Android客户端44楼2022-07-12 07:21
                回复


                  IP属地:江苏来自Android客户端45楼2022-07-12 07:34
                  收起回复
                    不明觉厉,先顶为敬


                    IP属地:湖北来自Android客户端46楼2022-07-12 11:45
                    回复


                      IP属地:美国50楼2022-07-12 15:31
                      回复
                        好像还不错的样子


                        IP属地:江苏来自Android客户端51楼2022-07-12 15:42
                        回复
                          三 港关与武将移动篇
                          港关是AI智商的重灾区,原版AI会在港关放很多资源,主要的用途一是被超上限坑没,二是被自己饿死,三是被玩家两个冲车堵死。我们在讨论港关之前,同样要明确这样几个前提:
                          1、AI不会往港关运输物资。
                          2、即便港关在前线,AI也会从城市出兵进攻。
                          3、港关不是主要的资源产出地。
                          4、如果港关不在前线,AI就会把港关的资源运到城市去。
                          目前对港关的各种利用方式,尤其是把港关当成“小城市”的做法,会严重扰乱AI的判断力(除非以后能真的把港关改得跟城市完全一样)。以及,许多modder说改地图之后只要涉及到跨河跨海,AI的智商就会血崩,这主要也是港口带来的问题。
                          我们认为最优解就是把港关当成“消耗品”,AI需要路过或者需要补给的时候就顺手打一下,然后也不着重去防守。
                          用实际地图来说明一下。

                          首先开启水军系统,让部队可以自动上下岸(就算没有这个系统也可以解决)
                          看图说明,蓝色为结丘(左城)的城市可行动路线,红色为此花(右城)的城市可行动路线,也就是说,港口只跟本城相邻,而远海城市直接相邻。这样AI占领一个城市之后,第一任务就是收复港关,收复之后可以看到港口唯一通路是本城,所以部队进城之后运输队就会光速运回本城,彻底根除港关饿死和浪费兵力人才的问题。
                          其次是因为港口在两城市的必经之路的附近,所以其中一部分任务的AI部队,就会尝试去占领港关,而不会发生进攻主城,而不占领港关的问题。这里一定要控制港口在主要出征路径的4~5格内,因为AI为了算法速度,过回合速度快,检索的地格并不会特别多。
                          那么港口有什么用呢?主要是维持粮道。粮道无法直接抢滩登陆,必须从港口走才能上岸,这样进攻的时候,玩家就需要先抢滩,再攻城,来维持粮道。
                          此外,还得在沐神的剧本编辑器中选择水路,这样AI在出兵的时候就会带大船。
                          如果开了水军系统但不想让AI胡乱下水,可以在港口左右ZOC之外开一个渡口,让部队可以在渡口下水。否则改变邻接关系之后,AI会因为找不到路而报错。

                          关卡跟港口不一样,关卡的核心作用是卡住地形,所以不能让城市之间直接连接,不然会因为寻路问题导致报错。
                          这里我是用人才移动包解决的这个问题。(这里感谢一下梦神的资料,梦神研究了非常多的AI资料,我们的水平和311的资历远不如原来的各位大神,全靠他们的无私分享才能完成现在的工作)
                          港口处理和关卡其实是一样的,但是关卡需要保持卡位,所以我的设想是,让AI部队进攻之后,只留一个人维修,留下一点兵力守住关卡,然后让其他人拉到主城继续发兵进攻。
                          这里需要知道的是:
                          1、AI移动人,只有缺人的时候会发动召唤,绝对不会只因为一座城人太多就把人打发走。
                          2、每个城市预想人数为 前线程度(交战=3,前线=2,次前线=1,大后方=0)*2+3。
                          我的建议是,直接用自定义包去设定AI在港关留且只留一个人。你把港关设定成“小城市”必然崩盘,除非你有办法让AI从港关也能发动大规模进攻。真有办法之后本层作废。
                          看到这里,想必大家应该明白为什么其他MOD无法直接使用我们AI包,必须作者去适配了。因为AI包只是基本逻辑,如果没有地图设计,兵力数值设计,没有相应的内部数值,AI根本无法运作。我们的MOD,带兵数基本就是5000人一队,配合组队规则系统,每5000人就需要3个人,所以预想作战人数是1666兵/1人,加上处理政务的人才,需要1000兵/人是比较合理的设计,所以AI设计不仅仅是AI改进的问题,这个得从数据上就平衡起来,不然AI构筑无从谈起。


                          IP属地:美国52楼2022-07-12 16:10
                          收起回复
                            攻防篇
                            原版AI有个很奇妙的设定,那就是城池数超过3个,才会同时进攻2个目标,而行动力不足的时候,AI就会尝试划分军团。往往4个城市开始,行动力就会不足,所以就导致一个军团永远只会攻击一个目标。并且原版为了节省兵粮,会根据目标进攻城池数决定出兵兵力。
                            所以我们决定废弃上面那些AI的奇思妙想。以及你先收一收那些想当然的想法,我直接说出(用自定义包实现的)整套设计方案。
                            0、不要寄希望于那些你看不懂代码的参数能拯救你家AI的智商,包括但不限于君主id,君主强度等级之类的。
                            1、AI只要有两个城就会选择2个进攻目标。
                            2、地图邻接控制好,保证同时进攻2个目标AI不会崩溃。
                            3、开启sire的粮道系统,并且粮草100%由本城承担,AI只带很少的粮草,保证AI不管出多少兵都不会严重浪费粮草。由于我们严格限制AI的粮食产量,因此还加了AI被灭队后会有部分粮食被捡回她本城的设定(科技解锁)。
                            4、让AI出更多队兵(修改原程序逻辑)。
                            5、重写AI的粮草预备机制,让AI会为粮道预备粮草,防止出兵之后没有足够的粮草供给。
                            6、修改AI的进攻逻辑和防御逻辑,防止部队被玩家勾引乱跑(梦神做的,我们直接用了)。
                            7、卫国战争系统(兵临城下后应援团会高速转化为亲卫队),AI全力以赴进攻的时候,如果被偷家,民众会自发从军,兵役人口大幅度上升。(玩家也可以利用这一机制暴兵。)
                            8、天灭火球阵,尝试了几十个方案,最后决定调整AI的点火欲望,除非能直接攻击到敌人,不然点燃面前的一切火球。
                            9、地格所属会触发AI的防守式出兵,因此在地图上严格划分好行军路径上的地格所属,防止AI过早过晚做出反应。你觉得AI防守时机不合理、甚至会被引兵,你就试着改一改地格所属,别计较地理了。


                            IP属地:美国53楼2022-07-12 16:18
                            回复
                              设定非常合理,希望6.0能用上,特别是一键征兵和预备役系统


                              IP属地:广东来自Android客户端54楼2022-07-12 17:20
                              回复