Shannon V. OKeets
From: Honolulu, Hawaii
November 9, 2019 Status Report for Matrix Games’ MWIF Forum
I’m really late with this month’s report - sorry about that. I was in California with my chorus for a competition in October and pretty much lost a week of work. Luckily we missed all the fires, though a few chorus members were stuck in Los Angeles over night because of all the power outages.
As of yesterday, the Seeking Opponents data base in the NetPlay Private Forum is accessible again. This problem has been on again, off again over the last couple of months. The latest fix was to remove a Redirect pointer in the Slitherine/Matrix NetPlay server that was referencing a non-existent source for the database. After removing the spurious Redirect pointer, the server was able to ‘find’ the Seeking Opponents database - and all is well. The most recent post I saw was from October 30th.
No Hot Patch was released in October for customers. Meanwhile, the beta testers received a few new versions. We are now up to version 18.104.22.168 for testing MWIF compiled using Delphi Rio (version 10.3). I will try to post a Hot Patch this coming week (version 22.214.171.124) generated using the old Delphi XE8 - which will have source code identical to that used to create the impending version 126.96.36.199.
Program Development: Delphi Rio (version 10.3)
My new computer system is fully functional, although eventually I should transfer over a couple rarely used applications from on my old machine (e.g., CorelDraw).
Because the versions of MWIF created using Delphi Rio require replacement BPL (a.k.a. DDL) files, I am holding off on generating a Delphi Rio MWIF - version 188.8.131.52 - as a Public Beta until I see a version generated under the old Delphi (XE8) running with no issues. Presently, that would be version 184.108.40.206.
I made a serious pass through all the remaining emailed bug reports in 2019, without finding anything of note to change. Mostly I inserted a few checks to avoid non-fatal errors (these pop up when quitting the game when the program is expecting a form to be completed (e.g., Choose Action).
After spending a lot of time looking into Supply calculations taking too long, I came up with only a couple of small changes. The program had been trying to find paths between supply sources belonging to cooperating major powers and aligned minors. For example, Germany typically has Italy as a cooperating major power and Rumania as an aligned minor country. All that code was useless. Cooperating major power supply sources and aligned minor country supply sources can never be on the same supply path. That’s because they do not cooperate (e.g., Italy does not cooperate with Rumania). So I trashed about 1500 lines of code (commented it out actually). That should speed things up a little.
Another bug I explored for supply calculations taking too long was from an old game. 10 days of effort later I figured out that the game was damaged. An old bug having to do with France being completely conquered and then rising from the dead when one of its old minor countries is liberated, left the Relationships data between major powers and minor countries all screwed up. [That bug has long since been fixed.] France was recorded as being at war with a slew of still-neutral minor countries (e.g., Switzerland and Turkey). The program was treating hexes in those minors as possible supply routes for both sides (Axis and Allied). A ton of time was spent searching uselessly for supply paths.
All in all, my time spent looking into speeding up supply calculations wasn’t fruitful. I have an internal time monitor for supply calculations, breaking it down into a dozen or so pieces. The amount of time spent on each piece is reported so I can tell where the program is expending the most effort. But that depends on the individual game. In some games, a lot of time is spent determining whether Secondary supply sources can trace a path to Primary sources. In other games, it is the search for Overseas supply paths that burns the time. In yet third instances, searching for Tertiary supply paths back to Secondary is where the program takes excessive time. Very frustrating to not be able to identify one place that misbehaves in every case.
So, I have put working on speeding up supply calculations in abeyance for the nonce. That means that working on the optional rule Isolated Supply has also been set aside.
I’ll now select another missing Optional Rule to implement.
Missing Optional Rules & Half Map Scenarios
Nothing new in October.
AI Opponent (AIO)
Nothing new in October.
Perfection is an elusive goal.