0.9.7

Anything else to do with MoM IME
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

A handful of the help text descriptions I have also corrected, but I bet there are plenty more that are wrong, like the one you found. I guess if you make a list of any of these and let me know, I'll go fix the English file from it.
Okay, I can certainly do it.
And I spent a long time trying to locate free font files on the web that had the right look and feel and font size for MoM, and had good support for accented characters.
You were quite successful in that. There are only few glyphs missing.
If any are missing and you have the knowledge on how to modify them then sure go ahead. I wouldn't have any idea how to do that...
Well, I can do it, although I know next to nothing about fonts. Fortunately, there is a program called fontforge which can handle that.

And, finally, a little bugreport: In combat, when I left-click the unit whose turn it currently is, I get an error message box saying that I can't move to the square where I already am --- and I'm kicked out of the combat. On the one hand, it's some sort of "poor man's flee", which is useful since fleeing doesn't work, but on the other, it would be probably better if just nothing happened.
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

The missing glyphs were added. It was only 14 of them in one of the fonts (Č, Ď, Ě, Ň, Ř, Ť, Ů, č, ď, ě, ň, ř, ť, ů), so no big deal. Maybe it sounds like a lot of work, but in reality it was just some copy-paste.

I tested them in the game as well and it works wonderfully.

By the way, do you know about the so-called Plight mod for the original game? It replaces the original bad and vague help-texts with lots of very detailed information. I hacked up a little program to retrieve the texts from the HELP.LBX file and I'll use it as a first validity check, the second being the MoM wiki. I mention it because you might like to use it as a base for the next generation of help-texts.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

I thought it was about time I posted what I've been so busy doing. I had started 0.9.7.3 intending to just work down the list of spells and unit skills that didn't yet work and get perhaps not all of them finished, but quite a few. That in itself was taking longer to do each spell than I expected, since every one required coding in some new unique effect.

Then I came to Weapon Immunity and started trying to list and test all the things than can punch through it (summoned creatures, units built with alchemy, spells such as Holy Weapon or Flame Blade, etc) and then started to think, what about the Invulnerability spell - that grants Weapon Immunity as one of its effects. So I posted on the MoM Wiki about it here and confirmed what I suspected, that an attacker with say Flame Blade cast on it will punch through the Weapon Immunity portion of Invulerability, but not the -2 damage reduction portion. And my skill model just couldn't cope with that.

In fact the whole way unit stats were calculated was like a massive spider web. Lets say you want to know what a unit's attack strength is, there's a piece of code that worked that out. But to know that, you had to first know its experience level, since experience grants a +attack bonus. To know its experience level, you first have to look up the value of its experience skill, but also chest the owning wizard's retorts (for Warlord) and spells (for Crusade). Every unit stat method called every other one and, it made it pretty difficult to follow precisely what was happening and where things like Invulerability's Weapon Immunity effect should be added in. Not to mention how wasteful it was - in the process of resolving one attack from a unit, it would probably calculate their experience level 20+ times, every time their attack or defence stat was referenced.

So I realised what would be much cleaner to follow, maintain and test would be to throw away all the individual unit calculation methods calling each other in a web, and have one huge piece of code that calculated every possible piece of information about a given unit. Then it could do so in a sequential manner (like, apply all spell effects, then apply all skills that grant secondary effects, then apply bonuses from experience, and so on). That alone wasn't too difficult, and it works very nicely indeed. Then I was a while testing it and proving that it coped with all the complicated situations that the old code struggled with. Hurray :)

Then came the real problem. I had to retrofit the new unit calculation super method back into every single place in the game that did anything at all to do with units, which is pretty much the entire game. I had several attempts initially at how to even approach the size of this task before I found a workable way to do it gradually rather than one massive rewrite, but still, it has taken me literally months to do. I've just now finished this.

So, that's as much as I plan to do on 0.9.7.3. I didn't get all the spells and skills working that I wanted, but I did get this mammoth unit calculation rewrite completed and that's of far greater significance. Its all done now, but I need to spend some time retesting as much as I possibly can. Since this has touched practically every piece of code in the game, the entire thing needs retesting - every skill, every spell, every immunity to see what is working and what isn't. I'll try to get at that over the next few weeks so I can release it.

After that I need a bit of a break from it (and to get some breathing space so I can fix bugs people will inevitably find), and after that I'm going to work on the AI. That's the biggest most important missing piece right now and is more important than finishing off missing skills and spells.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

Just uploaded 0.9.7.3 onto Sourceforge :) I've spend a good while over the last week or so testing this and fixing odd bugs in it so I hope its unlikely anyone will run into any significant issues, but if you do please post them on here to let me know about it.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

Found 1 significant bug so far - you can't capture cities which have no units defending them, doing so causes a crash.
Talonos
Posts: 1
Joined: Thu Sep 08, 2016 6:43 pm

Re: 0.9.7

Post by Talonos »

Just wanted to say I just found this project, and I am extremely excited by it.

Thank you for all your hard work. Having a visible, open-source codebase would make it that much easier for modders to create their own add-ons and expansions.

What's the best way to help out with this? Bug reports?
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

It's great to see that you've been able to get rid of these problems. Just a quick question: have the text tables changed? I'm working my way through them slowly but steadily (but hey, they are a big lot of text, and a large portion of it wrong or misleading). Should anything be updated?
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

Hi both,
Talonos wrote:Having a visible, open-source codebase would make it that much easier for modders to create their own add-ons and expansions.
Well it is now, I've had it all freely open on Sourceforge for a while now because of others making similar comments.
Talonos wrote:What's the best way to help out with this? Bug reports?
This is why it took me a while to reply, trying to think how to answer this :) Bug reports certainly, as in if there are situations which are just plainly wrong or cause a complete crash in the game. And typically it isn't much use just to report that something went wrong (if people just say "I did this and had this problem" but then of course when I try the same thing it works fine), unless you can either show a stack trace of an exception from the client or server, or provide details of how to reliably reproduce the problem.

But more than that, I'm busy for a while trying to write the AI, but after that I'll have to get back to trying to implement all the unit skills and common spells that don't work yet, and then move on to uncommon. The problem is where 0.9.7.3 got sidelined into rewriting the unit calculation engine, I don't have a definitive list of which skills and spells work and which do not. Its easy to get a list of which spells are uncastable because they're completely unimplemented, I'm more meaning those that you can cast but do not work 100%. e.g. does Flame Blade negate the bonus from Weapon Immunity? Does Holy Weapon actually give +10% to hit and Eldritch Weapon give -10% to block? It would take a lot of time and knowledge of the original MoM to go through every spell and unit skill testing whether they work properly, but if I had anything even close to this would be extremely useful.
ramillies wrote:have the text tables changed? I'm working my way through them slowly but steadily (but hey, they are a big lot of text, and a large portion of it wrong or misleading). Should anything be updated?
I can only keep the English file updated. If you mean the other translations, these haven't been updated in a very long time (some are worse than others) and so will be very out of date, sadly.
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

Perhaps I should reformulate it like this: Did the English language file change? I still translate it to Czech (slowly) and the translation is based on the previous version, so I wanted to know if there are any additions or modifications to be aware of.

And, moreover, I would like to ask you something about touch attacks. When and how often are they performed? In original MoM they came along with every ranged, melee, thrown, breath and gaze attack, which could easily cause them to be applied more than once during a single exchange. Is it so in MoMIME as well? (This causes some weird effects, like Bowmen + Immolation = Strength 4 Fireball Shooting Machine (TM), and that's the reason I ask,)
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

ramillies wrote:I wanted to know if there are any additions or modifications to be aware of.
You mean from 0.9.7.2 to 0.9.7.3? I can get you a list of that, if that would help.
ramillies wrote:...touch attacks. When and how often are they performed? In original MoM they came along with every ranged, melee, thrown, breath and gaze attack
I don't think that's necessarily true. Breath/Gaze/Immolation attacks shouldn't be applied to ranged attacks like from bowmen, but then again, the original MoM is really buggy so its quite possible they actually do.

In MoM IME there's a pretty complicated "damage resolution table" which says things like, when a unit makes a melee attack, first process the attacker's breath attacks, then process the attacker's gaze attacks, then process the defender's gaze attacks, then process melee/touch/immolation damage all simultaneously, and so on - basically it is a copy of the table on this page. There's a different "damage resolution table" for ranged attacks - the only secondary attack that accompanies a ranged attack as far as I know is "life stealing", e.g. Demon Lords and the Necromancer hero can life steal with their ranged attacks. So no, immolation and gaze attacks won't accompany a ranged attack from bowmen.

You can always check - in combat click the blue calculator button and it shows you every attack damage being rolled. Its way too much information, but its very useful for debugging that attacks are being executed properly.
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

Implode wrote:You mean from 0.9.7.2 to 0.9.7.3? I can get you a list of that, if that would help.
That is what I meant. If you could, it would be nice.
Implode wrote:I don't think that's necessarily true. Breath/Gaze/Immolation attacks shouldn't be applied to ranged attacks like from bowmen, but then again, the original MoM is really buggy so its quite possible they actually do.
It applies only to the touch attacks (Poison / Life Steal / Immolation ...) and they accompany all Melee/Ranged/Breath/Thrown/Gaze's. For example, if a manticore (Poison 6 or something like that) gets a Breath 2 Chaos Channeled on, in a melee it will firstly do Breath 2 + Poison 6 and later Melee + another Poison 6. (Now imagine a Great Wyrm with that.)

I'm happy that this weird thing won't be present in MoMIME :). What I was thinking about was the big 7-step table here and comment section here.
Implode wrote: ... So no, immolation and gaze attacks won't accompany a ranged attack from bowmen.
Gaze didn't, but Immolation did in the original.
Implode wrote:You can always check - in combat click the blue calculator button and it shows you every attack damage being rolled. Its way too much information, but its very useful for debugging that attacks are being executed properly.
That's a lovely feature. I hope that you will leave it there when it's all done ... One of the few things I hate about the original MoM is that whatever goes on in the combat, you see the same 2-frame animation accompanied by the same horrible sound. If you are being beaten too much, it's extremely hard to find why (more so in complicated situations with various special attacks and skills, and even more so when nothing tells you that some of the skills get actually used multiple times during one exchange --- like that Poison example) and this tool would tell you.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

ramillies wrote:You mean from 0.9.7.2 to 0.9.7.3...That is what I meant. If you could, it would be nice.
I'll work on that and post it here in a moment.
ramillies wrote:Gaze didn't, but Immolation did in the original.
Wow I didn't know about that, that's interesting. Anything that feels blatantly buggy and wrong (like Immolation accompanying ranged attacks when all the spell/effect descriptions in the help, as well as common sense, dictate that shouldn't be the case) then I just take liberty to fix the way that seems sensible to me, so this is another example.
ramillies wrote:What I was thinking about was the big 7-step table here and comment section here.
Oh that's there. Since you're looking at this in detail, run the MoM IME server XML editor. Go into Edit > Unit > Unit skills. Click on "Melee attack strength" and hit the "Attack resolutions" button. Select the 3rd one "Attacker has First Strike and Haste, Defender has Haste" and click the "Steps" button - there's your 7-step table. The step numbers are significant, since all damage dealt within a single step is simultaneous (that is, if the attacker kills some defender figures but the defender gets to counterattack during the same step, they still do so with all figures alive). Immolation is listed from the attacker twice, and the defender twice, since they have Haste.

For the normal, simple example where nobody has Haste, look at the last Attack Resolution in the list "Regular melee attack with simultaneous counter-attack".

Also look at attack resolutions from the "Ranged attack strength" skill.

By the way, Immolation is listed twice, as both US032 and SS099 - one is the native Immolation skill that Doom Bats have (with orange background on the skill icon) and one is the castable version (with a purple background). i.e. if you cast Immolation on a Doom Bat, it will then get two Immolation attacks. That's a general problem with a lot of skills where there is both a native and castable version so its on my list of things to fix, but isn't going to be easy, so I'm not worrying about it yet. I suppose I could define them in the XML so that having one skill negates the other, but the whole area needs attention so I think I should come up with a better solution.
ramillies
Posts: 16
Joined: Wed Sep 02, 2015 12:34 am

Re: 0.9.7

Post by ramillies »

Implode wrote:I'll work on that and post it here in a moment.
Thank you. Happy to see that there aren't any major changes.
Implode wrote:Wow I didn't know about that, that's interesting. Anything that feels blatantly buggy and wrong (like Immolation accompanying ranged attacks when all the spell/effect descriptions in the help, as well as common sense, dictate that shouldn't be the case) then I just take liberty to fix the way that seems sensible to me, so this is another example.
Yeah, it makes no sense. I didn't really think you would copy that, but I like to be sure.
Implode wrote:Oh that's there. Since you're looking at this in detail, run the MoM IME server XML editor. Go into Edit > Unit > Unit skills. Click on "Melee attack strength" and hit the "Attack resolutions" button. Select the 3rd one "Attacker has First Strike and Haste, Defender has Haste" and click the "Steps" button - there's your 7-step table.
Great! I like how it's possible to easily introspect the game.
Implode wrote:The step numbers are significant, since all damage dealt within a single step is simultaneous (that is, if the attacker kills some defender figures but the defender gets to counterattack during the same step, they still do so with all figures alive). Immolation is listed from the attacker twice, and the defender twice, since they have Haste.
I know that — same as in the original, after all. I linked the 7-step table more to show that the attacker gets 4 immolations and touch attacks, while the defender gets 3. Of course, I only agree with both having 2 of them, which is the intuitive and sensible count.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: 0.9.7

Post by Implode »

Several bugs had been found in 0.9.7.3, three of which were game breaking, so I felt it was worth fixing these and doing a 0.9.7.4 build rather than waiting to finish the AI work I'm doing for 0.9.8, so just uploaded this new build onto Sourceforge.
User avatar
Blake00
Posts: 34
Joined: Sun Nov 01, 2015 3:59 am
Location: Australia
Contact:

Re: 0.9.7

Post by Blake00 »

Hey Implode, was just dropping by and wanted to say it's great to see all the work you've done over the last year since we last spoke over email. I remember you weren't getting much support early last year so it's also great to see some other talented folks lending you a bit of a hand this year. Your hard work over the last 12 years has and most definitely WILL bring joy to a lot of people's lives! :)

I've finished working on my own gaming projects and am about to work on updating my website and youtube channel in prep for their public release. While I'm doing that I will finally upload my gameplay vid of MoM-IME. Hopefully it can bring more fans and help here as youtube is such a great tool for bringing in fans to quality projects these days! Might see if there's of MoM social media communities I can post about your game in too, as little niche retro fan group pages on fb seem to be replacing forum communities these days (unfortunately).
Implode wrote:.. and after that I'm going to work on the AI. That's the biggest most important missing piece right now and is more important than finishing off missing skills and spells.
As someone who's not really into mutiplayer and is more after a 13 AI giant map slaughterfest I'm mega excited about this stage mate! Can't wait! :)
Image
Blake's Sanctum - Master of Magic Legacy:
fan page containing pictures, vids, info, similar games & fan projects!
Post Reply