Shannon V. OKeets
From: Honolulu, Hawaii
December 1, 2005 Status Report for Matrix Games’ MWIF Forum
Accomplishments of November
Hopes for the target date of spring 2006 fade.
Rob Armstrong started work on the graphics. This task is just about where I expected it to be at the end of August. For those without a calculator handy, that’s 3 months behind schedule and is the direct cause for the first sentence of this report. More on this below.
I monitor all the threads in the MWIF World in Flames forum daily. Members of the forum have been extremely helpful in providing alternate strategic plans for the major powers.
Graham Dodge, a.k.a., Greyshaft, continues to do extraordinary work towards developing text descriptions for every air unit in MWIF (over 500).
I remain in frequent email contact with Chris Marinacci about how CWIF works.
The routines to scrap units and setup the game are now completely separate and distinct. I also revised all the other routines related to Section 24 of the rules (Scenario information), so they are well structured, general purpose routines that process data for all 11 scenarios. Previously they were a hodgepodge of procedures for the 3 previously developed scenarios. This applies directly to the next section of this report.
After fumbling around with trying to work with the RAW documentation on scenarios, I finally wised up and extracted all the relevant facts into a document that has a single page for each scenario. I was then able to find each element in the existing code, and track how it is defined, initialized, and used throughout the dozens of routines involved in starting a new game. By comparing the scenario specifics with the existing code I was able to make the modifications so all 11 scenarios now start with all variables initialized correctly.
These include: countries, maps, # of players, initiative, weather, aligned countries, force pools for all countries, states of war, conquered countries (complete and incomplete), control of hexes (occupied territory for various start lines and claims upon neighboring countries), reserve units’ status, intelligence, neutrality pacts, trade agreements, new home countries, automatic declarations of war, creating Vichy France, may align permissions, moving factories, offensive and defensive markers set up at start of scenarios, US entry markers and entry and tension pools, US entry options taken, and US entry actions rolled for. Each scenario has something unique to it in terms of what is required in order to set it up, so standardization was not easy to do. All of this stuff is even more complicated because it depends on which optional rules are being used. That means that the routines that process scenario information have to have branching logic to accommodate every optional rule being on or off. Very tedious.
I still have to complete the unit lists for Brute force, Darkness before the dawn, and Decline and fall, but that is trivial compared to the nightmare of getting all the above entered and processed correctly.
Map and Units
Rob has created the bitmap for the British Isles and it is quite wonderful. It uses double the resolution of CWIF (up from 68 wide by 76 high pixels to 136 by 152) and increases the number of colors from 256 to billions (8 bit to 24 bit). The new pixel scale is comparable to the highest zoom-in level for CWIF. From that resolution I will let the players zoom out to whatever they find most comfortable when playing the game. The maximum zoom-out will be the same as for CWIF: 1/8 scale = 17 by 19 pixels.
We are currently working on how to render the terrain for each terrain type and how they each will look with the overlays for the different weather types: fine, rain, storm, snow, and blizzard. The goal is to have the weather visible without obscuring either the underlying terrain or the units. Of course, weather visibility can be turned on or off using a toggle switch. The common terrain types (clear, forest, mountain) will each have variations so the map doesn’t look monotonous. The variations for the mountains currently look very nice using textures. Because the map is so important, this will probably have to go through several iterations to make sure each terrain type is easy to identify (doesn’t get confused with another one that looks similar), even for the 10% of the male population that is color blind. Once we get something that looks presentable, I will present to you-all to look at. Not there yet.
What I especially like about the British Isles bitmap is that the coastlines are a perfect replica of those used for the WIF FE maps. They should be, since Rob was working from the original computer graphics files from WIF FE. The only change is that Rob has added gradations to the color of the water between the all sea hexes and the land pixels. WIF FE maps use a dark blue for all sea and a pale blue for coastal waters, without any gradations. Still a long way to go on this, but a good start.
Eventually I will be replacing the current 11 bitmaps for terrain (one for each terrain type) with thousands of bitmaps. Making variations on the 11 basic terrain types will only add a few dozen new ones. But to make the maps better than those in WIF FE requires each coastal hex to have its own bitmap. And there are over 5000 coastal hexes in MWIF. The rivers will be simple overlays, and also look precisely like those in WIF FE (at least for the European map). The alpine hex sides will receive less artistic crafting but look much better than those used in WIF FE. Available as a toggle on and off will be all the country borders and weather zones, which are drawn on the fly. That also applies to the rail lines and roads.
Redesign of MWIF Game Engine
The graphics is holding this up. I first want to see the graphics completed for several reasons. The primary being that the speed of processing the graphics is essential and whatever changes are needed to the code to make the higher resolution appear at near instantaneous speed has to have highest processing priority. Once the graphics are in place, then other changes can be made, and tested to make sure they do not degrade the speed of displaying the maps and units.
I really want to redesign the MWIF game engine so that there is one central processing routine that accepts input from different sources. This game central processor (GCP) will provide the link between the actors and the acted upon. The actors are: the player at the keyboard, internet allies and opponents, email allies and opponents, and the AI assistant and opponent. The acted upon are all the game elements that make up the simulation of WWII that is WIF.
The redesign of the MWIF game engine is required for a whole host of reasons:
(1) To provide structure for all the disparate bits of logic that make up the convoluted rules of WIF.
(2) To facilitate replacing the DirectX internet communications code with Indy10.
(3) To permit installation of the PBEM system.
(4) To permit installation of the AI assistant and opponent.
(5) To permit writing the game record log and replaying games.
(6) To serve as a foundation for future versions of MWIF (e.g., America in Flames, Days of Decision III).
I am loathe to even start thinking about GCP in detail until the graphics are done. Getting partway into designing GCP and then having to drop it to work on the graphics full time is very inefficient. When I leave code incompletely done, I find that it takes me so long to reacquaint myself with what I was doing earlier, that I might just as well start over.
So, I have been working on the periphery of WIF, on stuff that has to be done sometime, and that I can do now with great efficiency, independent of the graphics and the GCP. That is why you might have noticed my focus on the PBEM design, the AIO, and scenario data. This is not my preferred sequence of doing tasks. However, the world rarely behaves the way I want it to, and the main lesson of evolution is “adapt or die”. Hey, I’m adapting, I’m adapting, don’t kill me yet! And as always, I try not to get annoyed at the world for doing what it does.
Help System, Tutorials, and AI Assistant
I have yet to definitize the design documents for these.
This received only a cursory glance last month.
I reviewed all 100+ forms/windows again and this time made changes to practically all of them. Much more to do on this.
Artificial Intelligence (AI)
The draft design document for the AI opponent (AIO) is now 78 pages long and I have started a supplemental document that contains strategic plans for each major power. I have started taking on some of the more difficult problems, like measuring the value of air and naval units and converting them in to land unit combat values.
Several forum members participated in a Germany versus USSR land combat case study to assess how the AIO will make decisions about how to attack a defensive line. It was very helpful to work through an example with multiple critics poking holes in the logic I have for the AIO. Though only a paper study, it serves as a partial solution to testing the current design. The ultimate judgments will occur when the game goes into play test.
I still put in over 50 hours a week on this despite performing practically every week singing Christmas carols. That is as a member of the local barbershop harmony chorus, Sounds of Aloha. Our scripted show next weekend is titled “Santa Lite”. The plot line is that Santa has gained so much weight that he no longer fits in his sleigh. For those of you seriously into theater, we keep the line between comedy and tragedy perilously close - as it should be.
November summary: Progress, but not on the highest priority items.
Tasks for December
Continue monitoring the forum threads.
Map and Units
Work with Rob on all aspects of rendering the map and units on the screen.
Finish replacing the Save Setup routines. Replace the random number generator.
Modify the code on optional rules so it includes those, and only those, selected for MWIF Product 1.
Continue modifying the 100+ windows/forms.
Historical Detail, Animations, and Sound
Identify with whom at Matrix I should work to define exactly what will be included in the game for all of these.
Help System, Tutorials, and AI Assistant
Finalize the design for all three of these areas.
Finish defining the relationship between the air, naval, and land unit values. Continue working on defining the value of individual hexes and a line of hexes (i.e., a front line).
Software Development Tools [January]
Develop a small program for Internet communications using Indy10 to test the design for multiple players over the Internet.
Multiplayer Design [January]
Code the new design for the multiplayer system using Indy10, removing the calls to DirectPlay.
Saved Games [January]
Finish the design for saved games (including encryption) and code it.
December summary: Same old, same old.
Perfection is an elusive goal.