我一直在为自己的游戏开发敌人系统,其中我最想避免的一点就是敌人随机出现在玩家身边。
目前,敌人是通过波次生成的。每一波会生成更多敌人,而且随着波次增加,生成速度也会加快。
例如,第一波生成7个敌人,第二波生成9个,之后持续递增,直到每波最多28个敌人。同时,场景中同时存活的敌人数量也有上限,最高为16个。
有趣的部分在于敌人的生成位置。
每当游戏要生成一个敌人时,它会在地图上随机检查六边形格子(最多尝试60次),寻找符合几条规则的位置。
第一波时,敌人需要距离玩家6到12格。从第二波开始,范围变为7到18格。
我还会检查视线。如果玩家能直接看到生成位置,且该位置相当近(大约低于380像素),那么这个位置就会被拒绝。
所以基本上,游戏会尽量让敌人从你不看的地方出现。你绝不会遇到那种烦人的“敌人直接刷在我面前”的情况。
敌人也不能离另一个敌人太近,这样就不会有一堆僵尸堆在同一个点上生成。
我也不想让他们瞬间冒出来,所以有一段0.7秒的生成动画,让他们从地板下升起。我添加了一些烟雾、环形效果和轻微晃动,让感觉像是有东西真的从地面钻出来。
敌人类型也会随着波次变化。
第一波只有近战僵尸。
第二波开始出现冲锋枪敌人。
从第三波起,霰弹枪敌人也开始出现,而且随着波次难度增加,远程敌人的出现几率也会提高。
我还给敌人添加了小小的“!”和“?”气泡。它们实际上与敌人的AI相关联,而不只是装饰。
“!”基本上意味着“我看见你了”或“有危险的事情发生”。
当敌人发现玩家时会显示它,近战敌人在攻击前会显示它,有时其他僵尸被杀死时,附近的敌人也会出现这个气泡。
“?”表示敌人感到困惑或跟丢了。
例如,如果一个僵尸在追你,而你跑到墙后面,它会显示“?”因为它失去了你的踪影。
近战僵尸在追你时还有可能随机绊倒,这也会让它们显示“?”。
远程敌人在探头掩体、预期能看到你却发现你已经移动时,也会出现类似情况。
我真的很喜欢这些小细节,因为它们让AI更容易被读懂。不再是敌人直接冲向你造成伤害,而是你能看到他们在想什么。
虽然还在调整所有数值,但感觉已经比随机生成敌人好多了。
很想听听大家的看法,特别是是否有其他小的AI行为能让敌人更生动。
评论 (0)