Shannon V. OKeets
Posts: 22095
Joined: 5/19/2005 From: Honolulu, Hawaii Status: offline
|
September 1, 2013 Status Report for Matrix Games’ MWIF Forum Note: I’ll be traveling to Philadelphia in the last week of September for the second annual followup at Wills Eye Hospital for the surgery on my left eye’s melanoma. Next month’s status report will most likely be a day or two late. Accomplishments of August 2013 Hardware and Software I purchased replacement headphones for completing the recording of the training videos. Lovely Hawaiian salt air had dissolved all the thin plastic elements in my old ones. Complementing that purchase, I upgraded my copy of the Camtasia software from version 5 to 8.1; Camtasia is for recording a video of an executing program with audio voice-over. The three open items for Theme Engine remain the same. Beta Testing In August I released 4 new versions to the beta testers: 11.00.01 (18 fixes), 11.00.02 (29 fixes), 11.00.03 (1 fix), and 11.00.04 (10 fixes). Release 11.00.03 fixed a fatal bug that was preventing the beta testers from testing new games. The numbers of new versions and fixes (58) are below my averages. That’s because of the time I spent on the final preparation of the printed material and redoing a couple of the training videos. The former are on the critical path for releasing the game. For the latter, I wanted to re-familiarize myself with the process, since I still have 3 training videos left to do, and the last time I did one was four years ago. I cleaned up a couple dozen odds and ends in the world of existing bugs, but spent the bulk of my debugging time on NetPlay. I now have all 8 air missions executing correctly in NetPlay. More on that below. Here is a summary of my Master Task List (MTL) as of September 1st. My task list count stands at 86, down from 95 at the start of the month. However, there are another 17 posts from the beta testers I haven’t checked into yet. Bugs can be corrected quickly (as per the 47 fixes for the first two new versions this month), or slowly, like the last 5 days I’ve spent working on the Naval Combat bug(s) in NetPlay. Grind, grind, grind. NetPlay [6] 1785, 1826, 2056, 2099, 2100, 2101 Sequence of Play [58] Supply [13]: 1070, 1982, 1988, 2061, 2064, 2078, 2083, 2086, 2088, 2089, 2106, 2128, 2130 DOW [1]: 2094 Air Missions [5]: 1611, 1890, 1925, 1996, 2117 Naval Movement [1]: 1990 Naval Combat [2]: 1724, 874 Land Movement [1]: 2118 Land Combat Declaration [1]: 1995 Use Oil [2]: 2042, 2091 Production Planning [21]: 1107, {847, 961, 1347}, 326, 1644, 1671, 1825, 1862, 1863, 1864, 1893, 1895, 1973, 2006, 2014, 2020, 2084, 2111, 2112, 2113, 2122, 2126 Search Seizure [1]: 409 Conquest [1]: 1047 Vichy [5]: 1803, 1811, 2017, 2028, 2063 Liberation [1]: 1919 Overstacked Digression [2]: 1931, 2074 Final Reorganization [1]: 1733 Non-sequence of Play [22] Detailed Map [7]: 1188, 142, 769,140, 1501, 1956, 2121 Player Interface [5]: 1901, 1920, 1922, 2048, 2077 Interactive Tutorial [1]: 2043 Game Save/Restore [6]: 695, 110, 118, 1778, 1907, 2123 Theme Engine [3]: {1050, 568}, {1513, 1467, 966, 1455, 1573, 1655}, 1928 Saved Games Done, except for the bugs listed above. Map, Units, and Scenarios As I get additional unit writeups I add them to the collection. Optional Rules Nothing new. Game Engine Other than fixing supply bugs, I have no remaining tasks related to this. Player Interface Done, except for the bugs listed above. Internet - NetPlay I spent at least half my time in August on NetPlay. Debugging the NetPlay code is some of the most difficult programming I've ever had to do. I need to keep two images of the code in my head with each computer at different points in the code, with different values for their internal variables. And then I need to envision the actions by the two players causing messages (Game Record Logs) to be sent between the computers which change the status of variables. Besides the normal stuff of timers to control the transmission, receipt, queuing, and processing of messages between computers, I also have the program running timers in some phases waiting for players to make open-ended decisions about what should happen next. Currently I have 582 GRL record definitions for all the different actions that can happen during a game. I finally got Port Attacks to work cleanly (a bug first reported in March), and I got air-to-air combat (first reported in February) finished as well. Port attacks have all the subphases of the other air missions as well as elements of naval combat (search numbers, excluding submarines, surprise points, and the naval combat results table). Air-to-air combat has 11 subphases with multiple rounds, and there can be multiple combats being resolved for any given air mission. Both of these have random assignments of which side makes decisions at various points in their processing. In NetPlay, having to disable one computer from taking any action while the other player decides what to do occurs a lot in the game. When it happens repeatedly while a complex form is visible on both computers, coding the process is extremely difficult. There are screenshots below showing the sequence of play for air-to-air combat and naval combat. Naval combat is another bug first reported in February. Naval combat has 28 subphases and like air-to-air combat, there can be multiple rounds and multiple combats being resolved. This has been driving me nuts for the past 5 days. At the end of this report are some screenshots from debugging naval combat, port attacks, and air-to-air combat. The last two are bug free at this point. In naval combat the program would get as far as the 10th subphase okay. When I put in debug messages to help me analyze the problems with going to the 11th subphase, the Axis computer would get stuck on the 3rd subphase. Because there are so many steps to recreate a problem, I thought I was doing something wrong with the mouse or keyboard on one of the two computers. Eventually I determined that it was merely the presence of the debug messages that was causing the program’s behavior to change. Tracking that down, I found that the timing loops would get out-of-sync if one computer took longer in responding to a debug message. Continuing backwards, I determined that the transition from subphase 0 to subphase 1 was where the real problem occurred. Fixing that, I was able to get the program to advance as far as the 6th subphase, where the Allied computer ran into trouble. As I write this I have gotten up to the 9th subphase (spending surprise points). I’m still trying to get back to the happy days earlier this week when my problems were in the 10th subphase. While I hacked away at fixing the NetPlay code [picture me with a machete in the hot, humid jungles of Burma while mosquitoes feast on my exposed body parts], the beta testers (mosquitoes?) posted about 1 new bug a day. Mercifully, the importance of those keeps getting less and less, as far as actually playing the game. Some are critical; but some are about cosmetic stuff or "Gee, it would great if ...", which I dutifully record but am unlikely to do anything about for the initial release. Most of the phases with long subphase sequences have been tested and debugged for NetPlay. The only one untested is the creation of Vichy France. I’ll have the beta testers start testing that next. PBEM Nothing new. Artificial Intelligence (AI) Nothing substantially new. Peter S. has been working on the strategic plans for Italy and I added a comment or three from time to time. Player’s Manual and Rules as Coded (RAC) These are at the printers. I’ll post some sample pages of the Players Manual to the World in Flames forum once I get permission to do so. By the way, the cover page for the Players Manual is my new desktop background. Tutorials and Training Videos I completed my review of the existing training videos, done in the summer of 2009 (four years ago). Of the 9 chapters that I completed that summer, 7 are still accurate: 2 Map basics (20 minutes, 27 seconds) 3 Unit basics (28:27) 4 Sequence of play (33:56) 5 Turns impulse, weather, and supply (25:28) 7 Starting and new game and setting up units (55:40) 8 Air movement and combat (23:43) 9 Land movement and combat (43:46) This month I re-recorded chapters 1 and 6 which were woefully out-of-date. Chapter 1 is an Introduction to the training videos covering the Opening screen, with an overview of: (1) the picture & text and interactive tutorials, (2) the scenarios, and (3) restoring a saved game. It also examines the first page of the first tutorial: (1) general layout of the picture & text tutorial pages, (2) converting the board game to the computer, and (3) the unified world map. The new version runs 9 minutes and 13 seconds. Chapter 6 covers the Main form, Information forms, Screen layouts, and Map views. My re-recording of this chapter increased the time from 46 minutes to 66 minutes, 5 seconds. The increase was primarily due to new material. From the Main form’s drop down menus two new forms are available: disabling phases by major powers and the supply sources and paths. Neither of those existed in 2009. Additional time was spent on the production planning form, which has been redesigned from top to bottom. It now provides a lot more information about resources, factories, convoy pipelines, and production/build points. Disabling phases lets a player turn off some phases for major powers. For example, China rarely wants to perform port attacks or naval air missions, given its few precious air units. Rather than have the program cycle through China for those phases, requiring the player to click on the end-of-phase button, the program skips the phases completely for China if the player has disabled those phases. The main use of disabling phases is for CAP (Combat Air Patrol) for the eight air mission phases. CAP is rarely performed. When the Axis player is the phasing side, that results in up to 40 mouse clicks by the Allied player to end the CAP subphase in just one impulse - very annoying. The supply sources and paths form didn’t exist in CWIF. I felt it was important to add this form for two reasons. First, new players can use this form to learn the supply rules. Seeing examples of all the supply sources for a major power and the paths that units trace to reach a primary supply source is the easiest way to understand how the system works. This also applies to all those board game players who have played the supply rules incorrectly for years (I know you’re out there). For experienced players, being able to find all the out-of-supply units for friendly and enemy major powers is nice. It’s also helpful to be able to see a report on opportunities for cutting enemy supply paths - and the vulnerabilities of your own. I still need to record chapters 10, 11, and 12. Chapter 10 Naval Review & Movement 10.1 Naval review 10.1.1 Units In Hex form 10.1.2 Flyouts form 10.1.3 Naval Review Details form 10.1.3.1 Plain display 10.1.3.2 Section display 10.1.3.3 Status display 10.1.3.4 Filters 10.1.3.5 Cycling through ports and sea areas 10.1.4 Double size global map 10.1.4.1 Sea area names 10.1.4.2 Working with the Units in Hex form 10.1.4.3 Working with the Flyouts form 10.1.4.4 Working with the Naval Review Details form 10.1.5 Naval Review Summary form 10.1.5.1 Filters 10.1.5.2 Working with the Naval Review Details form 10.1.5.3 Cycling through ports and sea areas 10.1.5.4 Saving and restoring displays 10.2 Selecting naval units for movement 10.2.1 Using the Select Units form 10.2.2 Using the Flyouts form 10.2.3 Using the Naval Review Details form 10.2.4 Using the Units In Hex form 10.3 Moving a group of naval units 10.3.1 To an adjacent sea area 10.3.2 To a distant sea area 10.3.3 Dropping off units: at sea & in port 10.3.4 Specifying a path of sea areas 10.4 Loading cargo 10.4.1 Starting in a port stacked with the cargo 10.4.2 Picking up cargo from a port when passing through 10.4.3 From a coastal hex upon arrival in a sea area 10.4.4 From a coastal hex prior to returning to port 10.5 Naval interception 10.5.1 Decision to try to intercept 10.5.2 Attempt to intercept 10.5.3 Decision to stop or fight through 10.5.4 Fighting through 10.5.5 Continuing movement after interception attempt and/or combat Chapter 11 Naval Combat 11.1 Naval combat occurrences 11.1.1 Phasing side chooses 11.1.2 Non-phasing side chooses 11.1.3 Naval interception combat 11.1.4 Naval air support 11.2 Naval surface combat 11.2.1 Surprise points 11.2.2 Including units 11.2.3 Naval combat results 11.2.4 Multiple rounds 11.3 Naval air combat 11.3.1 Use of temporary carrier air units 11.3.2 Use of optional carrier air units 11.3.3 Air-to-air combat 11.3.4 Anti-aircraft fire 11.3.5 Air attack on surface ships 11.4 Naval submarine combat 11.4.1 Choosing combat type 11.4.2 Anti-submarine warfare (ASW) attack 11.4.3 Submarine attack on surface ships 11.5 Naval abort queue Chapter 12 Production & Politics Specifics will be the same as the material covered in the interactive tutorials #19 and #20. Historical Video, Music, and Sound Effects Nothing new. Web Site Nothing new. Marketing Nothing new. Debugging NetPlay There are 5 screenshots below. The last two show the sequence of play for air-to-air combat and naval combat. In those the flags indicate which major power is deciding in which subphase/sub-subphase. Tracking back to the top of a column and reading to the left, identifies the parent phase/subphase et al. For example, the air-to-air combat shown is for Ground Support, in the land combat ‘group’, in the land ‘stage’ of the sequence of play. The other 3 screenshots are annotated debugging screenshots for naval combat, port attacks, and air-to-air combat (ground strike phase). Each of these has top and bottom panels, with the top for the GRLs sent and the bottom for GRLs received. The color of the screenshot indicates the viewing major power: blue for Commonwealth and grey for Germany. The horizontal red lines indicate when one side has completed sending a set of GRLs to the other side. The second number in each GRL is its “entry number”. These usually increment by one for each new GRL. The first screenshot has black numbers on a yellow background to identify the order in which they were sent. So the naval combat screenshot (in blue) starts with [1] the Commonwealth receiving two GRLS from the Axis (#27093 and #27094) when the Axis player terminates naval movement for Germany and Italy. The Allied computer is always MasterMWIF and sends most of the GRLs ending phases/subphases and for rolling the dice. Here [2] it sends a Phase Done GRL (PhDo #27095) to change the phase to Naval Combat A (phasing side). Having determined that naval combat is possible, it then sends another PhDo (#27096) to change the subphase to Choose Sea Area. The Axis player [3] decides to initiate combat in the North Sea and selects which unit to use to initiate that combat (#27097). The process continues with GRLs being sent and received by both computers. My annotations are mostly correct, but I was a little sloppy in places where perfect precision was irrelevant for debugging purposes. However, this degree of analysis is what is required to debug the NetPlay code. All of these screenshots are from the middle of August and I have since debugged the problems shown here. I should add that the code works correctly for the Solitaire and Head-to-head modes of play. It’s this jumping back and forth for who decides what when during NetPlay games that still has some flaws.
Attachment (1)
_____________________________
Steve Perfection is an elusive goal.
|