The new NPCs are working quite nicely. Yet another milestone in my engine optimization down, and much happier with the AI behavior as well (there was something just off about the previous way enemies behaved). One thing I am about to change however is the way I trigger passive and aggressive modes, originally I was thinking that it should be simply be a static proximity between the npc and player, but that won’t make sense for pursuit-based AIs where they will continue trying to chase the player down for longer distances, especially if the player really pissed it off by hitting it a few times. This will change to an aggression timer so that the longer the player messes with the enemy’s detection range and combat the longer the cooldown will be before it resumes its passive behavior. I’m also going to let the player take advantage of stealth with slow approaches or special equipment and other factors like ambient lighting, if that’s their choice, though I doubt many will need to use it. It’s all about options!
Creating an interactive world is quite a chore. It’s not really so hard to program the interactions; what’s difficult is making enough things to interact with. Really need a large variety of objects to decorate a world, even if the world isn’t fully explorable, and a keen sense of real world observation is necessary to see how things lay about. I’ve been making a list of things I need to draw, from the enemies, NPCs, combat special fx and projectiles, and environmental objects… it’s quite a list. But it’s not impossible. I just have to take things one day at a time; as long as I’m able to complete things every day there’s no reason to worry. But I am going to go with their priority as well, I want the game done, and other stuff is just polish as much as I’d like to have it in there.