As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

Poll: Is clicking Done and watching units move fun?
You do not have permission to vote in this poll.
Yes, I love clicking done and watching units move
14.29%
1 14.29%
No, I would rather play the game
57.14%
4 57.14%
I use automatic combat because of this issue!
14.29%
1 14.29%
I use automatic combat for another reason!
14.29%
1 14.29%
Total 7 vote(s) 100%
* You voted for this item. [Show Results]

 
Least Favorite Part of CoM2: Auto Battling

I want my swordsmen to stand there inside the city walls/wall of fire, and if the other swordsman wants to engage, they can. Basically how auto turns worked before.

In CoM2, I have to manually click done again and again because pressing auto my units will just run out of the castle. This is completely unrealistic in every way, but more importantly, it's almost never what the player wants.

When there are flying units attacking my ground units, and then deciding against attacking but not fleeing, which happens quite often, I have to click done 25 times, and wait each time for units to fly around randomly. This makes a battle that used to take around 5 to 10 seconds, now take upwards of a few minutes, depending on how many movement points the flying units have. And then guess what the computer does? Attacks again. Another 5 minutes straight of clicking done.

Can someone explain clearly why this is more fun or better? I really don't understand this. I have temporarily changed to auto battles (which has a few weird issues as well), but I prefer actual battles.


I just cannot fathom why forcing the player to press done literally hundreds of times in a game, and forcing them to wait in between presses is supposed to be fun. I understand that the old way had the side effect of having flying units just dive bomb suicide themselves on melee units behind walls. I get that. But honestly, while that was kind of stupid, this change is extremely frustrating, tedious, and just as stupid in another way. If a flying army wants to attack and then decides it no longer wants to attack, there should be some way of prompting a troop exhaustion. In other words if the AI isn't going to cast or attack, just fly around wasting my time, allow me to force it to exhaust. Why make me suffer? This is infuriating, especially since the only answer I'm seeming to get over the last year or so is that it's intended.

Suggested fix(es) some or all or any of:
- Stop punishing the player for using auto - make auto exactly the same as the computers' autos.
- "Stand firm" or similar auto mode - just does nothing but defend. Does not wander around aimlessly or do anything else.
- Some way to force exhaust if enemy isn't going to attack.
Reply

I think it might be good if auto battle play more competently (at full capacity) if player using "Smart Familiar" rule at cost of score modifier, of course.
Reply

‘Dumb Neutrals’ is a good option to stop this nonsense stalling for neutrals and defenders at least. Otherwise, this controversial feature of stalling is something author is certain to continue, a clear reason being the player can easily stall as well - it is kind of obvious you can with no consequences and even the original hinted it with the design of sprites

Auto gets smarter the later in game you are, most noticeably in combat spell casting.

A ‘smart auto ai’ could be a helpful score modifier. So could a ‘no stalling’ modifier as wd already have major ai handicap options already

Reply

I'm guessing it ended up this way becomes someone else didn't like their units staying in place and take arrows to their face or something.
I'm not really seeing how holding down the D key on the keyboard for 10 seconds is a problem, unless that doesn't work due to a new bug?

Anyway, looking at the source code.
Weird enough I can't find anything that would override or modify the default AI for autobattle regarding wall behaviour, even though I assumed there is one, as it exists for most everything else. Maybe it exists and I'm just not finding it but it's more likely this is the AI's decision.
I'm going to check that posted save file to see what triggers this behaviour.

..."stay behind walls flag" is on for the swordsmen but they pick the outside unit as a target for melee anyway.


...found the override. It was in the movement source file, not the AI one. It explicitly says the "stay behind walls flag" is ignored when the moving unit is owned by the human player.
The most probable reason for that is simply because the AI's decision will in many cases not match what the human player expects so someone will be unhappy with it either way.
Like, when the units do stay behind the walls but the AI starts to spam Flame Strike or even just Fireball or Possession, you lose the battle.
I can make this optional in the next update through Modding.INI but I do think staying behind the walls in general will make the player lose more often even if it only happens when the AI thinks it's the right move, compared to always attacking. In the end, walls "only" provide a 3 defense bonus but each wasted turn allows the enemy to cast an entire spell against you.
Or maybe, we could force moving outside only when the player picked the "no spells" option, and let the units stay as the AI sees fit when they did allow spells? That eliminates the disadvantage created by taking spells without returning them.

PS : You can speed up movement animations with the Q key during battle, that should help too.
Reply

Quote:I'm guessing it ended up this way becomes someone else didn't like their units staying in place and take arrows to their face or something.

All they needed to do was move their units outside the wall and press auto. The original auto would not return units to behind the wall. A nice way to fix this without screwing over everyone else would be to add a "charge the field" auto (removes wall logic from movement).

Quote:I'm not really seeing how holding down the D key on the keyboard for 10 seconds is a problem, unless that doesn't work due to a new bug?
I guess I can record a very long video the next time the game locks me into a repeating, multi-turn punishment. For example flying units who are too scared to attack me, but they still attack my city with no walls. Then they just fly around, while my ground units walk around. "holding down the D key" is now my gaming experience. Holding down a key, while watching many units aimlessly wandering around the map doing nothing. The only thing I will think of is the good old days before this change was made. Back then, the flying unit would just attack me. You know, like something happening in a video game - not me just holding a button, watching units wandering around.
And then after that fight finally is over, the very next turn, it happens all over again. I guess I need to prove with video evidence what playing this game can be like with this change.

Quote:The most probable reason for that is simply because the AI's decision will in many cases not match what the human player expects so someone will be unhappy with it either way.
The way it was before - AI will attack your city and do this:
- Stand there outside your walls casting stuff
- Stand there outside your walls shooting at you
- Charge with units that can attack your gate unit, or immune to the wall
- Charge with units that have used their spells and ranged attacks

Later was added this concept of not attacking if the unit thinks it will die. I don't know why this was added exactly but one of the effects of it is units would stand outside the walls, shoot their shots, then run out the battle clock.

This is exactly where what should have been implemented has not ever been implemented.
If shooters come to my castle, and fire their shots, I should be able to "stand firm" which means "great you shot your shots now go away." No more actions? Their side exhausts immediately. I don't want to see a draconian dance party - go home and sleep it off!

That change was skipped because at the time, after shooting all their shots, AI would just stand there, and at the time, units on player side unable to attack or behind wall would also just stand there. The net effect is that running out the clock on both sides was pretty quick - equivalent to both sides holding D. It basically felt like exhausting the battle after a few seconds' pause.

But then another change was made - units behind the wall would somewhat randomly just wander outside of their castle, off to suicide out in a field, leaving the rest of the army behind.
And another change - units unable to attack would no longer just stand there; instead they would wander around aimlessly.

Without the stand firm option these changes have changed the game in a fundamentally bad (unfun, unrealistic and tedious) way.
Before:
Can't attack? Press auto and you are done. No issue at all. Battle quickly ends.
Being attacked with ranged? Your units may run out and try to engage, but can still use auto. Annoyingly there is no way to force not running out, nor to force running out. A stand firm and "charge the field", with the original logic would probably solve this issue entirely.
Wizard can attack you, and cast spells again and again. Move your units outside the wall and press auto. Annoying, would be solved with a "charge the field" auto, meaning run out of the castle. Not too bad though.

Now:
Can't attack? Press auto if you want to spend a few minutes of your "gaming" time on a different monitor, working. Because there are a billion units aimlessly wandering around the battlefield for some reason. The other option is hold D with your finger and watch only one side of the battle wandering around aimlessly, while you neither get work done, nor play a game.
Being attacked with ranged? Basically the same as it was before - mostly unusable without changes.
Wizard can attack you, and cast spells again and again. You still can't reliably just press auto, because often units still stay inside the wall. You nearly never, ever want only a couple units to wander out and engage. And there is no way to tank it intentionally, so your options are auto, with stopping it to move your other units out, or holding D. Would be solved with a "charge the field" as above really.

I don't know how much clearer I can be through forum post text; maybe this will help:

Quote:Like, when the units do stay behind the walls but the AI starts to spam Flame Strike or even just Fireball or Possession, you lose the battle.

Action before: move unit out, press auto. Wait for next turn, click to stop auto. Move next units out, press auto again. Basically, move units out of the wall and auto them.
Could use auto? Yes, but need to keep stopping it.
Problem before: annoying to need to do that
Solution before: add ability to charge field, or stand ground.
Would be able to use auto? Yes, entirely, with those modes.
Solution enacted instead: Sometimes, some units will wander out to go fight. Often they don't. But also they do.

Quote:I do think staying behind the walls in general will make the player lose more often even if it only happens when the AI thinks it's the right move, compared to always attacking.

Stand firm/charge field . Stand firm essentially autos "done" command. Charge field essentially removes wall logic from movement.

Quote:In the end, walls "only" provide a 3 defense bonus but each wasted turn allows the enemy to cast an entire spell against you.
They only provide 3 armor, are stacked on firewall, and protect every single unit behind the gate unit. And bait out anti-wall spell casts. Absolutely critical in many battles - one of the most important defensive pieces of the entire game experience. Hiding catapults behind pikemen is so, so much more useful when you can route the units to the pikemen. So, no, not just 3 defense. An entire army can be entirely lost literally just based on if they are in formation behind the wall, or if they wander out to their deaths. Happens all the time!

Keep up the great work and thanks!
Reply

Sounds like the correct solution then is to add "Stand Firm" and "Stand Firm, use spells" options. This could also be used by the players in the opposite situation : when they control the flying unit and don't want to engage but retreat.

As the current default is to always go outside (AI wall strategy ignored), it shouldn't be necessary to add a "Charge" option as it would do the exact same thing that already happens.
Reply

Implementing this currently.

So to clarify which would be preferred?

Stand Firm option forces all units to skip their turn (same effect as spamming the done button)
or
Stand Firm allows the units to fight but with certain restrictions - for example use ranged attacks and spells only, without moving, and never use melee attacks or only use melee attacks if the enemy is adjacent, etc. In this case I'd like an accurate list of restrictions - which type of action shloud or shouldn't be allowed.

For the time being, I've done the former but it should be easy to change assuming to desired AI behaviour isn't too complex.
Reply

I was just describing the equivalent of holding D for the units. This will still have the issue of flying attacking units wandering around for no reason, but at least it will get us back to having some kind of defensive auto.
Ideally in this case there would be an AI check like this:

If player is standing firm:
- For attacking wizard (if any), and all attacking units:
-- Still have enough mana to cast spell?
-- Intend on casting spell?
-- Intending on attacking and able to, or will be able to before battle end?
- If no to all of these for all units and wizard, and stand firm on the other side, EXHAUST!

In other words tally possible and intended actions, and if there aren't any, don't fly around, just exhaust.

Personally I wouldn't try for the second option of adding certain actions, because it will be a rabbit hole, in my opinion. And it may also defeat the purpose. If I have draconian fliers, maybe I don't want them to melee attacking anyone near me. Now I'm back to having to mash D again. Personally I would just leave it at done for all units and hope for the quicker attacker exhaust logic.
Reply

ok, I'll leave it that way then, it'll just pass the turn (press D) for all units. If the player wants to use ranged attacks they can do it manually and activate auto after the ammo runs out and melee attacks are definitely a "rabbit hole" as you say.
Reply

If you ever port this to python or similar, I will help build it all for free smile
Reply



Forum Jump: