I am working on guards and other NPC's for questing areas in my game, and I came to realize something... NPC's will follow you to the end of the god damn earth!
Seriously though, this can be abused to get new players killed by kiting high level mobs to lower level areas and then dropping your aggro by entering a new area or just logging, now I know this sounds like a simple little flaw with how NPC's currrently work but it can really mess with a game. Imagine walking into a dungeon to see that players have already been through and has kited all enemies to the end of the dungeon. Not only are you now screwed over because you have tons of enemies on you (which are supposed to be spread out across the dungeon) but you also don't get the experience the developers intended for you to have. This problem also affects guards who stop hostiles from entering city/town/village gates! Sure you could just use an NPC block but having a guard that will defend you and prevent enemies from entering the kingdom is more immersive and really gives the game a nice touch. The problem you ask? Those guards will run after anything they see and will not return to their post ever!
Theres a solution here that I think we can all agree this engine needs, and that is more NPC Behaviour settings!
Here are a few settings I think should be added!
Roam - This is currently in the engine already, the option is called "Move Randomly". This mode is for when you want the Original style of NPC movement, no changes to what is currently in the engine.
Guard - This behaviour setting will have the NPC stand still (or rotate randomly) and will attack (if attacked) enemies it sees withing its sight range (or when it gets hit) and will chase it until it the enemy leaves its guarding radius. If the enemy leaves the guarding radius then the guard will return to the spot it was set to spawn at.
Radius - This behaviour setting will have the NPC roam around within its "Roam Radius" and will attack (if attacked) enemies it sees withing its sight range (or when it gets hit) if the enemy leaves the "Roam Radius" then it would stop attacking the enemy.
Kiting refers to keeping an enemy chasing you while also keeping it at a range where it cannot attack you. This tactic is often used to more safely attack the enemy using a long-range attack or to distract the enemy while others attack it.
The effect looks like you have the enemy on the end of a string, kind of like a 'kite', because you are both moving in the same direction and he's never catching up to you. It is a generic term that applies to any game with mechanics that allow it.
Original idea belongs to @Aesthetic I just wanted to add to it! Find the original post below: