SLG手游卡牌类游戏机器人逻辑算法

本文介绍了作者在游戏服务端开发中制作机器人逻辑的过程,特别是如何创建逼真的战斗逻辑和匹配玩家战斗力。通过生成索引表、处理数据和算法优化,实现了接近真实玩家体验的机器人系统,同时也面临了如内存溢出和战斗力匹配精度等问题,通过不断调整和改进,最终提高了游戏的公平性和玩家体验。
摘要由CSDN通过智能技术生成

        初入游戏服务端开发行业,分享一下自己在做机器人功能时候的一些心得,欢迎各路大神指教。

        根据策划的需求,策划希望生成的机器人非常逼真,不仅拥有类人的战斗逻辑思维,而且要求机器人的各项可展示信息也要极尽所能匹配正常玩家,也就是说,不能让玩家感觉他打的是机器人。所以在做逻辑之前,我在配表的时候也花了很多心思。

        直接上表图。

        

        这是其中的阵容表,因为培养线比较多,所以就不一一列举了。

        简单描述一下各个字段的含义,第一个规则id字段是生成索引用的。因为最后的排列组合出现了200多万种可能,不采用索引方式,而直接添加所有数据进入内存,会导致宕机或者溢出。

        二三字段中的等级上下限是用来规范机器人的等级,只有等级在这个范围以内的机器人才能拥有这种阵容。

        余下的字段分为武将id和小伙伴id(玩过养成的朋友都知道,有的游戏的机缘或者缘分系统是由上阵武将和小伙伴提供的)。

        其余表不做太多解释。直接进入生成索引的环节。

        下面是我的索引源码,话说写这个源码的时候被公司的反编译大哥一顿嘲笑。但是没办法啊= =。我的递归写的太烂了。想递归的时间这个10多层的for循环我早就写完了。反正这个算法只是为了生成索引表,就用一次,所以就很粗暴的这样写了。

        

        每次看到这串代码的时候,我都只想说一句话,我就是我,看到自己都上火。哭

        这段是模拟91-120级的机器人可能会遇到所有培养情况。

        因为我比较菜,从java直接生成的xlsx表,生成之后打不开,所以就采取了先生成txt,再从txt转换为xlsx。

        在这里要说一句题外话,xlsx单个sheet表的行数的上限大概是在一百零几万,超过这个行数会无法保存,所以我在生成txt的时候也是做了计数统计,尽量保证每一次生成的txt不超过这个上限,所以就分成了三个区间段进行生成。

        不过这仅仅是索引表的第一步。因为这个按策划需求来讲是要求对玩家的战斗力进行匹配,所以最后服务端加载的索引表形式应该是战斗力+索引的两字段xlsx表。

        所以在第一步的索引表里我详细的加载了所有可能性的详细数据,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值