NPC AI的编写:可以说第一人称视角是最接近现实的,AI主要分为两部分,较为初级的硬编码AI和进阶的机器学习,首先来说一下硬编码AI,所谓硬编码,就是指使用行为树,状态机等代码实现的AI,行为都是可预知的,由游戏设计师设计的。一个NPC的AI一定会满足“输入-->思考-->行为”这三部分,比如这里的这幅图,我们假设绿色球为NPC,而红色球为玩家:
即使AI的背后是程序控制,是上帝视角,时刻知道玩家位置,他也不应该像开透视挂一样直接冲过去打死玩家,也应该加上一个思考时间,所以我们需要模拟的是一个视锥体,从而给NPC一个感知,一般距离越远感知时间越长(需要花掉更多时间),角度偏差越大,感知时间越长。比方说这幅图内,玩家距离NPC我们假设是10m,NPC面朝前方,玩家大概在NPC右侧40度左右,我们就可以通过计算NPC方向和两者距离两向量(注意化为单位向量)的点积和距离向量的模长来给出一个NPC反映时间,而这些感知都是可以使用分线程来计算,最后再同步到主线程的。