Shannon V. OKeets
From: Honolulu, Hawaii
September 1, 2010 Status Report for Matrix Games’ MWIF Forum
Accomplishments of August 2010
I monitored all the threads in the MWIF World in Flames forum daily.
I put in 8-10 hours a day on this, every day. That works out to 250+ hours a month. This past month has been rather stressful because they started resurfacing a parking garage across the street. It has two levels and in late July they started working on the top deck, attacking it with jackhammers for about 6 hours a day 4 days a week. They hammer on the concrete until they have broken through completely and only the lattice of exposed steel rebar remains. The crew is 6 guys with jackhammers plus a guy sweeping up. The lower parking area serves as a sounding board for the 6 jackhammers so the noise level is deafening. Even with all my windows closed and cotton in my ears, the noise was insanely loud. After a couple of weeks I bought ear protection muffs comparable to what the workmen are using. That reduced the sound at the higher and middle frequencies to negligible but the lower levels still make my teeth vibrate. On several occasions I have simply fled my house and home for 2 or 3 hours to quiet my nerves. I estimate that they are about 2/3rds done after 5 weeks of work. Today is a ‘quiet’ day for the workmen (they are cutting rebar with acetylene torches) and I feel quasi-euphoric at how quiet things are - there’s just the normal traffic noises from the two main streets, 5 lanes wide, outside my condominium and the 8 lane dual highway a block away.
Hardware and Software
Theme Engine is still disabled. I never use the Delphi 2010 IDE debugger.
I released versions 5.01.04 (36 fixes - 7 done in July), 5.01.05 (22 fixes), 5.01.06 (14 fixes), 5.02.00 (30 fixes), and 5.02.01 (20 fixes) to the beta testers last month. This totals 5 new versions and 115 fixes which is less than the 8 new versions and 122 fixes last month. The main reason for the decrease in both is that I spent a lot of time revising the Land Combat Resolution and Production Planning forms. More on that below. For those keeping track of this stuff, there was no version 5.01.03 because I ‘used’ that version number during alpha testing by revising the saved game format twice.
Fatal errors still occur, but most of the ones I receive from the beta testers are duplicates and (net) there are only 1 or 2 new ones per release. Typically, I fix those in less than 10 minutes. Most of the bug reports concern fine details of the game, for instance, the land combat calculations dominated the bug reports this month. More on that below.
The changes I made to how the trade agreement commitments are enforced required changing the saved game format several times. This was the main reason I released the new full version 5.02.00. Each executable version is now ~300 MB and that is without any saved games. Since saved games are essential for the interactive tutorials and providing the players with a “quick start” for each scenario, the released product should be close to 350 MB (compressed), plus the training videos (~1.3 GB).
Map and Units
Rob sent me updates of the naval unit writeups. Patrice sent me some minor changes to the map data.
Scenarios and Optional Rules
MWIF Game Engine and CWIF Conversion
Improved the activity limits display for the Communist Chinese. Recent rules changes/clarifications by ADG mean that the Communist Chinese activity limits are a function of the Chinese and USSR action choices and activity limits. In particular, the use of a Chinese Offensive chit on Mao is a special case in the rules. When making action choices, the Allied player can now see what effect that has on the Communist Chinese units. There were over 50 places in the code where modifications were necessary to get this to work according to the rules changes.
Reviewed and cleaned up the code for building supply units. This type of unit has to be built using only oil points so it is a little tricky, what with having to convert oil/production points to built points and maintaining a running count of how many supply units have been built during the current turn. The CWIF code was about 80% unnecessary, so I removed that portion.
All the work on the Production Planning form (see below) caused me to find and fix some small bugs in the Use Oil (to reorganize units) form. These two forms are tightly interconnected since they concern the two choices for using oil points.
Revised the status indicators for the units to better explain their involvement in land and naval combat. For instance, when an engineer is providing his benefits to an attack, his attack indicator is now bright green, instead of the normal red for an attacking land unit.
I made substantial changes to the Land Combat resolution form. The beta testers have been after me for years to provide more information on the die roll modifiers and the column shifts. Doing so was non-trivial. There are dozens of die roll modifiers and a dozen column shifts possible. Because this form was already crowded with information, fitting in the additional details required spending time counting pixels. The form now shows:
• the list of combats to be resolved,
• an insert map to ‘see’ each combat,
• a short list depicting the defending units,
• a very long list depicting the attacking units,
• a unit data panel to see detailed information on and individual attacking/defending unit,
• a subphase strip which shows the subphases in resolving a land combat and the current subphase for the combat being resolved,
• a dozen buttons for making decisions and getting help,
• 3 medium sized panels for reporting die roll results and instructing the players to choose units to destroy/disorganize, and
• [new addition] two panels for showing details on the calculation of die roll modifiers and column shifts.
To achieve this I had to make mostly ‘net’ entries. So instead of all the plus and minus changes to the die roll due to armor and antitank units, there is just a “net armor” die roll modifier. Even so, there are 10 separate entries for the 2D10 CRT die roll modifiers and 5 entries for 1D10 CRT column shifts. The presentation of this additional information has enabled the beta testers to test land combats more minutely, and they have found several bugs - some real, some cosmetic. Oh, and all this additional information needed to be written out to the Game Record Log so it could be distributed to other players during Internet play.
I made massive changes to the Production Planning form. It now includes the option to toggle between the detailed and global maps for the form’s insert map. This is crucial for players using one monitor since they need to be able to see where the used and unused convoys are when reviewing and modifying convoy routes. The insert map’s version of the global map doesn’t have all the capabilities of the game’s full global map, since it is focuses on production exclusively. That is actually a benefit since it both removes clutter and always displays information relevant to production decisions.
Rather than create the ability for the players to sort their list of resources and factories, I created a panel of 8 filters that let the player reduce the view to a subset of all he controls: factories, resources, oil, non-oil, saved, trade, overseas, and idle. These roughly correspond to the information in the form’s summary panel. So, if you want to understand the counts in the summary panel for ‘sent’ and ‘received’, clicking on the Trade filter displays those specific resources.
I replaced several stand alone buttons for switching views with a set of radio buttons so the player can choose which of 4 Production Planning form layouts to use: Summary, Expanded, Routes, or Defaults. The first shows how many factories and resources you have and how they are converted into build points. The second removes the summary information to make room for twice as many entries detailing individual resources/factories. The last two are new, described immediately below.
I created a new element to the Production planning for that displays the route taken by resources to their destinations. If it is entirely by rail, then each hex is shown. If it goes overseas, then the only land hexes shown are the departure port, arrival port, plus the origination and destination hexes. Each sea area is also shown. This route can be animated, with the detailed map recentering on each hex in the route in turn with a half second delay. You can also simply click on each hex in the listed route to have the map center on the hex. This lets you see exactly how the resources in Siberia reach factories east of the Urals. To complement this, I added a column to the master list of resources controlled by a player to display the number of convoys used to get a resource to its destination. Still to do on this is to enable ‘seeing’ a single overseas route on the global map.
I created a second new element for the Production Planning form so the player can review and modify: (1) default resources to be used to fulfill trade agreements and (2) default uses and destinations for all resources the player controls. Sometimes a disruption in a convoy route (e.g., enemy subs sink a bunch of convoys) can prevent a resource from reaching its intended destination. In those cases the “previous turn’s” values for resources will be: Idle and No Destination. However, the program will try to use the default settings every turn, so if you can reestablish your convoy pipelines, the program will once again send your resources to their ‘normal’ destinations without you having to do recreate everything.
Here are some gory details on default settings, which will be included in the Players Manual. This level of analysis is required before writing the code.
I defined 4 variables as a set for fulfilling trade agreements: country, action, factory, and destination.
The relationship between the variables is that every resource has a Country defined, if it is being used to fulfill a trade agreement. Country is the receiving country. Obviously, whichever major power controls the resource is the sending country. The major power that controls the resource can define its Default Country (or set it to None). The receiving major power can define the Default Action (use) for the resource, though there are only two from which to choose: production and save. Only oil and build points can be saved and even that is only possible when the optional rule to do so is On. The receiving major power can set the Default Factory for resources that have an action of Production, and a valid Destination for oil/build points that have an action of Save. Note that the value for Action determines whether Factory or Destination are instantiated. That is, if the Action is Production, then Factory may have (does not have to) a valid entry and the value for Destination is irrelevant. Similarly, if Action is Save, then Destination may have (does not have to) a valid entry and the value for Factory is irrelevant.
There are 3 sets of these four variables: Current, Default, and Last turn's. The program tries to fulfill each trade agreement using the defaults if that is possible. Then the program tries to use the set from the last turn to fulfill any unsatisfied commitments. Only if both of those fail, does the program try to find some other way to fulfill the trade commitments. If a trade commitment can not be fulfilled, then the program "sets aside" a resource (or build point) so it is not available to the owner, even though it can not be delivered to the intended recipient.
There are two passes through these 3 sets, the first is for rail only. So, in summary, the process is:
1. Default by Rail?
2. Last turn by Rail?
3. Any by Rail?
4. Default Overseas?
5. Last turn Overseas?
6. Any Overseas?
7. Set aside.
This design lets the source country choose which resources to use to fulfill its trade agreements. The receiving country gets to decide where the resource arrives and what is done with it. This information is only used for trade agreements between major powers. Most of the time, accepting the automated decisions by the program will work fine. For example, who cares which 7 USSR resources are used to fulfill the Nazi-Soviet pact, since they are all sent by rail? It is for the Allied side's trade agreements where this design is most helpful. That's because almost all of their trade agreements require overseas shipments.---
Right now I am halfway through enabling the player to change the uses and destinations of resources he controls. Primarily, players want to designate oil points to be saved and modify convoy routes. But there are a lot of tricky bits.
Internet - NetPlay
Artificial Intelligence (AI)
I began adding text to reflect the changes to the Production Planning form.
Tutorials, Training Videos, and Context Sensitive Help
Historical Video, Music, and Sound Effects
The MWIF fan site still looks good.
Nothing especially new.
< Message edited by Shannon V. OKeets -- 9/1/2010 8:11:45 AM >
Perfection is an elusive goal.