Shannon V. OKeets
From: Honolulu, Hawaii
October 1, 2005 Status Report for Matrix Games’ MWIF Forum
Accomplishments of September
Revised the project plan based on starting graphics work with Rob Armstrong, and other progress to date. The target date of spring 2006 hasn’t become hopeless yet.
I began working with Rob Armstrong on the graphics.
I monitored all the threads in the MWIF World in Flames forum daily. I started forum threads on the Help System, Tutorials, and AI Assistant.
I began working with a group of forum members who are helping me develop the AI opponent.
Continued in almost daily contact with Chris Marinacci via email about how CWIF gets things done.
I successfully debugged writing out and reading back in the map and unit data from CSV files. This eliminated any need for the old CWIF data files: WIF.dat and Units.dat. I started work on replacing the Saved Setup files encoded in binary, with ones written as CSVs. I finished neatening all of the 141 Pascal files (60,000+ lines of code) in the main call sequence of CWIF. This makes the code much easier to read and understand.
Map and Units
Work with Rob Armstrong on the graphics is still slow getting started. I broke the global map into 32 segments so that Rob can draw in the coastline for all the land masses. There are over 5000 coastal hexes in the game and each will be individually drawn within a 24 bit color, 136 pixel wide by 152 pixel high rectangle. I have included a JPEG file of the segmented map in this report, just for your amusement. It has no role in playing the game and is only a development tool. We are putting a lot of effort into the coastlines because we believe that it is a crucial element in making the map look pretty.
I have not implemented the corrections to the units that Patrice produced. That has a lower priority than getting the detailed map drawn on the screen and the user interface developed. It will be very easy to do using the CSV files, once I get around to it. For example, I made some changes to the map using the CSV files and they were easy to do, took almost no time, and worked right the first try.
I have developed a new screen for starting a game and included a screen shot of it in this report. It is the first screen that comes up when you start the program. Now don’t get all upset about the colors; they will get revised by Rob. Indeed, all aspects of the window template will be replaced with a new ‘skin’. I also haven’t modified the Optional Rules portion of the screen to reflect the changes from CWIF to MWIF. And the bottom two panels about assigning players to countries are mere place holders at the present. My main objective has been achieved though: the program starts by letting you select a saved game or a new one, and in the latter case, you can make all the decisions about the new game on one screen. In CWIF, these decisions were made using a sequence of forms which I found confusing (and I am certainly no novice to WIF or computerized war games).
I have decided to start from scratch on the software for scrapping units. I was unhappy with the screen/form for that function and its interface design in general. Along with that I will rewrite the Save Setup routines so they are CSV files that the players can examine off line should they so desire. In CWIF scrapping units and saving setups were intrinsically intertwined. Revisions to both are works in progress.
Game Record Log
I finished the design specifications for 353 types of entries for the game record log. The number of these just keeps growing, and I have most of the optional rules yet to do. My current estimate is that there will be close to 450 unique entry types when I am done. As I do more of these I learn more about what I want them to contain, so I keep going back over them and making refinements. What that entails is rereading the rules word by word and making sure the entry type specifications capture everything that happens during a game that changes the game state.
When I get these completed, I will post a sample of them on the forum and make a PDF available of the entire list.
The refinements I have been making to the game record log entry definitions have to do with letting the players extract information from the history file about every combat that happens in a game. That includes: where it occurred, which units were involved, the actual combat values for the attacker and defender, any modifications to the die roll, the die roll(s) themselves, the results from the combat table, and the units affected by the results. This is for air, land , and naval combats. My vision is that players will be able to analyze all the attacks Germany made in Poland, France, Russia, and so on. It might seem like extra glitz, but it isn’t that hard to do. Of course, the design has to be done right, and that takes time. In the end, I expect it to be a very attractive feature for both the grognards and the novices.
MWIF Project Overview
I have begun to think of the program as being composed of 6 large sections of code:
(1) static data - map and units (virtually completed),
(2) dynamic data - current locations of units and various game state variables (needs serious review and additions for new optional rules),
(3) the actions a player takes to change the game state - the game record log entries (in design, related code needs serious review and additions for new optional rules),
(4) restrictions on what the player can do when - the rules (related code needs serious review and additions for new optional rules),
(5) the game interface - how a player reviews the game state, performs actions, and learns about any restrictions currently in effect (needs complete revision from design to code, but not that hard to do given the Delphi development system and other development tools), and
(6) the AI opponent (developing the design is in progress but no code has been written).
I see PBEM as part of section 3 and 5 with a few pieces of it as additions to section 4. The multiplayer capability is exclusively in section 5, and solitaire play is exclusively in section 6. The historical detail, animations, and sound are all part of section 5. I have been working on and making progress on every one of these sections except 4. Once I complete the design for the actions players can take in the game (#3), I will use it to review how the rules are implemented (#4), identify the dynamic data for saved games (#2), and make revisions to the interface (#5).
Help System, Tutorials, and AI Assistant
Some ideas were provided by the forum members but not very many, especially when compared to the input they provided on historical details, animations, and sound.
This lay fallow all month..
Play by Email (PBEM) Design
I finalized the design for the PBEM system, including Standing Order (SO) details.
Artificial Intelligence (AI)
With help from the AI group, I began developing detailed specifications on Air Marshall tasks. I also created a valuation system (i.e., currency) for the value of units on the map and in production, objective hexes, resources, factories, activities (e.g. air missions), time, and the cost of getting things done. I have made good progress towards applying that system to the value of individual hexes in the front line and immediately to the rear of same. The valuation system is needed to complete detailed specifications for most of the Decision Maker tasks.
Both golf scores and weight need further reduction. On the bright side, I bought new irons for the first time in 8 years and my relationship with same, though still in its early stages, shows great promise.
September summary: Where did the month go?
Tasks for October
Continue monitoring the forum threads.
Work with Rob Armstrong on all aspects of rendering the map and units on the screen.
Modify the code on optional rules so it includes those, and only those, selected for MWIF Product 1.
Map and Units
Create starting segments of the map in bitmap form which indicate the basic terrain in each hex. Send same to Rob Armstrong. Hopefully he will complete work on some of those segments and send me back bitmaps with detailed coastlines. I will then use the revised bitmaps to replace portions of the existing detailed map.
Replace the Scrap Units routines. Replace the Save Setup routines. Replace the random number generator.
Continue developing replacements for the 100+ windows/forms.
Historical Detail, Animations, and Sound
Begin working with people at Matrix to define exactly what will be included in the game on these topics.
Help System, Tutorials, and AI Assistant
Finalize the design for all three of these areas.
Firm up the structure for the AI Opponent design, including all the details. Write specific rules for 6 game situations to see how the design will work.
Software Development Tools [November]
Develop a small program for Internet communications using Indy10 to test the design for multiple players over the Internet.
Multiplayer Design [November]
Code the new design for the multiplayer system using Indy10, removing the calls to DirectPlay.
Saved Games [November]
Finish the design for saved games (including encryption) and code it.
October summary: Definitely optimistic but necessary.
Perfection is an elusive goal.