Shannon V. OKeets
Posts: 22095
Joined: 5/19/2005 From: Honolulu, Hawaii Status: offline
|
August 1, 2008 Status Report for Matrix Games’ MWIF Forum Accomplishments of July Project Management There is no way I will be able to finish this by November 1st, which is what is needed to meet the scheduled December 2008 release date for MWIF product 1. There are too many bugs being found by the beta testers and the work on NetPlay has yet to reach the testing stage. Until I get a chance to talk with David Heath and Erik Rutkins, I do not know what the new scheduled release date will be. Communications I monitored all the threads in the MWIF World in Flames forum daily and uploaded versions 9.03, 9.04, 9.05, 9.06, and 10.00 to the beta testers. Patrice sent me another pass on buffing and polishing the rules from Harry Rowland and I decided that as of July 4th, 2008 there would be no more changes to the Rules as Coded (RAC) document. Rob Armstrong finished the last of the graphics for MWIF. Dan and I remain in weekly communication, but very little progress has been made on NetPlay. Peter Skoglund continues to help with developing scripts for the AI Opponent. Robert Nebel continues to make progress on the Test Scripts, incorporating work from Jimm into the master spreadsheet. Jesper Pehrson sent me his latest and greatest master file for the land unit writeups, which are 70% complete. Andy Johnson agreed to take over coordination of the naval units writeups, lessening my workload, Michael Andersen (beta tester) has taken on the task of assembling the ~70 default scrap lists so new players can use a well thought out default list for each major power for each scenario. He has done 6 of the 11 scenarios so far. No information from Matrix about getting a price on a printed copy of the map. No communications with Chris Marinacci. Hardware and Software Development Tools I have not installed ThemeEngine July/2007. At the present I have some slight concern about Vista and this upgrade might correct the bugs that have been found when running the program under Vista (native mode). However, I am unconvinced that this will be a silver bullet that makes all those difficulties go away. Given that the game runs well on Vista machines using XP emulation, there seems to be no driving reason to make it work under Vista ‘native’ mode. Beta Testing I uploaded versions 9.03, 9.04, 9.05, 9.06, and 10.00 to the beta testers this month. This works out to a new version every 6 days, which is a pace I would like to maintain. Because I make changes daily, there is always a risk that the version being used by the beta testers is so different from the one I am using that I can’t interpret the call stack in the bug reports (generated automatically by MadExcept). Additionally, the beta testers keep reporting things I have already fixed if I do not give them frequent updates. Version 9.03 had my first attempt at displaying the sequence of play during a game. This is fairly well developed by version 10.00, although there are still some holes, which reflects the fact I haven’t converted all the CWIF code for advancing the sequence of play to support NetPlay. But hey, it is really neat to be able to pop up the sequence of play diagram and see where you currently are. I used the flag icons to denote which major power is the active decision maker at the current point in the sequence of play. Version 10.00 included map data changes which obsoleted my accumulated library of over 50 saved games. It is going to take some time, with a lot of help from the beta testers, to rebuild my library of saved games for testing different game situations. Nonetheless, the switch to a new ‘release’ number (from 9 to 10) was needed for other reasons as well. Small changes had accumulated such that some of the saved games, though usable, had embedded data values that were wrong, even though I had fixed the master files. Like all new releases, 10.00 give us all a fresh start. The beta testers have each signed up for a set of test scripts, as prepared by Robert and Jimm. There are 22 test sets and the first 19 have been assigned at this point. For example, one set covers land combat, another naval combat, and so on. The intent here is to rigorously test the program against the test scripts, which were created by Robert and Jimm using the Rules as Coded document. I use RAC as my design specifications for the program. Units, Map, and Scenarios Only a few small items arose in July related to these fundamentally data driven aspects of the game. A couple of the names for militia units didn’t perfectly match the names of the cities where they were to be placed - producing program crashes. I did some idle calculations and the 3 files of unit writeups: air, land, and naval, currently total 3.25 MBs. Using 8 bytes per word that comes out to 400,000 words of text. There is a lot more to come, so it will undoubtedly exceed 500,000 words of historical writeups! I posted current screen shots of all of the USSR - 18 screen shots - and a couple of weeks later posted another series covering southern Asia from the Middle East to Southeast Asia and China. Based on feedback from the forum members, Patrice improve the borders of, and terrain in, Iraq. Wosung, Patrice, and others revised the starting front lines in China, and China also got the addition of a couple of roads that simulate the extensive use of rivers for supply in China during the war. I added Yugoslavia and Bulgaria as legal countries in the Barbarossa scenario, so Germany can rail move through those countries (e.g., from Berlin to Bucharest). I’ve had to refine the restrictions on setup to finely distinguish between the Dutch not being allowed to set up in Ceylon, while the Germans are allowed to set up in Libya. Getting the setup restrictions for all 11 scenarios, the 8 - 10 major powers, and the 250+ countries has been a royal pain to code. Optional Rules I removed Unrestricted Setup from the list of optional rules. It conflicted with at least a dozen other standard rules in the game and working out how to arbitrate between them was quite complex. Since the ‘benefit’ of this optional rule is dubious, and since it was not part of WIF FE, I removed it with a clear conscience. Not to fear, there are still 80 other optional rules remaining. Player Interface I completely revised the Resources - Production form, making it easier to read, more flexible, more informative, and even prettier. Unfortunately, I will have to come back and work on it again in the future, once I have designed how to enable the player to communicate how he wants his resources to flow to factories. The system used by CWIF was for the player to specify which sea areas/hexes the transportation route was to ‘avoid’, with the program ‘automatically’ figuring things out from there. Many CWIF players complained that in practice this was unwieldy to use. I did a massive overhaul of the Declaration of War forms: on major powers and minor countries. The CWIF code provided almost no feedback to the player about what happened when the player clicked on various buttons on those forms. Instead, CWIF simply went ahead and did stuff internally. I’ve inserted a confirmation check to make sure the player knows he is about to declare war on a country and I added a list of DOWs that have occurred during the current phase. This enables the players on the same side to know what their allies are doing. I also spiffed up these forms a bit. I finished my revisions to the Main form, the Units in Hex form, the Setup Tray, and the Flyouts. In aggregate these now require less screen space, leaving more of the detailed map visible. The Flyouts are evolving to be the primary way of moving land units, because they let you see all the units in a hex/stack and pick up one or more of them for movement. I have yet to add the code for the last task (picking up units from the Flyout form) but I expect to get that working tomorrow. The key to these changes was making a Universal Unit Data Panel which appears in the Main form. Previously, both the Units in Hex form and the Setup Tray had a unit data panel, which takes up a lot of room. In combination with the Flyouts now showing the status indicators for each unit, the Universal Unit Data Panel let’s the player see virtually all the information provided by the Units in Hex panel. I am not sure that all the functionality of the Units in Hex panel has been subsumed, so for now I am leaving it as an alternative way for players to manipulate individual units in a stack, if they so desire. Be that as it may, I expect players will use the Flyouts instead, because it is faster to use and makes more of the map visible. Internet - NetPlay Dan has provided me with a complete task list for his finishing the technical code for NetPlay communications, along with his current status on each item. I expect to receive some actual code from him this coming week so I can connect my two computers in a LAN and see how it functions. CWIF Conversion The rewrite of the Resource - Production form converted the last large form from CWIF style to Theme Engine style. Yet to do are two small forms, Bidding for Major Powers and Saving Oil Points, which I’ll do when I work on those aspects of the game in detail. The code to recalculate supply for units remains incomplete. The bugs in the current (CWIF) supply routines are beginning to drive me nuts. It is getting in the way of testing movement and combat in a lot of places. That is, out-of-supply air units can not fly missions and out-of-supply land units can not attack. If at all possible, I’ll finish this in the first half of August. MWIF Game Engine I finished the conversion of the code for the Ground Support phase to support NetPlay. The eighth and last air mission left to convert is Air Resupply, which is now in my cross hairs. I would love to draw a line through the task “Convert all 8 air missions for NetPlay”. One of the beta testers reported air rebasing as working correctly, but that needs a more thorough pounding before I stop worrying about it. My ultimate goal for the MWIF game engine is to have 53 modules, one for each ‘phase’ of the game. I have 15 of these done now, which includes almost all the difficult ones. The ‘biggies’ that are left to do are naval combat, land combat, and production. Until I complete these conversions, the code for the sequence of play has excessive anomalies when the deciding player changes. I need this code to be crystal clear for NetPlay, PBEM, and the AIO. For instance, Germany declares a land attack, Italy flies bombers in support, the USSR fires anti-aircraft guns at the bombers; meanwhile the US is conducting an invasion with carrier air support in the Pacific and the Japanese are flying air units from carriers in adjacent sea areas as interceptors and some land based bombers as ground support. The player who next gets to make a decision changes frequently, is very dynamic, and can be just about any one of the players. For the programming, the requirements are to support all possible combinations of players (2 - 6), during all phases, subphases, and sub-subphases in the sequence of play. Getting this right, so the right person gets to make the decision and all the other players are informed of what his decision was, requires extraordinary code. And I do not use the word lightly. Saved Games I keep this functioning at all times. It remained stable in July; and I knock on wood every time I even think about it (“knock, knock”). Player’s Manual Nothing was scheduled for this in July - and that was done perfectly. PBEM I gave some thought to how the modifications to the sequence of play to support PBEM will occur in the code. It should be fairly easy to do. I’ve already made changes to generate Game Record Log entries for numerous decisions (e.g., all the decisions involving air missions). By simply having the program, operating as a quasi AI Assistant, generate the Game Record Log (GRL) entries, these decisions can be implemented with zero additional changes. What is needed is a small player interface for players to define their “Standing Orders”. Mostly these are the rules that the AI Assistant (AIA) is to use to decide what, if any, GRL entries should be made. Serendipitously, the Language for the AI Opponent (LAIO) that Peter and I have been developing will work perfectly as a format for the internal storage of the Standing Orders. To summarize, the player will use a small player interface to define what actions he wants the computer to make on his behalf, subject to certain on-map conditions occurring. The program will store these in LAIO format and execute them when the opposing player is the phasing player. For example, France enters Standing Orders (SOs) for when it wants it fighters to intercept Germany’s air missions. France’s SOs are applied by the AIA during the German player’s air mission phases. This way the German player can fly his air missions through to completion without having to wait for the French player to respond to separate emails for each subphase decision: one email per air mission phase instead of 8. Historical Detail, Animations, and Sound Nothing new, rescheduled for the winter. Help System and Tutorials Matrix Games converted to a new system for their web site and moved it from New Jersey to Colorado. I have noticed a vast improvement in upload times. Previously a new release uploaded to their FTP site at the rate of 1 minute per megabyte. But yesterday I uploaded a 180 MB file in 32 minutes. Very nice. I want to see if we can place the PowerPoint presentations of the 10 tutorials on the website for download by any one who is interested. This is not a high priority item for me, but I’ll see if I can get it to happen in August. AI Opponent Peter Skoglund and I have pretty much finished up the data set for how to set up the Finnish units if the USSR declares war on them before the USSR is at war with Germany. I want to review it one last time and then I’ll post it for comments in the forum. Perhaps I can induce some others to work with Peter to do similar scripts for the other minor countries. In the end, I want a script for every minor country in the game - that includes you Mexico! Other The hospital next door has placed all the steel I-beams for the roof structure and is accumulating aluminum panels now, that I assume will rest on top of the I-beams and form the roof bed. My quartet had nothing but hard times in July. Our lead was in California 3 weeks ago, Molokai 2 weeks ago, and in Guam and Singapore this past week. Then 2 days ago our baritone did severe damage to his ankle; it’s not broken, but badly sprained and sporting a very impressive new black and blue color scheme. All in all we met once for 2 hours of rehearsal in July. Sad, very sad. ==================================================================== July summary: I was able to get a new version of the program to the beta testers weekly and to keep up with the onslaught of bug reports they sent. Another plus was that I made good progress on some major player interface elements. But NetPlay is far from being ready for the beta testers to work on and I did not find sufficient time to convert more phases of the game to support NetPlay. The latter will be essential once the technical aspects of computer to computer communications are ready for testing. ==================================================================== Tasks for August Communications Continue monitoring the forum threads. Map and Units Make any corrections to the map on the 20th. Beta Testing Upload versions weekly. [est. 2 hours] Redesign of MWIF Game Engine Work through the sequence of play giving each phase its own module. [est. 165 hours] CWIF Conversion Convert CWIF style internet formats to Game Record Log Formats. [est. 30 hours] Test the new random number generator. [est. 5 hours in November] Player Interface Finish the code for determining and displaying supply lines. [est. 10 hours] Fix bugs with player interface. [est. 20 hours] Complete the Task Forces forms. Implement Task Forces as a new “unit type”. [est. 30 hours in September] Create unit lists and hex lists for air missions. [est 20 hours] Optional Rules Review, comment, modify, and create code for optional rules [est. 20 hours] NetPlay Implement the bidding capability using NetPlay. [est. 10 hours] Incorporate the Indy10 code for the two player system into MWIF. [est. 20 hours in September] Incorporate the multi-player (more than 2) system into MWIF. [est. 10 hours in September] AI Opponent Define LAIO variables with their supporting functions. Write a parser for LAIO. Create a few more rules as text and encode them for testing the parser. [est. 30 hours] Help System and Tutorials Nothing scheduled until December. Player’s Manual Nothing scheduled until November. Historical Detail, Animations, and Sound Nothing scheduled until December. Other Things remain slow outside of working on MWIF. I am trying to get my quartet to agree to meet two nights a week so we can work on 4 songs for the Pan Pacific Convention competition October 30th. ================================================================ August summary: Keep the beta testers busy and respond to their bug reports. Continue work on Game Record Log conversions to support NetPlay for entire sequence of play. Make some progress on the optional rules. In other words, the exact same thing as last month. ================================================================
_____________________________
Steve Perfection is an elusive goal.
|