I would first like to take this opportunity to chime in with a link to my very first post on this forums (ahhh, the reminiscences
https://forum.megaglest.org/index.php?topic=3142Hello all. the purpose of this topic is to discuss the possibility of a CPU-ultra that is more than just and accelerated CPU. No, I was hoping for better logic from the CPU ultra in these ways:
*regrouping after, say, 20 or 30 tiles. This prevents the CPU from ineffectively fighting in lines.
This is the result of the way the AiRuleMassiveAttack rule (sources/glest_game/ai/ai_rule.h:148) works and I agree. I think the main point of this is that an attack force needs to stay together. I know I'm about to get my ass kicked usually when 3 to 5 horseman or drake riders show up. I know this because those are just the fastest units and they got there first, more are surely on their way. Perhaps the most effective mechanism for this is just the same as what would be required to have units move in formation for players & AI alike -- this will allow a massive attack AI rule to be executed with the units arriving at the same time, except that I would have them break from formation the moment an enemy is sighted and form back up once no more enemies are visible (in case they run into a scout, you don't want to screw the whole attack up just because of that).
*"measuring" the amounts of defense that can be provided by certain units and making more accordingly. This means, for instance, that it knows an archmage can withstand more attackers than a demon, but also knows that it is weak and needs melee to keep units away from it.
Yea, that's a tricky one. In the end, I think each tech tree needs an AI hints section to tell it these types of things. The ideal strategy game has a rock, paper scissors type of set up where certain units have certain strengths and weaknesses against other certain units -- this keeps it fun and interesting and, as some have put it, keeps a game from becoming a contest of who can harvest resources and build the fastest.
*the ability of a CPU to use secondary attacks when needed. Like an archmage using a static fire on a battlemachine if it's alone instead of the ice nova.
I've tried to incorporate some of these mechanisms into the game with auto-attack commands. Currently, on FPM, battlemachines and Liches have auto-attack commands, which are also the first attack command. Thus, the AI will choose this as the attack. For battlemachines, they will seek to get into melee range and whack stuff because that does more damage. But if they can't whack anything or the nearest target is arial, they will switch to their arrow attack. For Liches, they will use their withering dispair attack unless they are at less than 100% health, in which case they use the more mana expensive Soul Steal attack. However, static fire is also huge for taking out units of all types (since they are usually pretty deadly) and that's not something I can figure a good way to implement without getting heavy into AI calculations. Thus, I suspect this will eventually get solved by making just those types of calculations, each unit asks themselves:
- who is in range?
- who is a threat to me personally?
- who is the greatest threat to my faction?
- how much damage does each of my attacks do to each of the enemy units in range?
- how many friendly units will I fuck up with this attack (considering splash damage)?
- Thus, which unit should I attack and with which skill? Or should I just turn around and not destroy my friendlies or expose myself to unnecessary risk?
*build resource-storing buildings closer to the resources (IE summoner guilds by wood)
Yea, I like that one
*leave at least 2 tiles of space between 2 buildings. This is so units don't get trapped in their own town.
I believe the minimum the AI will allow is 2 spaces in fact. If you've seen otherwise, please save the game and email me the saved game file.
*Not building more than 1 building that can only do upgrades (like building 3 different archmage towers)
Yea, pretty annoying huh? This is better than it used to be because of tweaks I made a long time ago, but it still does it. One benefit from this is that if you need a building to make a certain type of unit (like blacksmith needs to exist for various units to be created) then it's good to have a backup in case one is destroyed. But the benefit vs cost is often not as worthwhile as the AI may think.
*Summoner should cancel all her queued orders when she loses more than 1/3 of her health.
Agreed, except in cases where they are very close to being done and the risk is worth it. I have also seen a battlemage suddenly start trying to morph into an archmage in the middle of combat, and he was the only enemy unit left alive. He was going to die, but he almost killed one of my units and probably would have if he didn't start morphing.
*This goes for other buildings, like barrackses and aerodromes as well.
I don't agree with this as it's usually important to pump out as many attack units as possible, even when the building is falling into shambles.
*can use strategies when attacking your town. Maybe distract you one place, then bring in everything else on the opposite side of your town
Yea, I covered that one my January post (see sneak attack)