Shannon V. OKeets
From: Honolulu, Hawaii
July 1, 2006 Status Report for Matrix Games’ MWIF Forum
Accomplishments of June
December 2006 as a release date is still my best estimate - unchanged from last month.
Rob Armstrong finished all the high and medium resolution bitmaps for the air and naval units. There are over 2500 bitmaps total for the units. For the low resolution unit depictions, no bit maps are necessary.
I monitored all the threads in the MWIF World in Flames forum daily. Members of the forum are helpful, supportive, and, on occasion, funny. My wife liked the fact that the proposed add-on of Nurses in Flames was immediately abbreviated to NiF.
Erik Rutkins increased the size limit for me to upload screen shots to the MWIF forum. This was greatly appreciated and immediately made use of in posting screen shots of the newly designed map views and screen layouts lists.
Beta testers continue working but are complaining about having to set up all the units for a scenario (e.g., Global War) over and over again. I fixed some of the really nasty bugs and will try to mitigate their distress in the future.
Dan Hatchen and I made very little progress on NetPlay this month. Partially this is my fault because I had to travel to New Jersey for a funeral and completely lost 5 days in the middle of the month.
Claes Insulander did not complete the data modifications for the Scandinavian map before leaving for Sweden for the summer, but got most of it done, and I will finish it up when I do the China map mods.
Patrice just sent me his final recommendations for changes to the China map. It is the culmination of several hundred posts/suggestions from forum members. More on this below. He has now started a discussion on fixing the Caucasus portion of the map.
Terje and Fred Zimmerman have written descriptions for most of the naval units. Terje sent me a 140 of them and they look great but will need some revision. Greyshaft suggested, and I agreed, that adding some numbers about the naval units would be beneficial. That is not to say we want each description to be a recitation of weight, speed, displacement, and so on. But including a few of the more important numbers related to fighting ability seems appropriate.
Ian Wilson and Richard Dazeley have started contributing to the discussion of how to design the AI opponent. Richard is quite knowledgeable about MCRDR for those of you who are interested in the technical aspects of this. Our immediate focus is on the language that will be created/used for writing the rules for the AIO.
Mziln is culling the optional rules from RAW and assembling them into packets that correspond to the 81 optional rules in MWIF. He has completed over half of them. Peter Kanjorski has offered to edit the packets into something a little friendlier to read than the prose RAW typically uses. The main problem is that RAW assumes extensive knowledge about the WIF when discussing the optional rules. I want to have text writeups for the optional rules that the players can read when starting a new game. Unless I miss my guess, that means that the writeups on the optional rules will frequently be read by newcomers to WIF.
Peter completed editing the 57 HQ writeups that Greyshaft did and once the two of them have reached joint agreement on the text, I will replace the old writeups with the new ones.
No communication with Chris Marinacci over the past month.
I uploaded versions 1.03 and 2.00 in June. Version 1.03 just fixed a few things and added a bunch of unit bitmaps, but version 2.00 made massive changes, which is why I changed the first digit in the version number. The big change in version 2.00 is that I added the ability to save screen layouts and map views. This lets the player tailor how the screen looks not only to suit his own preferences, but also in multiple ways to handle different phases of the game. Some phases warrant having different forms displayed. In playing around with the combination of screen layouts and map views, I can see them having tremendous benefit for game play. By creating different sets of map views for each major power, a player can instantly focus the map on the areas of concern for that major power. France looks at the Maginot line, the Italian border, the Med, its holdings in North Africa, and the Middle East. Germany looks at the Maginot line, Scandinavia, the North Sea, Poland, the Baltic, and the Balkans. You simply click on each map view to have your troops pass in review for each theater of operations.
I now have the program save the screen layout for each major power when it relinquishes control. This enables the program to restore the screen layout last used by a major power when it regains controls. So as you cycle through the USA, CW, France, USSR, and China, moving units for each of those major powers, the screen layout refreshes automatically. No need to reposition the map views. Of course this also occurs when switching between sides.
Version 2.00 contains a completely revised subdirectory structure, primarily modified for saving game files. There are now very few directories at the highest level and the files the player generates when playing are all stored within a scenario subdirectory. For example, there is a Barbarossa subdirectory. Each of the other 10 scenarios has its own subdirectory too.
And finally, version 2.00 has all the high resolution unit bitmaps. Loading them all causes Win 98 to crash and burn. I expect to encounter a similar problem with XP once I get all the coastal bitmaps installed. The solution will be to page the bitmaps in and out of memory on an as needed basis. For those of you familiar with this class of software problem, I expect to create my own system for prioritizing what to swap out when. Coastal bitmaps for northern Siberia and South America shouldn’t be needed very often, and bitmaps for optional unit types (e.g. light cruisers) can also be omitted if the corresponding optional rules are not being used. I estimate that XP can support all the unit bitmaps plus about 60 to 80% of the coastal bitmaps in memory simultaneously. The exact numbers are hard to come by, since I haven’t been able to find Windows documentation on its limitations/capacity for storing bitmaps in main memory.
Map and Units
Patrice sent me his final China map revisions. He also provided me with an annotated copy of what Claes had done on the Scandinavia map, marking where additional changes still need to be made. Now that I have both of these I’ll start making the necessary changes - it is similar work on the same set of data files. At the end of this process I will have two sets of additional Chinese cities: some and many. We will play test the not-so-many first and see how that works out. If need be, I could make the two sets available to the players in the final product, letting them choose as part of selecting optional rules. Right now the choice for adding extra cities to China is binary, so all I am talking about here is making it trinary (none, some, or many).
The European portion of the map is finished except for the Qattara Depression. Rob has sent those bitmaps to me, and I expect to add them in when I do the revisions for the Scandinavia and China maps.
Rob sent me another pass at the fortifications and they should be finished after one more small change. I am looking at having the color for the fortifications indicate who currently owns them - the Maginot line would be pale blue and the Siegfried line gray. He also sent me overlays for the weather effects and I incorporated them into the main program. While they are close to what I wanted, the differences between rain and storm are too subtle. I have asked Rob to revise them to make it really obvious to the player whether what he is seeing is rain or storm, snow or blizzard. Since these are overlays for the terrain bitmaps, they need to effectively communicate that information against all the different terrain types.
I started coding the medium resolution unit depictions (air and naval units are done - only land units remain) and started thinking about the low resolution versions. In order to make the numbers readable at zoom level 2 (zoom level 1 is hopeless), I will have to use larger fonts and lose all the other information from the counter image. For medium resolution, which I expect the player to invoke primarily for zoom levels 3 and 4, I have been able to retain a black and white silhouette image of the unit type. They are not as pretty as I would like, and I am investigating replacing the silhouettes with 2 - 4 characters as CWIF used (e.g., BB, CV, FTR, etc.).
I also started trying to figure out how to make the naval subsystem more playable. It really has to be played at zoom level 1 (or at most 2) in order to see multiple sea areas on the map at once. What I have in mind is displaying the units at a larger size within the sea areas. For example, though the map would be a zoom level 1, the units would be zoom level 4. The sea areas are quite large and it shouldn’t be a problem to make the units fit within their respective sea areas even with the disparity in zoom levels. How to display naval units that are in port is still an unanswered question, and so is how to display land based air units that can fly into sea areas.
I have a comparable system planned for the land units, but in reverse. Here I will use hexes at zoom level 8 (big hexes) and units at zoom level 4. This will let me place four units within a hex and have them all be completely visible - no occlusion. I will also enable that arrangement for the map at zoom level 6 and the units at zoom level 3. This lets the player see all the land units on a front even though they are stacked 4 in a hex. Maximum stacking for land units in a hex is 3, so the 4th visible unit can be an air unit.
Internet - NetPlay
I removed about 2/3rds of the references to DirectPlay in anticipation of replacing them with Dan Hatchen’s NetPlay code. What happened here is I consolidated numerous stray references into a single reference to a universal routine. Dan and I made a couple of passes at putting his code into MWIF. I have some of it installed, but nothing really substantial. Losing 5 days (1/6 of the month) really took its toll here.
I designed and coded the saved map views and screen layouts. They are now in beta test. Screen layouts record 22 forms in a disk file. For each form there is its location on the screen, its size (when variable), whether it is visible, and other odd pieces for some of the more elaborate forms. The player has a list of the screen layouts available and can switch between them depending on where he is on the sequence of play. For example, movement and combat for land, naval, and air units will typically call for different screen layouts.
Map views are just that: a view of the detailed map that defines the center hex, zoom level, and the settings for all the map display toggle switches (e.g., hex control, weather, units, named locations, rail lines). By clicking on a map view from the map views list, the detailed map is redefined according to the saved map view. This eliminates a lot of the need to navigate from one area of the map to another via scrolling and/or the global map.
Rob and I have started discussing the color scheme/theme for the player interface. This includes the design of the ‘skin’ for the Windows components. Because this discussion is very preliminary so far, I will only provide one tidbit: we expect to use a different color scheme for each major power.
I created a separate variables file for the player interface and the bitmaps. In the former I have all the variables that relate to the detailed maps, map views, and screen layouts that the player can manipulate during game play. The bitmap variables files contains the plethora of bitmap variables the program uses to display the map and units on the screen - I now have them all in one place - I know where they live! Which reminds me of the contractor I had do work for me when I lived in Philadelphia. I asked him if paying by check was all right and he told me it would be fine because he was from South Philly (heavy Mafia presence) and he knew where I lived.
I redid how games are automatically saved. CWIF had a very nice design for doing this but the code did not have any comments and was confusing to read. Now that I have pulled it all apart and added inline documentation, it is quite sweet. At the end of each phase the game is automatically saved with the name of the phase embedded into the file name. There are dozens of phases within a single impulse and the Axis and Allied copies are kept separate. What this means is that a player can go back in time rather effortlessly, assuming he doesn’t want to go back too far. To go back more than 2 impulses, he will have to have proactively requested the game to be saved.
MWIF Game Engine
While traveling I worried at this problem. Upon my return I took a half of a day to rework my diagram for how I see all the elements of MWIF interacting. I still want to polish this somewhat, writing text to go with each of the boxes - defining what I mean by Message Control, Simulation Control, and Game Control, for instance. Most of this is clear in my head now but some fog still lingers around the program structure for Sequence of Play, Rules Enforcement, and Decision Control. I want separate Pascal units for each of these and I am about halfway towards achieving that goal.
I finished all the field definitions for the game record log. Using them, I can start writing entries out to the Game Record Log as the game is played. Some of them should be easy to do, and once I get my feet wet doing those, I’ll advance into the more complex portions of the game.
I fixed all known problems with saving and restoring games; but I still have a nervous twitch every time restoring a game takes a nanosecond longer than I expect.
I made a first pass on the table of contents for the Player’s Manual. It is going to be big. Marc Schwanebeck from Matrix Games sent me the specifications they use for printing Player’s Manuals but I think I will reaffirm those details for MWIF, since it is going to be such a big manual. For example, I expect the revised version of Rules as Written (Rules as Coded - RAC) will only be half of the manual. And RAW is 60 double column, small font pages, not counting the player’s notes - which I also expect to copy over verbatim into the MWIF Player’s Manual. The other items for the Player’s Manual cover the player interface (i.e., how to play WIF using the computer) and the particulars of the different modes of play (e.g., over the Internet and by email).
Nothing new here.
Help System, Tutorials, and AI Assistant
Nothing new here.
Artificial Intelligence (AI)
I edited my master document with the changes I had pencilled in over the past 6 months. I then sent it off to Ian and Richard. While I was traveling (30+ hours on planes and in airports), I gave some more thought to the knowledge base structure for the AI Opponent which I have written up and passed along to Ian and Richard for comments and suggestions. I am pretty close to a final design for the language for the AIO and expect to complete that by mid0July.
I ordered the upgrade to Delphi 2006 which should arrive July 3rd. Since I put in the new computer, I have been getting inexplicable program failures from the Delphi compiler and its graphics user interface. Hopefully, the latest and greatest version of the software will fix these glitches (yeah, I know, my naivete is cute).
June summary: High resolution counters done for all the units and the medium resolution counters 3/4 done. Not enough progress on the Internet code. And more should have been accomplished on the redesign of the game engine. However, the player interface saw substantial advancement, the Player’s Manual started its journey to completion, and even the AIO received attention after a long period of neglect.
Tasks for July
Continue monitoring the forum threads.
Fix more bugs, both old ones and the new ones caused by the addition of the code for dynamic screen layouts.
Map and Units
Finish the medium and low resolution counters for all units. Modify the data files for the revised Scandinavia and China maps.
Thoroughly test the new random number generator (this task is still collecting dust at the bottom of the pile of things to do). Start cutting over from CWIF’s messaging system to the game record log system.
Finalize the theme and color scheme for the player interface including the definition of the skins. Add the bidding capability to the Start of Game Form so the beta testers can play one-on-one over the Internet.
Redesign of MWIF Game Engine
Start work on implementing the new MWIF Game Engine.
Software Development Tools
Install the Delphi 2006 upgrade.
Incorporate the Indy10 code for the new design for the multiplayer system into MWIF. This requires replacing the CWIF calls to DirectPlay.
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).
Finish the table of contents and transfer all the various write ups I have done for different portions of MWIF into the Player’s Manual (e.g., PBEM design).
Historical Detail, Animations, and Sound
Start listing all the places the program will use historical video footage, sound, and music. Begin fleshing out the content for the first half dozen tutorials.
Help System, Tutorials, and AI Assistant
Set up forms dedicated to viewing the sequence of play, so they can be used later as an index/table of contents into the context sensitive help files.
40 minute walk and an apple every day.
July summary: Make the system for playing over the Internet work. Put in the map changes. Finish the units. Finalize the player interface design and start applying it to the dozens of existing forms.
Perfection is an elusive goal.