今天心血来潮,想搞搞游戏里的人工智能,就是那些NPC的行为,让他们看起来更像个人,而不是傻乎乎的只会重复动作。
第一步,当然是先解下这是个啥玩意儿。
我查些资料,发现这东西说白就是让游戏里的角色能像人一样思考,然后做出反应。比如敌人看到你会追你,队友能帮你打怪,或者路边的村民能跟你聊聊天啥的。目标就是让游戏玩起来更有意思,更有挑战...
今天心血来潮,想搞搞游戏里的人工智能,就是那些NPC的行为,让他们看起来更像个人,而不是傻乎乎的只会重复动作。
第一步,当然是先解下这是个啥玩意儿。
我查些资料,发现这东西说白就是让游戏里的角色能像人一样思考,然后做出反应。比如敌人看到你会追你,队友能帮你打怪,或者路边的村民能跟你聊聊天啥的。目标就是让游戏玩起来更有意思,更有挑战性。
然后,我开始琢磨怎么动手实现。
我发现有很多不同的方法可以实现游戏人工智能。比较简单的,比如有限状态机,就是给NPC设定几个状态,比如“巡逻”、“攻击”、“逃跑”之类的,然后根据情况切换状态。复杂点的,还有什么模糊逻辑、神经网络之类的,听起来就很高大上,不过我目前还没打算搞那么深奥。
我决定先从简单的做起,试试做一个追踪敌人的效果。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
- 先在游戏里放个敌人,再放个玩家控制的角色。
- 然后给敌人写个小脚本,让它能获取玩家的位置。
- 我让敌人根据玩家的位置,计算出一个朝向玩家的方向。
- 我让敌人朝着这个方向移动,这样就实现简单的追踪效果。
这只是最基础的,敌人只会傻乎乎的追着玩家跑。我还想让它能躲避障碍物,或者在玩家离得太远的时候放弃追踪。
进一步尝试,寻路!
光会追踪还不够,还得让NPC能自己找路。我又研究一下寻路算法,发现 A 算法挺常用的,也比较容易理解。
简单来说,A 算法就是把地图分成一个个小格子,然后计算从起点到终点经过每个格子的“代价”,选一条“代价”最小的路。
我试着把 A 算法用到我的游戏里,让敌人能绕过障碍物,找到一条通往玩家的最短路径。效果还不错,敌人终于不是个只会横冲直撞的傻子!
今天折腾一天,虽然只是实现些简单的功能,但也算入门。游戏人工智能这东西,水还挺深的,以后有时间再慢慢研究!