Shannon V. OKeets
Posts: 22095
Joined: 5/19/2005 From: Honolulu, Hawaii Status: offline
|
June 1, 2013 Status Report for Matrix Games’ MWIF Forum Accomplishments of May 2013 Hardware and Software The open items for Theme Engine remain: minimizing the game generates a Mad Except error, and so does trying to display detailed listings of file directories (i.e., the dates and stuff) when opening or saving a file. There is now a new one (it occurs sporadically when running under Windows XP) having to do with “rolling up a form”; rolling up a form minimizes the form to the size of the form’s top bar. Beta Testing In May I released 7 new versions to the beta testers: 10.03.04 (25 fixes - 5 made in May), 10.03.05 (2 fixes), 10.03.06 (9 fixes), 10.03.07 (20 fixes), 10.04.00 (13 fixes), 10.04.01 (12 fixes), and 10.04.02 (10 fixes). The number of new versions is back to my norm. But the fixes (71) are still well below my average (116). Debugging supply takes a lot of time. Another major time destroyer was fixing a couple of overwriting memory bugs. Overwriting memory is the nastiest bug there is. The program scribbles on its own code causing the code to execute in a bizarre manner. However, it isn’t immediately obvious that the program has done this. Instead, the program runs fine for a while until the problem manifests itself later in the program’s execution, causing code that previously had run perfectly (sometimes for years) to malfunction. So the programmer (me) spends days looking for a bug in the wrong place. Only after absolutely convincing myself that the code where the problem occurs is fine, do I consider the possibility of overwriting memory (OM) having occurred. Proving that OM is the problem takes time and the only real way to locate an OM bug is to do a binary search using what I call canary code. If the canary code fails, then OM has occurred. If the canary code still works, then the OM bug happens later. Typically it takes a lot of dead canaries before the problem can be fault isolated. Mercifully, once the bug is located, the necessary code modification usually requires changing only 1 or 2 lines of code. Prior to the two OM bugs in May, I only had one in the previous 8 years I‘ve been working on MWIF. Below is the summary of my Master Task List (MTL) as of June 1st. My task list count stands at 80, down from 84 at the start of the month. I am still more concerned about NetPlay than the other bugs. The latter dropped to 63 (from last month’s count of 72). I’m still spending too much time dealing with bugs caused by my rewrite of supply. The only solution is to keep hammering away at them one by one; right now there are 6 of the little suckers left. None of the other bugs in the sequence of play and non-sequence of play is of much concern to me. For instance, I fixed 10 of them in one day towards the end of May. What happened was that the beta testers had gotten my bug list count over 100, which annoyed me no end. So I spent a couple days knocking off a bunch of easy ones. NetPlay [17] 1589, {1594, 1859}, 1785, 1826, 1827, 1911, 1912, 1913, 1914, 1915, 1916, 1921, 1932, 1933, 1934, 1935, 1936 Sequence of Play [45] Supply [6]: 1070, 1947, 1956, 1960, 1966, 1969 Setup Phases [1]: {1900, 1944} Air Missions [3]: 1611, 1890, 1925 Naval Combat [11]: {874, 1531}, 1566, 1599, 1701, 1724, 1815, 1847, 1868, 1869, 1872, 1899 Reorganization [3]: 1855, 1856, 1896 Production Planning [13]: 1107, {847, 961, 1347}, 326, 1644, 1671, 1825, 1862, 1863, 1864, 1871, 1893, 1895, 1973 Search Seizure [1]: 409 Reform Units [1]: 1851 Vichy [2]: 1803, 1811 Liberation [2]: 891, 1919 Overstacked Digression [1]: 1931 Final Reorganization [1]: 1733 Non-sequence of Play [18] Detailed Map [5]: 1188, 142, 769,140, 1501 Player Interface [3]: 1901, 1920, 1922 Game Save/Restore [7]: 695, 517, 110, 118, 1778, 1907, 1924 Theme Engine [3]: {1050, 568}, {1513, 1467, 966, 1455, 1573, 1655}, 1928 Saved Games Done, except for 7 bugs. Map, Units, and Scenarios As I get additional unit writeups I add them to the collection. Optional Rules Nothing new. Game Engine There are ~80 places in the sequence of play where supply is recalculated. At this point I have deleted all the CWIF code concerning supply. For debugging purposes, I installed a temporary message bar to the bottom of the Main form to report the amount of time spent in each of the 23 steps for recalculating supply. In many situations it takes less than 10 milliseconds total. In most it takes less than 100. Even 1000 milliseconds is acceptable when major changes have occurred. For example, when the weather changes for the worst and numerous units are now OOS (out-of-supply). Simple moves in friendly territory are very fast, since supply only needs to be recalculated for the moving unit. Rail moves, air units returning to base, and most land moves are in this category. Moves into and out of the front line sometimes cause changes in supply because of enemy ZOCs. Moving HQs always has more effects on supply, since the units that the HQ had been supplying now need to find a new source of supply, even if it is just the same HQ in a different hex. Changing control of a hex, by having a land unit move through enemy territory, or when a minor country joins the war, usually affects just half the units on each side. The side gaining control of new hexes might have previously OOS units now in-supply. The side losing control of hexes might have some of its previously in-supply units OOS. The program logic therefore does not reassess supply for all the units on the map, just those whose supply might have changed. Similar logic applies when units move into and out of sea areas. One side might have previously OOS units now capable of finding supply, while the other side has previously in-supply units now OOS. From the short discussion on supply above, I think it should be obvious why a lot of code is involved. I have ~20 flags that get set as units move into and out of hexes/sea areas. Then once the units have reached their destination (which may be off-map), I run the 23 step routine to recalculate supply, which executes different steps depending on which flags have been set. The payoff for all this effort is that supply updates quickly and dynamically as units are moved onto, around, and off the map. Player Interface This is done except for 5 bugs related to maintaining the beauty of the Detailed Map and 3 found by the new beta testers concerning different monitor configurations. Internet - NetPlay I did virtually no work on this in May - very aggravating. I fixed a few tangential items, but none of the serious stuff. It is pointless to work on NetPlay if the game has serious bugs in the sequence of play when running in solitaire mode. PBEM Nothing new. Artificial Intelligence (AI) Nothing new. Player’s Manual and Rules as Coded (RAC) All printed materials are in Final Layout. I’ve seen PDFs of both RAC and the Players Manual, but both of them lack graphics. That’s not too bad for RAC, which only has 20 or so figures. But the Players Manual has 270+ figures, so without them the PDF is really difficult to proof read. The attached graphic is a collage of some of the screenshots in the Players Manual section 7, which describes the sequence of play. Tutorials and Training Videos The Tutorials are done. Nothing new on completing the training videos. Historical Video, Music, and Sound Effects Nothing new. Web Site Nothing new. Marketing Nothing new.
Attachment (1)
_____________________________
Steve Perfection is an elusive goal.
|