1
Wish list / AI behaviour discussion
« on: August 12, 2011, 07:47:59 am »
I mentioned AI behaviours in my thread on the General Discussions sub-forum, which is the basis for this thread. Seeing as Planeshift seemingly seeks to simulate an active world I thought that creatures could be given snippets of code which generally affect their behaviour. Note: I am not a programmer, so I'm not sure how well this would work in actual practice, however so I'll leave it open as a general categorical classification of behavioural suggestions list.
I'm attempting to keep the behaviours simple so that they can be fairly easily coded, and also mixed and matched, also to lessen the server strain so that it's not attempting to compute numbers of overly-elaborate actions at one. These are very sketchy initial ideas.
The idea is to deviate from 'animals and creatures are only there for XP farming and will do nothing if not bothered', rather to have them interact with each other and the players, according to given behaviours, thus increasing dynamic conditions in any given area and lessening predictability of situations.
Pack/Herders
Move/act in groups, will not stray beyond a certain radius of a pack leader unless forced to flee, at which point they will do so and then attempt to re-unite with the herd/pack. A 'leader' may be chosen, if the leader is killed all entities flee in random direction for certain time before a new leader is chosen, and all attempt to regroup at that entity.
Solitary
Moves and acts alone.
Territorial
Designates a variable area of land that it considers it's territory, and that it will protect against intrusion.
Rover
Will wander at random
Predator
Will attack and attempt to kill other entities it comes across. Potentially combined with pack/herd else solitary. May be territorial or roving.
I reality , a predator will gauge it's kills on opponent size or other factors. I'm unsure how something like this may be coded, however. Maybe relative size identification? within certain range an animal will attack, if not, will not?
Fearful
Will generally run away from things of equal or larger size.
Curious
Will approach and linger around other entities it comes into contact with before moving on. May or may not be aggressive.
Stalker
Will stalk an entity. May or may not be aggressive. Seeks to maintain a relative distance between itself and the target. Potentially before attacking, based on creature classification/rules.
Situations this type of behaviour may lead to:
Supposing Gobbles were given pack and territorial behaviours. You might find that another creature, or unwary player, passing by them would find itself on end of a multi-pronged attack. If the player or creature is strong or lucky enough, it may kill all the Gobbles, or kill the leader and send all gobbles scattering in all directions to later regroup or be hunted down. Or else the Gobbles continue to, in effect, rule a certain area of land.
A player or entity may be going somewhere.
They draw the attention of a predatory, roving, pack and must flee or fight.
____
I'm quite sure that there are more behaviours than this that could be used, and that the suggestions I have made can be discussed and improved, so I will open the thread to suggestions and debate:
Rules:
Keep it simple: if the server is forced to calculate several entities with very individualised, complex behavioural pattern, while also calculating everything else, it will slow it down. It's better to have recognisable, basic, interchangeable patterns to follow which will allow entities a recognisable level of diversity while not crashing the server. due to strain.
I'm attempting to keep the behaviours simple so that they can be fairly easily coded, and also mixed and matched, also to lessen the server strain so that it's not attempting to compute numbers of overly-elaborate actions at one. These are very sketchy initial ideas.
The idea is to deviate from 'animals and creatures are only there for XP farming and will do nothing if not bothered', rather to have them interact with each other and the players, according to given behaviours, thus increasing dynamic conditions in any given area and lessening predictability of situations.
Pack/Herders
Move/act in groups, will not stray beyond a certain radius of a pack leader unless forced to flee, at which point they will do so and then attempt to re-unite with the herd/pack. A 'leader' may be chosen, if the leader is killed all entities flee in random direction for certain time before a new leader is chosen, and all attempt to regroup at that entity.
Solitary
Moves and acts alone.
Territorial
Designates a variable area of land that it considers it's territory, and that it will protect against intrusion.
Rover
Will wander at random
Predator
Will attack and attempt to kill other entities it comes across. Potentially combined with pack/herd else solitary. May be territorial or roving.
I reality , a predator will gauge it's kills on opponent size or other factors. I'm unsure how something like this may be coded, however. Maybe relative size identification? within certain range an animal will attack, if not, will not?
Fearful
Will generally run away from things of equal or larger size.
Curious
Will approach and linger around other entities it comes into contact with before moving on. May or may not be aggressive.
Stalker
Will stalk an entity. May or may not be aggressive. Seeks to maintain a relative distance between itself and the target. Potentially before attacking, based on creature classification/rules.
Situations this type of behaviour may lead to:
Supposing Gobbles were given pack and territorial behaviours. You might find that another creature, or unwary player, passing by them would find itself on end of a multi-pronged attack. If the player or creature is strong or lucky enough, it may kill all the Gobbles, or kill the leader and send all gobbles scattering in all directions to later regroup or be hunted down. Or else the Gobbles continue to, in effect, rule a certain area of land.
A player or entity may be going somewhere.
They draw the attention of a predatory, roving, pack and must flee or fight.
____
I'm quite sure that there are more behaviours than this that could be used, and that the suggestions I have made can be discussed and improved, so I will open the thread to suggestions and debate:
Rules:
Keep it simple: if the server is forced to calculate several entities with very individualised, complex behavioural pattern, while also calculating everything else, it will slow it down. It's better to have recognisable, basic, interchangeable patterns to follow which will allow entities a recognisable level of diversity while not crashing the server. due to strain.