游戏AI系列内容 咋样才能做个有意思的AI呢

本文分享了作者在游戏AI设计过程中的经验与感悟,通过多个具体案例解析如何使游戏中的怪物AI更加有趣,包括不同难度级别的怪物行为设计策略。

游戏AI系列内容 咋样才能做个有意思的AI呢

写在前面的话

怪物AI怎么才能做的比较有意思。其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是不够格的。不过,在这有限的时间里边,我也多多少少的写过几个怪物。最初,很多怪物写完之后,就感觉很傻。一点意思都没有到后来的,慢慢的觉得,像是一点一点的赋予这个怪物生命一样,成就感满满。然后让我一步一步的告诉你什么是有意思的AI。

啊 什么才是有意思的AI呢

从宏观上来说,大到一个人,小到一只青蛙,都是存在AI的。落实到游戏项目里呢,能跟你打一会的,都叫做AI。我们这个地方很显然是指的后边这种。仿照现实世界AI的游戏AI。让我举个例子来说明一下,我们比较常见的AI。

LOL的人机模式,有一定的智能感觉,不过做的有点太极端了。技能的释放,简直爆表,恐怕跟机器人硬肛正面一般情况下会比较惨,因为他们对于技能释放的控制恐怕是人类远远跟不上的。不过他们的行为模式非常单一,比如说他们明明在中路占有非常大的优势,但是一旦他们发现你在推他们的塔了,他们就会放弃自己的优势去防守自己的防御塔。比如说你是血皮他也是血皮的情况下,他的反应是逃跑而不是算算伤害跟你肛正面。所以这个感觉是比较尴尬的,硬打打不过,但是套路就能套路赢。顺便一提LOL的末日模式里边中的机器人,其实单纯的AI也是比较简单的,但是他们的技能非常变态,所以很难打,这也是提高AI有意思程度的一种方式,笑。

守望先锋中的机器人对战模式中,跟LOL中的机器人也是类似的模式。记得一次,我想从背后偷袭76,结果被76反手A死,我去看死亡回放的时候,发现上一秒的时候,他还是面向前方的,下一秒直接镜头一切,冲背后的我开了几枪,等我死了,就头也不回的跑了,当时就感觉整个人都不好了。

哈哈,举了几个例子,发现,我好像是没有见过好的AI的例子。这么说吧,一个AI应该像是你朋友跟你玩游戏一样,初级的AI就像是刚开始玩;中级的就像是玩了一段时间;高级的像是比你NB的玩家一样。或许他的操作并不好,或许他在某些事情上会失误,但是他在努力的玩下去这种感觉。

好吧,先让我来回顾一下我做的怪物吧

那些曾经被我编写出来的怪物

小魔人

AI:
1. 如果看到玩家就靠近玩家,造成碰触伤害
2. 没事瞎溜达或者在原地歇会

我们的小魔人

这应该是我编写的第一个怪物。很简单,也很傻。这个基本上应该算是最白痴的AI了。这种一般情况下是数量比较多,让玩家来割草的。不得不承认,这个怪物的AI白痴到爆炸,但是游戏中还是需要存在这种AI来缓解一下紧张的气氛。

大魔人

AI:
1. 看到玩家之后会最初几种随机攻击模式(发射距离较远的双排子弹弹幕、发射范围非常近的的扇形弹幕、跳跃到玩家周围去、召唤救济仓)
2. 没事的时候瞎溜达一下或者在原地休息休息

大魔人召唤救济仓

大魔人的扇形散射弹幕

大魔人的双排弹幕

大魔人的蹦蹦跳跳

这是我编写的第一个Boss怪物。这个的攻击方式可能就会变的复杂一些了。面对他的时候,你可能需要考虑一下怎么应对他的技能。比如说。如果他释放双排弹幕的话,就不要呆在原地。如果他释放了扇形弹幕那么就需要远离他。如果他跳起来了,那么就得时刻留意,他的阴影是不是出现在了自己的周围,远离那个地点。如果他选择召唤救济仓就需要打掉救济仓,免得他搞出来一些幺蛾子。或许,这个怪物已经可以让你跟他周旋一段时间了。但是他距离我心目中那种真正的Boss还差的很远。

大魔人的狗

略,实在是没啥好写的

激光眼机器人

AI:
1. 醒了,距离你比较远了就靠近你
2. 像是之前的大魔人类似,一堆技能(背后光柱扫射、横向光柱驱散、双手弹幕散射、激光眼、多重激光狙击、召唤狙击怪、弹幕光球)随机放
3. 如果敌人(玩家)在他的头上的时候释放合适的技能()
4. 如果在下面的时候释放合适的技能()
5. 没事睡觉

我们的激光眼机器人

机器人召唤狙击怪

机器人双手发射弹幕

机器人背后激光扫射

机器人激光狙击

机器人激光逼退敌人

机器人发射球形弹幕

我在写这个怪物的时候觉得这个怪物碉堡了,自己拥有7、8个技能在手里边,肯定会把玩家吓尿的,结果自己在尝试的时候,就遇到了类似于LOL的AI尴尬。如果吧技能调整的伤害很强,会觉得这个怪物没法打,自己动不动就死了。但是技能伤害太弱的时候就会发现这个怪物真是太弱B了。随便打打就死了,最后为了增加他的寿命,所以增加了他的血量。我觉得这个结果是我不想看到的但是有没什么办法,这已经是最好的方式了。

小精灵

AI:
1. 进入战斗的时候冲着玩家吐个弹幕
2. 距离玩家很近的时候会逃跑
3. 距离玩家太原的时候会尝试靠近
4. 玩家不见了会跑到最近一次玩家出现过的地方尝试找找玩家
5. 没事瞎溜达

我们的小精灵

Piu 精灵弹幕

太近了我要逃跑

太远了,让我来追击一下吧

根据印象追击敌人

其实这个怪物也很简单,跟前面提到的小魔人是同一个属性的,都是属于没啥攻击性,被人割草类型的,不过,这个怪物却比小魔人给人的感觉更好。因为小魔人太容易被套路了,你距离他远一点,就可以随便搞他。但是这个怪物,他可以跟你周旋一段时间,虽然他没有啥攻击性。偶尔只是冲你发一个弹幕。但是他却可以保持跟在你周围,并且距离你相对来说距离适中。避免了近战伤害,同时他的攻击能够攻击到你。所以就可玩性来说这个逼小魔人好太多了

刺客

AI:
1. 距离在攻击范围内的时候,会直接发动伤害非常大的伤害
2. 如果没有被人发现的时候伪装成一颗洋葱
3. 距离玩家比较远并且在玩家正面的时候尝试Z字走法靠近玩家
4. 距离玩家比较远并且在玩家背面的是后快速突进到玩家背面
5. 没事瞎溜达

我们的刺客像洋葱

平时的刺客

刺客的Z字强突

刺客的十字斩

这个怪物应该算是比较厉害的怪物了,也是我比较满意的怪物之一。他的血量非常少,最低级的枪也能两枪打死。他的伤害非常高,一次攻击就能让玩家血量损失过半。通常这个怪物出现的时候,我都会觉得,要死了要死了要死了,搞死他的时候会获得莫大的挤压情绪释放的赶脚。或许他没有非常高的血量,没有花样繁多的技能。不过他能够靠着自己仅有的一个技能让你感觉精神紧张。

综述

一个好的AI,应该能在合适的时候做出合适的选择。比如,怪物本身并不能进行近战攻击,那么他冲到人的周围这就是傻的行为。如果他能保持一定的距离,这个距离保证他能够打到玩家,但是玩家的某些攻击打不到他。那么他的行为就是合适的。如果一只怪物他只有近战攻击,那么他就应该努力的尝试去靠近你,然后从背后给你一刀,这也是合适的。如果你的攻击手段攻击距离比较近,但是玩家距离你比较远的话,这个时候你做出这个攻击就并不合适。一个好的AI其实就是作者在操作的一个角色,跟玩家对战。其实这就是一种感觉,要想想成这是你与玩家的对决。或许你可以操作的怪物能力非常有限。血量不高、伤害不高、行动不快,但是每一个怪物都有他存在的意义,都能够为你跟玩家对战的时候贡献自己的力量。这样一个AI才能算是做的比较有意思。

恐怕我我写的出来的部分只能是一小部分。就像是这样

但是呢实际上这个课题可能真正的内容量确实这样

转载于:https://www.cnblogs.com/anxin1225/p/5903137.html

内容概要:本文详细介绍了一个基于MATLAB实现的线性回归(LR)电力负荷预测项目实例,涵盖了从项目背景、模型架构、算法流程、代码实现到GUI界面设计的完整开发过程。项目通过整合历史负荷、气象数据、节假日信息等多源变量,构建多元线性回归模型,并结合特征工程、数据预处理、正则化方法(如岭回归、LASSO)和模型评估指标(RMSE、MAPE、R²等),提升预测精度与泛化能力。文中还展示了系统化的项目目录结构、自动化部署脚本、可视化分析及工程集成方案,支持批量预测与实时滚动更新,具备高度模块化、可解释性强、部署友好的特点。; 适合人群:具备一定MATLAB编程基础,从事电力系统分析、能源管理、智能电网或数据建模相关工作的工程师、研究人员及高校师生。; 使用场景及目标:①应用于城市电力调度、新能源消纳、智能楼宇用能管理等场景下的短期负荷预测;②帮助理解线性回归在实际工程项目中的建模流程、特征处理与模型优化方法;③通过GUI界面实现交互式预测与结果可视化,支持工程落地与决策辅助; 阅读建议:建议结合提供的完整代码与GUI示例进行实践操作,重点关注数据预处理、特征构造、正则化调优与模型评估部分,深入理解各模块的设计逻辑与工程封装思路,以便迁移到类似的时间序列预测任务中。
【轴承故障诊断】基于SE-TCN和SE-TCN-SVM西储大学轴承故障诊断研究(Matlab代码实现)内容概要:本文介绍了基于SE-TCN(Squeeze-and-Excitation Temporal Convolutional Network)和SE-TCN-SVM的轴承故障诊断方法研究,重点针对西储大学(Case Western Reserve University, CWRU)的轴承数据集进行实验验证。研究通过构建SE-TCN模型提取振动信号中的深层时序特征,并利用SE模块增强关键特征通道的权重,从而提升故障识别精度。为进一步提高分类性能,还将SE-TCN提取的特征输入支持向量机(SVM)进行分类,形成SE-TCN-SVM混合模型。文中提供了完整的Matlab代码实现,便于复现实验结果。该方法在多工况、多故障类型下表现出良好的诊断准确率和鲁棒性,适用于工业设备的智能运维与早期故障预警。; 适合人群:具备一定信号处理和机器学习基础的研究生、科研人员及工程技术人员,尤其适合从事机械故障诊断、智能运维、工业大数据分析等相关领域的研究人员;熟悉Matlab编程者更易上手。; 使用场景及目标:①应用于旋转机械设备(如电机、风机、齿轮箱等)的轴承故障诊断;②作为深度学习与传统分类器结合的典型案例,用于教学与科研参考;③目标是提升故障诊断的自动化水平与准确性,推动智能制造与预测性维护的发展。; 阅读建议:建议读者结合提供的Matlab代码,逐步运行并理解模型构建、特征提取与分类流程,同时尝试在其他公开数据集上迁移应用,以加深对SE-TCN架构与故障诊断流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值