Shannon V. OKeets
From: Honolulu, Hawaii
June 1, 2009 Status Report for Matrix Games’ MWIF Forum
Accomplishments of May
Too many bugs and too many other tasks remain to meet the planned July release date of MWIF product 1. I expect to be finished by the end of September, but Matrix Games needs a few weeks after I submit the finalized code to package the game for distribution. Also, publication has to be scheduled into all their other projects. At the end of this post is a summary of the tasks that remain for me to do.
Mike was assigned as editor for the Players Manual and he is doing excellent work.
Barry was assigned to do the historical video and he is doing excellent work.
Jim was assigned to do the sound effects and he is doing excellent work.
I monitored all the threads in the MWIF World in Flames forum daily and uploaded versions 1.00.07, 1.00.08, 1.00.09, and 1.00.10 for the beta testers. My next release number to the beta testers will be 1.01.00.
I ran a simple survey of the World in Flames forum members asking which mode(s) of play they expected to use, as a percentage of the time they spend playing MWIF. This was motivated by a conversation with David Heath about how important the AI Opponent will be. My guess prior to this survey was that the break down would be 50% NetPlay, 30% AIO, 20% PBEM. I was completely wrong. Based on 126 respondents, the estimated percentages are 53% AIO, 22% PBEM, 17% NetPlay, 6% solitaire, and 2% head-to-head. From the comments players made, solitaire, and to a lesser extent AIO, will be used to gain experience with the game so they can play against human opponents using PBEM and NetPlay. But over 60% of the respondents expect to play against the AI Opponent most of the time. I now agree with Dave: the AIO is crucial for sales.
Patrice continues to provide me with screen shots for the Players Manual.
Andy Johnson (#1 - unit writeups) and Rob Jenkins are close to finishing the naval unit writeups. They will continue working on this until I tell them to stop, or they complete them to their satisfaction.
I have received land unit writeups from Phil, Augusti, Joel, and Eric. Jesper has promised me his master collection, but real life is making his availability extremely limited.
Peter Skoglund made progress on both the Swedish and the Turkish minor country setup scripts for the AI Opponent. In order to get feedback from the forum members, he posted his work on Spain and Sweden for comments.
Andy Johnson (#2 - fan site) sent me an email saying he would like to set up a fan site for MWIF. I forwarded that to Dave and Erik, since it is outside my purview. Note: there are two “Andy Johnson’s” involved now, just to keep me more confused than I usually am.
No communications with Harry Rowland or Chris Marinacci.
Hardware and Software Development Tools
I have not installed ThemeEngine July/2007 - there is no pressing need to install this upgrade.
I uploaded four new versions for the beta testers, roughly one a week. Version 1.00.07 fixed a lot of bugs in the end of turn phases of the game. It also reflected the time I spent going through all 200+ saved games I had accumulated this year and testing them to see if they loaded correctly. 190+ did and I fixed several bugs so the recalcitrant ones can now be loaded.
My mini project to build a complete library of map views has borne fruit. From the beta testers I gathered ~400 map views. This covers all 11 scenarios, and all major powers in each scenario. I merged these submissions into a single set for each scenario, which will appear to the purchasers of the game as the file “New Game.SLY”. That’s a screen layout (SLY) to be used when starting a new game. I’m real happy with this, even though it meant I had to spiff up the form that lets players manipulate the list of map views shown during play.
My next task in this mini project is to create variations on “New Game.SLY” for different monitor sizes and configurations. I have already put together a list of default configurations so this shouldn’t be a lot of work to finish. Ideally, a purchaser will be have a New Game.SLY file for each scenario, that is tailored to his monitor(s) and lets him switch map views for each major power in that scenario.
The 1.00.08 and 1.00.09 version changes were mainly bug fixes to the sequence of play. I also make progress on PBEM and the AIO - see below. Though some changes fixed scattered bugs, my focus was on the end-of-turn phases, Conquest and Vichy formation primarily. My work on Vichy enabled me fix the problems with the Reinforcements phase.
Version 1.00.10 enabled Vichy to be declared and run through to completion, at least for the hundred times I executed it. Of course the beta testers quickly found a bug in one of the Vichy subphases that I had not encountered (sigh). I now have the reinforcement and lending phases working well (spiffed up) and I am cleaning up the Initiative (e.g., rerolls) and Move First forms. When I upload version 1.01.00, the beta testers will inform me of the errors I missed in these phases.
In general, the beta testers are finding few new errors. They are reporting: (1) things I already have on my task list which I haven’t gotten around to fixing yet, (2) things that aren’t errors but rather problems they have with understanding how the game is played (new guys to WIF), and (3) errors in sections of the code that they had never been able to reach previously. Most of the time I can fix the last group quickly. My conclusion is that I finally have this program in a form I can modify without causing ripple effects (i.e., new bugs).
If I had the time, I would add another dozen beta testers. However, the current beta testers are keeping me very busy, and bringing in new beta testers requires a substantial investment of my time.
Units, Map, and Scenarios
Andy and Rob continue their weekly updates of the naval unit write ups. And I include them with each new version I upload.
Patrice found 5 coastal hexes that I messed up when I made my last pass on the map bitmaps. Arrgh, it only took me 15 minutes to fix, but I had thought that messing with that part of the game was out of my life.
I moved about a dozen optional rules into a list of tasks that are likely to not get done until post release. It is not that I do not like these optional rules, or have anything against them, other than they require me to spend time on them to make them functional.
I enhanced several of the forms used in the Vichy Declaration subphases. CWIF provided very little information to the player about what was happening during those subphases. With the addition of several sentences to each form, it is now clear what decisions (if any) the player needs to make in each Vichy subphase. This stuff only occurs once per game (if that) and players are typically a little foggy about what exactly happens during Vichy formation. So, including refresher information is important for these forms.
I went through all the PBEM forms and created 20 for enabling players to enter Standing Orders, which are the heart and soul of the PBEM system for MWIF. More on this below.
I also created the directory structure for the AIO files and included that in version 1.00.09.
Internet - NetPlay
I installed a telecommunications monitor program/tool (WireShark) on each of my computers so I can debug the program for testing internet communications.
Two Windows style components remain to be replaced with the better components from the JV library: Choosing US entry options & Bidding for major powers.
MWIF Game Engine
I still couldn’t find time to work on rewriting the Supply determination code.
I fixed several problems with saving/restoring games.
Rules as Coded is done and in Mike’s hands. The next time I expect to see that is as a finished PDF for inclusion in the product release.
Using my hand written notes, I brought all my sections of the Players Manual up-to-date and uploaded them for Mike. For the sections that I had finished (2, 3, 4, 5, 7, 9, 10), I removed the figures and attached them in a separate zipped file of TIFF figures. Mike finished writing Section 1 (How to Install, and How to Contact Matrix Games) and will do Section 12 (Index). He and I will work together on Section 13 (Credits). This leaves Sections 6 (Modes of Play), 8 (Player Interface), and 11 (Appendices) for me to complete.
At last report, Mike finished editing sections 1 through 5 and was working on section 7.
In order to take screen shots of the PBEM forms, I need to write code to instantiate them. There are some other forms where I still want to make minor adjustments, which presently prevents the screen shots for the Players Manual from being taken. Otherwise Section 8, Player Interface, is coming along nicely. I have transferred text from the Rules as Coded to serve as background information for most of the forms. As the screen shots arrive from Patrice, I writeup a short explanation of the form and how to use it. Not counting the NetPlay and PBEM forms, there are 11 code changes, 46 screen shots, and 37 text descriptions left to do for Section 8. By the way, Section 8 is presently 132 pages long.
I took my work on the PBEM design document and transferred it almost verbatim into Section 6 of the Players Manual. Once the PBEM design document is finalized, Section 6 will be too.
I have processed most of my notes on file data structures into the appendices. To complete the appendices I want to list all the files included in the released product, with a simple explanation for why they exist.
I have extensively revised the PBEM design document I wrote in the fall of 2005. There is some very tricky stuff in the sequence of play and I need to make sure that I have it correct in the PBEM design document. This text is now included in Section 6 of the Players Manual: Modes of Play.
Because the normal WIF sequence of play is so complex, explaining the subtle changes for the MWIF PBEM isn’t easy. I also expect many players to use PBEM extensively, so I want the documentation on when emails are sent and what is included in each email to be crystal clear. That also makes it easier for me to write the PBEM code.
After my revisions, there are 21 Standing Orders (SOs) in the PBEM system (there used to be 25). A SO is where the player says what he wants to have happen during the other player’s ‘turn’. This way the program can keep the game moving forward by reading the SOs and making decisions on behalf of the ‘absent’ player. This design means that thousands of emails are eliminated and a single game can be finished before both players die of old age.
Next up is to define data structures for holding all the Standing Orders.
Historical Video, Music, and Sound
Barry sent me sample video files (in WMV format) and I was able to get them to display correctly from within MWIF in less than an hour. Would that all the tasks on this project were as easy to do! Barry is working on finding videos for the rest of the list I sent him.
Jim sent me sample sound effects files (in WAV and OGG formats). Matrix Games would like to use OGG format but I need to figure out how to do that. WAV format would be easy to implement, but has a track record of not working on some system configurations.
I gathered all my notes on the music (pun intended) and need to render them into a coherent form so Dave can assemble the requisite music files.
Help System and Tutorials
I have asked Patrice to go through the tutorial screen shots and see if some of them are out-of-date. What I have been working on is the script for first segment of the Training Video, which I now envision as me going through the picture & text tutorials. Hence I need the screen shots finalized. I won’t describe each of the 125 pages in those tutorials but I probably will do 50 or 60 of them. For the rest, I will encourage the players to read through them at their leisure.
This makes the second segment in the Training Video a presentation of the game’s Main form, for which I had already roughed out a script. The other segments will be comparable to the interactive tutorials, explaining how to move the units and engage in combat, plus the ancillary stuff liked declaring war and production.
Peter continues to work on the scripts for setting up minor countries.
I’ve done some more development of the form for testing LAIO scripts. This can be called from within MWIF and used to monitor how a script is parsed and executed. Next up is to have the parser parse.
A couple of friends of ours visited from Boston for a week. Partially because we hadn’t seen them for over 15 years, my wife and I went out to dinner more times that week than we had in the previous year total. Sort of a micro-vacation for me from MWIF.
May summary: Sequence of play bugs and PBEM took most of my time. But I did get a few hours in on video, sound, and music. Also, the Players Manual is rapidly reaching completion. Not much was done on NetPlay and the AIO though.
Here is an overview, from my perspective, of what remains to be done to release MWIF. I’ve grouped items by the amount of work required to complete them: small, medium, and large. At the end is a summary. Blue items are my lingering technical concerns.
I Tasks requiring a small number of hours (in total, 100 hours)
1. Historical video
Barry sent me sample WMV files which the program displays correctly. It took me 1 hour to get the video to work from within MWIF. Once he sends me the rest, I’ll activate them at different times in the sequence of play.
2. Sound effects
Jim sent me sample files but I am unable to process the OGG versions. Looking OGG up on the web, I’ve found source listings in C (C++?), but it would be difficult to incorporate them in as source code (i.e., mixing Pascal and C code). If I can reference them as object libraries (e.g., DDLs), that would be great. I need to figure out how to process OGG files from within the program as easily as I do the historical video WMV files.
So far I have assembled a list of music for individual countries (e.g., USSR, Germany, France, China, etc.) and I have other notes related to this topic. Once I have prettied up my notes, I’ll send it to Dave and he’ll assemble the necessary files. Insertion into the game should be the same as for the sound effects.
4. Unit writeups
These are ready to publish as is. I expect we will continue to receive new writeups and edits to existing ones, basically forever. They are a fantastic feature but ‘completing’ them has no effect on my workload or the game’s release date.
5. Players Manual
8 of 11 sections are done, and Mike has edited most of those. Of the 3 remaining, the Appendices and Section 6, Modes of Play, are 80% done. Section 8, Player Interface, requires more work because of missing screen shots (~70). Patrice has promised to provide those, but he can not take them for the 20 PBEM Standing Orders forms until I finish coding those forms. For the Players Manual, I have 320 completed pages (8.5 by 11 inches) and I expect it to top out under 400 pages.
6. Context sensitive help
Once Section 8 of the Players Manual is done, I’ll transfer each form’s description into a TXT file for display by MWIF as context sensitive help. There is a lot of that to do, but it’s a mindless task.
7. Auxiliary files
These are starter sets for new players so they can jump right into playing the game without having to perform a lot of preparatory decisions. The beta testers provide these and I have accumulated a bunch. I just need to round out my collection.
A handful of minor bugs have been reported concerning the graphics.
II Tasks requiring a medium number of hours (~80 hours each)
9. Optional Rules
I’ve moved some optional rules into the status of “post release”. Those are recent optional rules (they were not part of CWIF) and rarely used. Certainly they are not essential for game play. For the ones that I want to finish, I need to fix bugs and bring them up-to-date with rules changes since circa 2003.
I’ve done a lot of work on this during the past month, but more is needed. The technical task of sending and receiving emails from within the program hasn’t been coded, but on the plus side, my recent work has virtually eliminated the need to modify the sequence of play. Work on the standalone program to generate random numbers hasn’t begun. The large task here (3/4rds of the time) concerns the Standing Orders: defining and instantiating internal variables, then displaying them in the forms so players can review and revise them.
11. Player Interface
With the exception of the Standing Order forms for PBEM, I have finished the forms (~110). But there have been ~70 bugs reported related to the player interface. Not all of these are serious bugs and many of the ‘suggestions’ from the beta testers can be ignored with little or no effect on the game’s playability. Other items are easy to correct. But undoubtedly fixing some of these bugs will be essential for program performance and difficult to fault isolate and correct. Hence my rather generous allocation of time for this.
12. Tutorials and training video
The picture and text tutorials are done and Patrice has agreed to review them to make sure the screen shots they contain are up-to-date. I have written the scripts for the first two segments of the training video; there will be ~10 segments altogether. Next, I need to acquire the Camtasia software so I can start to learn how to use it. The interactive tutorials are basically the same as the training video (90% overlap).
III Tasks requiring a large number of hours
13. Sequence of Play (150 hours)
This has been a great time devourer on the project. There are 152 ‘phases’ split 60:40 between using special forms and the detailed map for decision making. Getting each form to work is its own little project. But even more difficult has been getting the keyboard and mouse responses correct during each of the 60 different ‘phases’ where the detailed map is used. That part of the player interface is heavily overburdened and its code is very complex.
My redesign, (and its implementation into code), of the control logic for transitioning from one phase to another is now fully functional. However, there are a slew of bugs related to the sequence of play (~180) with 3 major ones accounting for a third of those: naval movement interception, naval combat abort, and supply. Because of the high level of redundancy in these bug reports (i.e., multiple reports of the same bug), I estimate less than an hour per item reported.
14. NetPlay (100 hours)
There isn’t a lot to do directly related to NetPlay, but the underlying performance of the program in generating Game Record Log Entries has to be perfect. That’s because the GRLs are sent to each computer in a networked game to keep them up-to-date with the decisions of all players. I have over 530 types of GRLs defined, with their supporting code for encoding them prior to transmission and decoding them upon receipt. Regrettably, I haven’t gone through them rigorously to make sure each one executes at the proper point in the sequence of play. The technical task of sending and receiving messages between computers hasn’t been debugged. Additionally, I need to instantiate, with actual data, the form used to monitor internet communications while a game is in progress. But the vast majority of this task is getting the GRLs perfect.
15. AI Opponent (500 hours)
Despite all the work I have put into this, I still haven’t reached the point where the AIO makes an actual decision during game play. I have test scripts awaiting testing and logic embedded in the program to implement them, but I need to write the parser in order to link those two. I’ve partially written a small interface to monitor scripts while they execute. Also, I have the vast majority of the AIO decision making written out in plain text. Taking that plain text and rendering it into rules will require a lot of time. Which leaves the task of calibrating the rules’ performance so the AIO plays well (half of the estimated hours).
Small (100 hours) + Medium (240 hours) + Large (750 hours) = 1090 hours, or 110 days, or 4 months. Therefore, completion at the end of September.
Perfection is an elusive goal.