View Single Post
  #57  
Old September 3rd, 2006, 12:31 AM

Arker Arker is offline
Corporal
 
Join Date: Jun 2006
Posts: 62
Thanks: 0
Thanked 1 Time in 1 Post
Arker is on a distinguished road
Default Re: Artificial stupidity

Quote:
BigJMoney said:
I keep noticing you say that there isn't the need to add all the extra logic checking about battlefield dangers because it can be done much easier, but I've missed what that easier solution is. I'm not sure if it was in an early post somewhere or not, but tell again, if I've missed it, what the simpler solution is that you suggested because this thread just doesn't read correctly without it, lol. I like someone's suggestion to be able to ban spells from a world list or also a specific caster's list.
Well of course if you define the topic at it's broadest - "the AI is rather dumb' - there isn't any simple solution, no. Making the AI smarter in general would be complicated, I'm sure.

But if you look at it from a narrower point of view, chop the topic up a little, there are simple solutions. The biggest problem, for me, is BoW. The simple solution is simply to remove that spell from the list of spells the AI will cast unbidden. Which I gather is exactly what has been done in Dom3.

Another example I've run into is nature mages insistently casting 'protection' on all your troops, when you either are, or are fighting against, Abysia. Of course, Abysian troops radiate heat, and protection raises AC but lowers fire resistance... VERY poor trade when facing fire radiating troops, even WORSE trade when your own troops are radiating. Obviously susceptible to the same fix - just removing it from the list of spells the AI will cast on its own immediately ends the problem.

Another player had the AI cast 'vortex of returning' for him. Hilarious... if it's not your army that just got recalled from a battle they should have won to the other side of the map Again, the simplest solution is to remove the spell from the AIs list.

It can be objected that this gives the human player another advantage in the game, but I don't think it does, because the AI is just as bad at determining when to cast these spells for the computer players as for the human ones. The best I understand, it really *doesn't* have any logic for determining these cases at all, just a random number generator and a preference for casting spells that do direct damage. That preference keeps spells like this from being cast very often, but it doesn't do anything to cause them to get cast when they'll actually help, or not cast when they wont, it just keeps them from being cast at all most of the time.

In fact, this is why I think yanking these spells entirely is probably a better idea than introducing a user interface to ban certain spells. That, I'm afraid, WOULD favour the human over the AI.

For some spells the case for removal is better than others, though. BoW obviously is more likely to harm the AI than to help it, but that is probably not true of protection. Heat-radiating units are much more rare than non-cold-immune units. Still, it's just as bloody annoying to the human player when it's cast at the wrong time.

So, yes, a more sophisticated AI would be wonderful, but realistically, when simply yanking the spells off the cast list has the same effect in most cases, where is the motivation to go to a lot more work for almost the same result? That's what I meant by mentioning motivation. It's perfectly reasonable if you can make a good enough fix in 1 hour or a *slightly* better fix in 1,000, you're going to have trouble finding motivation to go the extra mile, particularly when there are other things you could be working on instead. At any rate, simple solution NOW, more complex solution later, when/if it can be done, seems like the sensible thing to me.

Another fairly simple thing that could be done would be to recode what the AI does with a mage when it has no targets in range. Apparently what it does now is go to 'stay behind troops.' This is not a very smart thing to do at all, as it results in a bunch of leaders piling up right behind the rearmost unit of troops for no real reason. Since it usually happens late in battle, it's not as big a problem as it could be, but it's still definitely in the category of 'not-smart' and REALLY becomes a problem when one of those mages has BoW. I would suggest a mage set on 'cast spells' should, when no enemies are in range, 'advance' until some enemies ARE in range, and then resume casting, instead. It would also be good if troops NOT seeking melee (i.e. on 'fire' or 'cast spells' orders in particular) would advance directly forward, maintaining their position in relation to the top and bottom of the battle map. Currently, for instance, archers set on 'fire' will advance towards the nearest enemy when they cannot fire, so they move forward and left or forward and right, resulting in more troop clumping.

This *might* solve the problem with BoW for human players without removing it from the cast list, as it would make some of the responses I got early in this thread actually make sense - the big problem isn't so much just that the mages cast BoW, but that they typically follow up on that by all clumping together right behind the archers. I'm not sure, but honestly I think it would be a good idea either way. I'm sure it's less simple to do than removing some spells from the cast list too, but it shouldn't be nearly as complicated as a truly sophisticated AI spell-choice code.

Oh, whilst on the subject of battlefield movement, just in case the programmer-guy happens to read this, *please* make light cavalry worthwhile! This would only take a bit of added AI battlefield movement logic. As it is, each unit seems to only move in basically one direction - forward. Unless, of course, it routs. So light cavalry (and this applies to archers of all sorts too, but it's most damaging to light cavalry tactically) moves right up to range, and starts firing, but they never pull back, so they wind up in melee very quickly. Real life light-cavalry armies did a LOT of backward movement, this is what made them effective on the battlefield. They would move up into range, fire, then pull back to avoid melee.

The logic would go something like this:

1. Are we in range of target?
--->A. Yes. Is target within their movement radius of melee range?
------->I. Yes: Is our missile range greater than their movement range?
----------->a. Yes: Retreat to our maximum missile range, or the maximum range we can achieve while still retaining movement points to fire one volley, whichever is less, then fire.
----------->b. No: Stand and fire.
------->II. No: Stand and fire.
--->B. No. Advance our maximum movement, or to our maximum missile range, whichever is least. If movement points are left, fire.

Quote:
Quick question from your OP: does the trident do anything other than what its stats list? It doesn't make the user immortal or anything, does it? I've noticed that most weapons I give my SCs are better than the trident, so I never figured out why I even care to compete in that silly tournament.
It's actually a fairly good weapon, I think. What are you making that's better? Remember it gives extra attacks. But no, I don't often find it worth entering the tournament for.

Quote:
Finally, I'll add that I sympathize. I know if it were me, I'd be just as mad and I think you have every justification. I can't believe others aren't being more empathetic themselves. Here you are trying to work your strategy and there seems to be no way out of this stupid trap -- not even a jury-rigged workaround. I believe one person actually suggested you not research an entire branch of magic. :-/ I'm glad you didn't respond to that.
Thank you.