Im thinking in create a very complex and huge IA script. But im wondering if it will be too much for RGSS. I have heard a lot of times that IA is one of the hardest things and also specially cpu-intensive.
These is a quick map of what im doing. I have designed it, coded something and have the algorithm in work...
The idea is to give some human habilities to the monster, like knowing to attack opponents with low hp or learn about elemental weakness.
There exist 12 IA levels. Each adds some extra inteligence to it. IA 12 is a very advanced one that might play like some humans.
There is a list of the things what im pretending the IA to do:
-Dont attack opponents with bad status that disappear with that monster action(skill,atac)
-Dont attack opponents with raised defenses to something(status,rows,defense...)
-Attack oponents with lowered defenses to something.
-Attack opponets with 20% or less of life.
-Evaluates effectivity phsyic attack vs magic.
-Lear about elemental resistances.
-Supposes enemy total hp.
-Can think in the combat future, saving PH and trying to do defensive things first.
-Knows to evaluate a scan on opponent.
-Help his allies.
Also i was thinking in that beyond some IA level the monster will use the other monsters learned information, and in the mx it can use also the actors one.
It also work with actions ratings and add a random component. It uses actions lists with a rating value thats settlefd with a lot of checkings everytime...
What im thinking is.... ¿this will be possible? Too bad if i design all the algorithm just for seing that the rgss cant take it in a reasonable time. Maybe someone can estimate if im overrating AI or not.
Im also wondering if im using the best algorithm. Now i create a action list array with all posible actions, evaluating all the valid enemy actions and valid targets.
Action list uses: action_type, target, scope, skill/item_id, and rating. I use this information because i was thinking thats better to use some more memory here that having to recheck or find other values.
Then i check for every of that conditions, adding some value to the rating if its true.
For last, i find the max and erase the other ones. The last selection is random.
These is a quick map of what im doing. I have designed it, coded something and have the algorithm in work...
The idea is to give some human habilities to the monster, like knowing to attack opponents with low hp or learn about elemental weakness.
There exist 12 IA levels. Each adds some extra inteligence to it. IA 12 is a very advanced one that might play like some humans.
There is a list of the things what im pretending the IA to do:
-Dont attack opponents with bad status that disappear with that monster action(skill,atac)
-Dont attack opponents with raised defenses to something(status,rows,defense...)
-Attack oponents with lowered defenses to something.
-Attack opponets with 20% or less of life.
-Evaluates effectivity phsyic attack vs magic.
-Lear about elemental resistances.
-Supposes enemy total hp.
-Can think in the combat future, saving PH and trying to do defensive things first.
-Knows to evaluate a scan on opponent.
-Help his allies.
Also i was thinking in that beyond some IA level the monster will use the other monsters learned information, and in the mx it can use also the actors one.
It also work with actions ratings and add a random component. It uses actions lists with a rating value thats settlefd with a lot of checkings everytime...
What im thinking is.... ¿this will be possible? Too bad if i design all the algorithm just for seing that the rgss cant take it in a reasonable time. Maybe someone can estimate if im overrating AI or not.
Im also wondering if im using the best algorithm. Now i create a action list array with all posible actions, evaluating all the valid enemy actions and valid targets.
Action list uses: action_type, target, scope, skill/item_id, and rating. I use this information because i was thinking thats better to use some more memory here that having to recheck or find other values.
Then i check for every of that conditions, adding some value to the rating if its true.
For last, i find the max and erase the other ones. The last selection is random.