Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
MoM bugs reports (to do list)

While defending my city, my opponent casts Disenchant Area and a message says that Dark Rituals was dispelled, but the enchantment remains in effect on the city.
Reply

momfan Wrote:So I think the problem lies with how MOM deals with ships stacked with troops, specifically flying ships stacked with more troops than they can carry (and who don't need to be carried).
momfan, you are next to awesome. This really could be the source, if you are right, you just spared me hours of work. Thanks.
Reply

kyrub Wrote:momfan, you are next to awesome. This really could be the source, if you are right, you just spared me hours of work. Thanks.

Glad to help. I am just so grateful that after 17 long years someone is interested (and skilled!) enough bow to fix the bugs. MOM is such a great game, now with the bug fixes it's even better jive

A lot of people have tried to do a MOM remake, but it seems like they all get caught up in the graphical presentation, without realizing that what really matters is the game engine. Graphics can always be fixed later, and there are way more artists than programmers out there anyway.

EDIT:

By the way, in MOM 1.2 draconian air ships could carry troops. I played 1.2 many years ago, but I don't recall problems with the air ships carrying troops. It may be helpful to look in the ship/troop code from 1.2 to see what changes were made for 1.31 - presumably some of those changes created the bugs you are trying to squash.
Reply

After seeing, what AI does with Mercenaries, I am afraid this is one big broken feature that may have quite a negative impact on Normal and Hard levels AI economy. (Impossible AIs tend to swim in money anyway, so they probably don't care.)

Basically, AI automatically buys the guy, if it can. Does not look at the quality, spearmen paladins, does not look at its own gold reserves (ok it looks if it has the money needed...). The mercenary prices are as high or much higher than rush-buy cost (see the other Catnip thread for info).

Surely, it does not look game breaking. A few more units cannot hurt, can they? The tragic mistake is in the word "few". All AIs on all levels get +10% incentive on Heroes, Items and Mercenaries offers happening. A Mercennary will appear at minimum 11% per turn, that gives a surprising average of 1 expensive mercenary purchase per 6 turns. Wow. - Again, it can win the game for AIs in some conditions (early attack on HP). Otherwise, it has a tendency to hold up its gold-mana economy. The treasure leaks away here.
Reply

kyrub Wrote:A few more units cannot hurt, can they? The tragic mistake is in the word "few". All AIs on all levels get +10% incentive on Heroes, Items and Mercenaries offers happening. A Mercennary will appear at minimum 11% per turn, that gives a surprising average of 1 expensive mercenary purchase per 6 turns. Wow. - Again, it can win the game for AIs in some conditions (early attack on HP). Otherwise, it has a tendency to hold up its gold-mana economy. The treasure leaks away here.

OMG. What a tragedy. And yet MOM is so fun to play despite this...

At Normal and Hard, poor decisions definitely hurt the AI. Probably yet another reason for the gulf between Hard and Impossible. At Impossible the AI can do no wrong because it has so much production that it can build every building, research every spell etc, thus it eventually does the right thing, and in less time than the human player to boot.

I guess it is hard for the code to balance the hiring of mercenaries because the AI doesn't know how to best deploy units whereas the human would take units to fill in gaps e.g. rangers for pathfinding, engineers for roads, priests for healing etc but the AI doesn't know to do this. It would be a great improvement if the AI could at least have some simple rules:

1. Always take units if the fortress or nearby cities are under attack and need reinforcement; else
2. Reject low-level units (spearmen, swordsmen)
3. Reject units it can already build

Later on if there is room for AI development it could use a positive approach:

1. Only pick units it can't build e.g. engineers, rangers, priests etc
2. Only pick end-stage units e.g. paladins, stag beetles, warlocks etc

On Heroes:

Even at Impossible the AI usually doesn't have 6 heroes. Does the AI actually make choices about choosing/rejecting heroes? Because I often fight lame AI heroes. Occasionally there is Torin, Malleus, Warrax, or Elana for example, but there is also Theria, Brax, Valana etc.

On Items:

It seems odd that the AI should have such frequent offers and yet seldom buys them. I sometimes see items on AI heroes which is already a big improvement from vanilla which never did, but at Impossible the AI should be buying items like crazy and the heroes should be heavily armed. This is seldom the case, usually the heroes have no items, when they do it's usually minor items. AI heroes are quite easy to kill in combat, the challenge usually comes from AI wizard spells. With good items the AI heroes would be much tougher.
Reply

momfan Wrote:1. Always take units if the fortress or nearby cities are under attack and need reinforcement; else
2. Reject low-level units (spearmen, swordsmen)
3. Reject units it can already build

Later on if there is room for AI development it could use a positive approach:

1. Only pick units it can't build e.g. engineers, rangers, priests etc
2. Only pick end-stage units e.g. paladins, stag beetles, warlocks etc
To see if this city is clouser (than the others own citys) to the edje of enemy empire?
I will glad to find this algorythm in mom.
About artifacts:its a good idea to program ai do not buy the item,with no hero can hold it.
Reply

momfan Wrote:1. Always take units if the fortress or nearby cities are under attack and need reinforcement; else
2. Reject low-level units (spearmen, swordsmen)
3. Reject units it can already build
1. How do you determine the condition: "is under attack" in MoM? If I knew the answer to this, we'd have much better AI. Again, vicinity is not really a good measure in a game that sees so many movement changes. Windwalking, pathfinding makes unit 4 or 5 times faster. And cities exist in clusters. Also, you need the time to react, to send troops that actually can help, so buying troops when enemy is 1 tile from another city, is really stupid.
...
3. Good one, if somewhat hard to do (there is no list of what can be built everywhere, so you need run all cities, run all building conditions, create lists, check). Slow, code heavy. Not excited.


The 2. is actually the way I am going to use. The spearmen and swordsmen units, I believe, can be determined by the same pointer to the name of the unit. The engineers as well, and they should be taken every time (the margin of error is low). I think I can make a time scaled minimum price, so that in early game, AI buys halberdiers, cavalry, bowmen and Triremes, but later on, it takes only the units with price >= 100. Big experience can make the deal more intersting for AI even later.

I will add a big scale condition:
4. If the deal takes out more than X% of AIs gold, don't do it. AI should protect itself from going bankrupt or not having enough gold/mana to compete.

This should do for Insecticide, I guess. Any other suggestions are welcome.

Quote:Even at Impossible the AI usually doesn't have 6 heroes. Does the AI actually make choices about choosing/rejecting heroes?
Insectide actually started to make AIs reject basic heroes to leave a space for better ones. Sadly, it has no routine to disband Braxes, Therias, Marcuses, Aureuses later. Maybe, if the game had not so many poorly designed heroes, the AI would fare better. Still, there could be some trigger, disbanding unexperienced low level heroes after X turns.

Quote:the heroes should be heavily armed. This is seldom the case, usually the heroes have no items, when they do it's usually minor items. AI heroes are quite easy to kill in combat, the challenge usually comes from AI wizard spells. With good items the AI heroes would be much tougher.
Nobody told me that items are generally poor. Thanks for feedback. Surely something can be done about it.
Reply

@Asfex
Quote:To see if this city is clouser (than the others own citys) to the edje of enemy empire?
Believe me, I always wanted to do your first suggestion, for various reasons. Yet, after seeing many spectator MoM games (when AI plays alone), the closest city on map is not equal to the closest endangered cities. MoM continents are too often disrupted by gulfs. Nothing feels more misplaced than a close city loaded with units that cannot cross the gulf and attack.

The good thing to do: use pathfinding routine to determine "real" distances. Then find the "real closest" city. Use it as a gathreing point => massive * massive * massive AI improvement. This, however, seems too hard to me in current MoM, pathfinding routines are the toughest enemy to disassemble and fully understand. Also, pathfinding takes quite a lot of game time, so we have a performance issue. Really, not easy. Although probably not entirely impossible.
Reply

kyrub Wrote:1. How do you determine the condition: "is under attack" in MoM? If I knew the answer to this, we'd have much better AI. Again, vicinity is not really a good measure in a game that sees so many movement changes. Windwalking, pathfinding makes unit 4 or 5 times faster. And cities exist in clusters. Also, you need the time to react, to send troops that actually can help, so buying troops when enemy is 1 tile from another city, is really stupid.

Maybe a primitive version like "visible by AI fortress" would be better than nothing. The AI fortress sees 2 squares, modified by city walls/oracle so it would have a limited definition of "under attack". This is not really smart but better than nothing.

So:

1. When there are enemies near the AI fortress, always buy if gold allows.
2. If engineers, always buy if gold allows.
3. Never buy spearmen or swordsmen
4. Never buy a unit the AI fortress can build
5. Before turn 100, buy if cost <= 30% of gold reserve
6. During/After turn 100, buy if cost >= 100 and cost <= 30% of gold reserve

The 30% is arbitrary. Can be tweaked as needed. I figure it should allow the AI to buy some decent units without destroying its economy. At Impossible it doesn't matter, this is more for Normal and Hard.

The AI fortress is normally the most developed city, so if it can build the mercenary unit, chances are, the other cities can too.

If the AI has been banished and returns to a lousy city then it probably won't reject the unit which is fine since it's under attack and could use the help. This is another complaint BTW - they seem to pick the new fortress city at random, sometimes taking gnoll or klackon cities instead of better choices like high men, dark elves, or draconians, and sometimes taking small cities over large etc.

kyrub Wrote:Nobody told me that items are generally poor. Thanks for feedback. Surely something can be done about it.

I think there was only once when I captured an item I actually wanted to use. Usually the AI heroes carry low level items which suggests they've been won from lairs rather than bought from merchants.

Question: do merchant items scale by gold or fame? Because AIs usually have tons of gold but little fame, especially once I start fighting them.

If merchant items scale by fame only, it would explain why AIs don't get nice items to buy. I notice that with Insecticide at Impossible, I get a lot of fancy items in the late game when I have 30000 gold and 500 fame. The AIs usually have 10000 gold but less than 100 fame. Most items cost less than 10000 gold so the AIs should be able to buy a lot of nice stuff if it's offered to them.
Reply

We were all wrong.
The AI never reacts to item offers. Basically they are not even offered to AIs. Oh dear.
Reply



Forum Jump: