AGElint RUS 1.04 QA/bug check

Post new mods and scenarios here.
Post Reply
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

AGElint RUS 1.04 QA/bug check

Post by berto »

[ ... shaking the dust off my feet as I depart from AGEOD ... ]
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
gamer78
Posts: 640
Joined: Wed Aug 17, 2011 5:33 am

RE: AGElint RUS 1.04 QA/bug check

Post by gamer78 »

Why did you delete your post in here and Ageod forum ? Maybe players need it.
It would be pity that game wont reach full enjoyable potential with inelaborated work in database and lack of attention. [:(]
I think Clovis fixed some database errors(With notepad maybe ? ) but maybe still there is some truly inspection needed in database. It would be pity some events not firing or bugs occur related to grammar errors in the coding language.
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

I did not delete my posts at the AGEOD Forum. The AGEOD Powers That Be decided to take the "discussion" private, to the beta forum. Thereby depriving you, the players, access to the knowledge, and the power -- to remake the game to your liking. It's back to spoonfeeding the players fixes and stuff in dribs and drabs. You will just have to wait ... it seems.

I have fundamental differences with AGEOD about AGElint, the uses of the toolkit, about the nature of bugs, software QA, about my loyalties. For me, they are: to myself and the players. There is no bridging the many gaps between AGEOD and me I am convinced.

I now have the options:
  • Post my toolkit -- for the players to use, never mind the devs -- at the AGEOD Mod Forum. But it is AGEOD's forum, their megaphone, and they can yank it from my hands whenever they please. In essence, if AGEOD is unsupportive of, even opposed to, my aim -- which is to empower the players with the knowledge and the tools to fix the games themselves -- I think no good can come from my directly or indirectly associating with AGEOD in any way. They can censor me, and censure me (ban me), any time they wish. Note: It is not my intention to slander AGEOD, and nobody should conclude that I am, or think I am, totally right and they are totally wrong. I don't think that way. And what I do think, and what I could say (I could say much!), I mostly keep to myself.
  • I can set up shop here. But after perhaps an initial burst of enthusiasm, I don't see it lasting. Players -- old, new, and in between -- will naturally gravitate towards AGEOD. And who are they, the great mass of players, going to believe? A band of renegades at another company's forum? (Matrix can always pull the plug here, too.) Or AGEOD? I think likely the latter.
  • I can set up a blog somewhere, or even host my own website. (I already do that. See my sig.) To provide debugging and other game play tools and add-ons for AGEOD games, but also other company's games. Magna Mundi comes to mind. Given its birth as a mod, Magna Mundi The Game promises to have unmatched modding capabilities. And total support for modding and "Have It Your Way" from the devs. It's in their genes. (I was a member of the Magna Mundi mod team, putting in over 1,000 hours of effort helping to code and QA that mod 2008-2009. I was the mod's "Sorcerer", so named because of my arcane Linux/coding magic. When Magna Mundi the Mod rolled over to become Magna Mundi the Game, I was initially the QA Team Lead there for that project's first couple of months. Differences of opinion had me leave them also. But that's quite a different story.)
  • Continue to develop AGElint, and debug AGEOD's games, for my own private amusement.
  • Turn back to several very appealing alternatives -- War in the Pacific: Admiral's Edition (out of the box, perhaps the greatest game ever, but quite overwhelming!); or the HPS/JTS American Civil War series of games; or the older still John Tiller Battleground Series of games -- or look forward to Magna Mundi, "the game to rule them all."
  • Leave the hobby altogether. "Go read a history book."
I have to decide in the days and weeks ahead what I'm a gonna do. But there will be no further direct association with AGEOD, that's for sure. [:(]
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

This is an amended posting of the AGElint RUS 1.04 QA/bug check report I posted at the AGEOD Forum.

I must stress: These results are imperfect, but they are much better than nothing. Agelint is a work in progress, and improves over time. More layers of bug checking can be added, and its capabilities are far from exhausted. These results merely reflect the current state of AGElint. I make my share of mistakes, but except for honest differences of opinion, I correct my goofs!

In the spirit of sharing knowledge, and empowering the players, I repost this.

--------

Please see posted

here

the file agelint_rus_1034_20111020.zip, which is the AGElint QA/bug check for RUS 1.04.


What is AGElint? Akin to the well-known C programming language utility lint ("Lint: A Unix C language processor which carries out more thorough checks on the code than is usual with C compilers. Lint is named after the bits of fluff it supposedly picks from programs." See http://en.wikipedia.org/wiki/Lint_%28software%29.). Similarly, AGElint is a toolkit of programs designed to discover and report bugs, problems, glitches, anomalies in the AGEOD game data files.

I will be releasing the AGElint source code, and unveiling other related project work, in the weeks and months ahead. AGElint will be a community-effort, quasi Open Source kind of software project. More about AGElint at a later date...

(NOTE: AGElint does not debug the AGE executables, rather just the data files.

Also please note: AGElint deals directly with the game data text files, and only peripherally with the AGEOD source .xls/DB files. So AGElint works outside "the system". It might be said that if you muck with the game data text files, you are on your own and should expect no official support from AGEOD. Might be so.

You might be advised also to just wait ... and wait ... for the next patch, beta or official. But for how long? AGEOD is swamped with work lately; and as always -- but exacerbated by recent developments -- is more than usually undermanned. Projects, and support, languish. Patches get bottlenecked. Bug fixes pile up in The Queue. There are some very good reasons for all of this, and we should all cut AGEOD lots of slack.

But in the meantime, we want to play our games, right? We want our fun, and we want it now!

AGElint, and the AGElint QA/bug check reports, give us something to do while we wait. Or we roll up our sleeves, dig deep, and begin fixing the games to our better satisfaction sooner rather than later. Knowledge is power, and AGElint is all about empowerment -- the players' empowerment.

But enough of the preamble. On to the meat and potatoes...)

Reports included in the agelint_rus_104_20111020.zip file:

chklint_rus_104_20111020_error_rpt.txt
chklint_rus_104_20111020_warning_rpt.txt
chkaliases_rus_104_20111020_lst.txt
chkaliases_rus_104_20111020_pat.txt
chkaliases_rus_104_20111020_rpt.txt
chkaliases_rus_104_20111020_sorted_rpt.txt
chklocals_rus_104_20111020_lst.txt
chklocals_rus_104_20111020_rpt.txt
chklocals_rus_104_20111020_sorted_rpt.txt
chkimages_rus_104_20111020_lst.txt
chkimages_rus_104_20111020_rpt.txt
chkimages_rus_104_20111020_sorted_rpt.txt
chkfiles_rus_104_20111020_lst.txt
chkfiles_rus_104_20111020_rpt.txt
chkfiles_rus_104_20111020_sorted_rpt.txt

The chklint_rus_104_20111020_error_rpt.txt file has content like so:
[...]

Events/CaucasusSetup.sct, Thu Dec 30 2010 10:39:56

Events/FinlandSetup.sct, Tue Jun 28 2011 17:24:38

Events/GRNAI.sct, Mon Nov 8 2010 13:51:40

ERROR: in Events/GRNAI.sct, at (or before) line 102: syntax error: #A# (0x41), #Aera#

in event evt_nam_AI_GRNzoneKuban:

93
94 SelectFaction = $GRN
95 StartEvent = evt_nam_AI_GRNzoneKuban|1|0|NULL|NULL|NULL|NULL
96
97 Conditions
98
99 CheckAILevel = 1
100 MinDate = 1917/11/01
101 MaxDate = 1923/01/01
102> SelectSubUnits = Aera $Area_Kuban;FactionTags $GRN;Domains $Land
103 EvalSubUnitCount = >=;1
104
105 Actions
106 AI.SetLocalInterest = $Kurganinsk;200;$Eysk;200;$Akhtarsk;200;$Kanevskaya;200;$Temriuk;200;$Korenovsk;200;$Romanovski Khoutor;200;$Taman;200;$Novorossiysk;200;$Gelendzhik;200;$Ekaterinodar;200;$Krymsk;200;$Goriachiy Klyuch;200;$Maikop;200;$Solnechnodolsk;200;$Nevynominsk;200;$Essentuki;200;$Tuapse;200;$Mostovskoy;200;$Batalpachinskaya;200;$Teberda;200;$Sochi;200;$Elbrus Mountain;200;$Tikhoretskaya;200;$Armavir;200;
107
108 EndEvent
109
110 SelectFaction = $GRN
111 StartEvent = evt_nam_AI_GRNKubanend|1|0|NULL|NULL|NULL|NULL

http://www.ageod.net/agewiki/SelectSubUnits

Syntax: SelectSubUnits = Region <RgnUID>;Area <AreaUID>;Families <Fam1> <Fam2> ...;Models <Mdl1> <Mdl2> ... ;FactionTags <Tag1> <Tag2> ... ;Domains <_domLand> <_domNav> <_domAir>;<Attributes>;Generations <ModelGen1> <ModelGen2> ...

[...]

A list of all checked files, with date/time stamps (so you know precisely the data file you are dealing with). And if a problem is found, an ERROR (or WARNING or NOTICE) stanza of the problem, including:
  • an ERROR (or WARNING or NOTICE) statement, summarizing the problem
  • the affected event, if occurring within an event
  • the error line, marked with a >, surrounded by x lines of context (in these reports, 9 lines before and after)
  • a URL to the AGEOD Wiki page for the indicated command, if there is one
  • a short syntax summary (not available in all cases)
NOTE where it says "at (or before) line ..." For technical reasons, the AGElint software can't always determine precisely the error location. If you don't see the problem in the indicated line, be sure to check the previous line (and in a few rare cases, even before that)!

Here is another interesting chklint example:
ERROR: in Events/GRNAI.sct, at (or before) line 1031: missing field (duplicate ;;)

in event evt_nam_AI_GRNzoneTaurida:

1022 Conditions
1023
1024 CheckAILevel = 1
1025 MinDate = 1917/11/01
1026 MaxDate = 1923/01/01
1027 SelectSubUnits = Aera $Area_Taurida;FactionTags $GRN;Domains $Land
1028 EvalSubUnitCount = >=;1
1029
1030 Actions
1031> AI.SetLocalInterest = $Berdjiansk;200;$Vasylivka;200;$Melitopol;200;$Kakhovka;200;$Akimovka;200;$Perekop;200;$Klyutchevoie;200;$Skadovsk;200;$Dzhankoi;200;$Eupatoria;200;$Simferopol;200;$Zuya;200;$Sevastopol;200;$Feodosia;200;$Kertch;200;$Dnieper Estuary;200;$Dnieper;200;;200;$Kamenskaya;200;$Novocherkassk;200;$Rovenki;200;$Rostov;200;$Taganrog;200;
1032
1033 EndEvent
1034
1035 SelectFaction = $GRN
1036 StartEvent = evt_nam_AI_GRNTauridaend|1|0|NULL|NULL|NULL|NULL
1037
1038 Conditions
1039
1040 CheckAILevel = 1

http://www.ageod.net/agewiki/AI.SetLocalInterest

Syntax: AI.SetLocalInterest = RegionUID1;Coeff1;RegionUID2;Coeff2 ..

Do you see the problem? Do you see the ';200;;200;', where a region UID is missing between the dual 200s? Sometimes looking for the problem can be like looking for a needle in a haystack. Where's Waldo?

WARNINGs, in the chklint_rus_104_20111020_warning_rpt.txt file, are similar:
WARNING: in Events/RUS Drang Misc Events.sct, at (or before) line 123: suspicious, undocumented usage of Theater

in event evt_nam_GER_FullWar:

114 SelectRegion = $Eastern Turkey
115
116 SelectRegion = $Eastern Turkey
117 SelectRegion = $Eastern Turkey
118 BlockState = 0
119
120 SelectRegion = $Anatolia
121 SelectRegion = $Anatolia
122 BlockState = 0
123> SelectSubUnits = Theater $EventArea_Caucasus;FactionTags TUR;OnlyNPermFixed
124 AlterCuSubUnit = AlterCuSubUnit;ApplyToList;SetFixing 0
125 SelectSubUnits = Arear $Area_Central_Powers;FactionTags TUR;OnlyNPermFixed
126 AlterCuSubUnit = AlterCuSubUnit;ApplyToList;SetFixing 0
127
128 SelectFaction = $GER
129 ChangeFacMorale = 5
130
131 SelectFaction = $RED
132 ChangeFacMorale = 1

http://www.ageod.net/agewiki/SelectSubUnits

Syntax: SelectSubUnits = Region <RgnUID>;Area <AreaUID>;Families <Fam1> <Fam2> ...;Models <Mdl1> <Mdl2> ... ;FactionTags <Tag1> <Tag2> ... ;Domains <_domLand> <_domNav> <_domAir>;<Attributes>;Generations <ModelGen1> <ModelGen2> ...

But unlike the error report, where the ERRORs are usually "syntax error ...", the WARNINGs are usually more explicit. No guesswork!

In the chklint WARNING report, the problems are:
[root@telemann agelint]# egrep "^WARNING" chklint_rus_104_TEST_warning_rpt.txt | awk -F: '{print $NF}' | sort | uniq -c | sort -n
1 MinDate 1922/12/01 same as MaxDate 1922/12/01
1 needless leading |
1 suspicious, undocumented usage of a number instead of sound ID
6 no Actions section
6 suspicious, undocumented usage of Theater
11 suspicious, undocumented usage of $gmaMCEvent as GameActorUID
12 no Conditions section
13 missing field (duplicate ||)
77 suspicious, undocumented usage of ; as field separator
383 suspicious, undocumented usage of Line in StartEvent

That is, there are for example 383 instances of the "problem" "suspicious, undocumented usage of Line in StartEvent" in all of the checked data files.

NOTE: I make no claim about the significance or insignificance of any reported bug, problem, glitch, or anomaly. Whether or not it impacts game play, or goes entirely unnoticed. It's up for you to decide, and for us to determine. (If over time we agree that something is not worth reporting, or is not in fact any kind of problem, I will omit it from the reports.) But I think we can all agree that misspelling "Area" as "Aera" in a SelectSubUnits statement most likely signifies something important, and very possibly breaks the affected event.

(ALSO: I too make mistakes! Where I am wrong, I will fix it. Where there is a difference of opinion, or a difference in priorities, I may or may not make changes -- to the AGElint toolkit. Soon to be released. So you can use it, and if you can fix it, to suit your personal tastes.)

Here are the reported ERRORs, with instance counts, in the chklint error report:
[root@telemann agelint]# egrep "^ERROR" chklint_rus_104_TEST_error_rpt.txt | awk -F: '{print $NF}' | sort | uniq -c | sort -n
...
1 #4# (0x34), #4#
1 #5# (0x35), #50 #PoliticalUnit##
1 #C# (0x43), #ChgRgnDecisionFP#
1 #D# (0x44), #DescEvent#
1 #E# (0x45), #EnemyEnemy#
1 #e# (0x65), #evt_desc_RED_IvanovoTankFactoryCaptured#
1 #K# (0x4b), #Klyuch#
1 #M# (0x4d), #MindDate#
1 #O# (0x4f), #Orel#
1 #R# (0x52), #REDLET#
1 #R# (0x52), #Reg#
1 #r# (0x72), #rd#
1 #s# (0x73), #symbol_general_2.png#
1 #T# (0x54), #TurnIndex#
2 #
2 #$# (0x24), #$Kiev#
2 #$# (0x24), #$Moscow#
2 #$# (0x24), #$POL#
2 #$# (0x24), #$Yurgamisk#
2 #1# (0x31), #1923#
2 #A# (0x41), #AlterCuSubUnit#
2 #A# (0x41), #Arear#
2 #E# (0x45), #Elets#
2 #E# (0x45), #Erroneous#
2 #F# (0x46), #FixedDate#
2 #N# (0x4e), #NULL#
2 #P# (0x50), #Probability#
3 #$# (0x24), #$evt_nam_RED_PartialMobilization_AIActivate#
3 #-# (0x2d), #-8#
3 #_# (0x5f), #_#
3 bad uid reference (duplicate $$)
3 #C# (0x43), #COccurs#
3 #S# (0x53), #SetEvtOccurs#
4 #$# (0x24), #$Austria#
4 #$# (0x24), #$Bavaria#
4 #$# (0x24), #$Bohemia#
4 #$# (0x24), #$Germany#
4 #$# (0x24), #$Hungary#
4 #$# (0x24), #$Kiel#
4 #$# (0x24), #$Silesia#
4 #$# (0x24), #$WHI#
4 #A# (0x41), #AI.SetLocalInterest#
4 mistaken #
4 #P# (0x50), #PoliticalUnit##
4 #S# (0x53), #Shakhty#
5 #$# (0x24), #$Helsinki#
5 #$# (0x24), #$mdl_GER_Art4#
5 #E# (0x45), #EndEvent#
6 #C# (0x43), #ChgVPCount#
7 #.# (0x2e), #.#
7 #1# (0x31), #1#
8 #D# (0x44), #DICE#
9 mistaken trailing $
10 #=# (0x3d), #=#
10 missing Coeff in AI.SetLocalInterest
10 missing RegionUID in AI.SetLocalInterest
10 mistaken leading ;
11 #$# (0x24), #$Maikop#
11 #;# (0x3b), #;#
17 #C# (0x43), #CurOccurs#
92 missing field (duplicate ;;)
110 #A# (0x41), #Aera#

As you can see, there are 110 instances of the "Aera" misspelling. And perhaps 110 events significantly undermined by a simple spelling mistake.

There is one other report, the chklint warning report, that I have omitted from this collection. Its problem summary:
[root@berto agelint]# egrep "^NOTICE" chklint_rus_104_20111020_notice_rpt.txt | awk -F: '{print $NF}' | sort | uniq -c | sort -n
7008 needless trailing ;
85780 needless trailing |

85780 "needless trailing |" -- that's a lot of "problems"!

In the chklint NOTICE report, I have isolated the less important (perhaps not at all important), more nitpicky, and often (much) more numerous anomalies. You might safely ignore these altogether. (And/or wait for the release of the AGElint source code package, where I will provide tools to fix these and other common problems automatically! ;))

Moving on to the other reports...

The chkaliases reports show all "bad" alias references -- references in the data files to non-existent, unregistered (in the Aliases/*.ini files) UIDs and aliases. Bad alias references are often due to simple misspellings. According to the devs, bad alias references are among the most important of the data file errors (for example, bad alias references gave rise to the infamous PON North Pole bug) and deserve your attention.

The file chkaliases_rus_104_20111020_lst.txt lists all of the "bad" alias references, with instance counts:
[root@telemann agelint]# head -n 20 chkaliases_rus_104_20111020_lst.txt
138 AIAff0_inf
53 AIAff2_inf
52 AB_French-Greek
51 AIAff3_cav
48 uni_POL_Gar3
48 AIAff4_bad
41 AB_Poles
38 Ekaterinbourg
37 foeCounterer
36 Ekaterinovslav
30 Volynskyt
26 Saruymir
20 AB_Anarchist
16 Rojitche
16 AIAff1_mil
15 mdl_WH3_Sup
15 AIAff2_mil
14 Theater_Central Russia
12 AIAff5_Raid
11 Baltrpa
[...]

And the file chkaliases_rus_104_20111020_pat.txt shows each "bad" alias ref, with suggested matching aliases/UIDs actually found registered in the Aliases/*.ini files, for example:
WoodedHill
$WoodedHills = 15
$WoodedHillsTropical = 47

So, for example, for the bad alias ref WoodedHill (singular), the suggested registered aliases are WoodedHills and WoodedHillsTropical.

In many cases, Ekaterinbourg for example, the bad alias refs are simple misspellings, and our automated matching algorithm can't determine a suggested match, or matches. You will have to play detective!

The AGElint chklocals reports are much like the chkaliases reports, except they deal in "bad" localizations -- referenced localizations not found in the Settings/*.csv files. In many cases, "bad" localizations don't matter!

The chkimages reports show referenced, non-existent image files.

In some cases, the problem is merely due to an extra space tacked onto the file name end; in other cases, due again to simple misspellings.

The chkfiles reports show referenced, non-existent non-image files. I am happy to report that in RUS 1.04 there are zero problems of this type!

In RUS 1.04, there are
[root@telemann RUS]# find Aliases Events GameData Includes Scens Scripts -print | wc -l
6074

6074 game data text files, and AGElint checks them all! Or just about all. I have a file exclude mechanism that excludes non-referenced data files, especially Events & Includes files not referenced by any scenario. (These might be data files for scenarios in the making, but not yet released. Or test files. Or other clutter. Probably best to ignore.)

For this AGElint RUS 1.04 QA/bug check, I have excluded from the reports the following:
[root@telemann agelint]# cat excludes.rus.dat
# rus excludes
(Test|Parse|Samples|CzechLegion)
Scripts/Script.ini
Events/2-CzechLegion1918.sct
Events/2-CzechLegion1918Demo.sct
Events/AigarPolishrussowar.sct
Events/POLAIrpwar.sct
Events/RegistrySamples.sct

That is: (a) any filename matching in part any of "Test", "Parse", "Samples", or "CzechLegion"; and (b) any of the other listed files. (Evidently, and AFAIK, CzechLegion1918 is a scenario that never saw the light of day.)

There is a lot of material here. And lots of things to fix. We can only speculate how fixing these hundreds (thousands even) of bugs, problems, glitches, anomalies might impact RUS game play. But it might be interesting to find out! :)

And remember: Soon I will be releasing the AGElint toolkit so that you the players (and the devs, too, to the extent that they wish) can routinely, in automated fashion, QA/bug check RUS (and all the other AGEOD games!). Think of it: The devs give it their best effort, then you can build on that effort. Over time, from patch to patch, fewer and fewer bugs. Better and better game play. Everybody wins! :thumbsup:

Enjoy!
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
gamer78
Posts: 640
Joined: Wed Aug 17, 2011 5:33 am

RE: AGElint RUS 1.04 QA/bug check

Post by gamer78 »

Thanks for your post.
Actually hard to understand all this difficulties about reporting bugs and receiving a feedback. We all want better and polished games and want to devote long periods of gaming time to games that we know it is bug free or nearly perfect. It would be very demotivational for the people who volunteer to make corrections with limited feedback from Devs.
From what I have gathered some errors related to parenthesis and misspellings. Oh well.. [8D]
I have read there is an new AI parameter "aiCTM_ThreatValInFow in AI.opt to help regulate AI agressivness ". Oh there is misspelling again [:D]


User avatar
Nikel
Posts: 1161
Joined: Tue Mar 24, 2009 10:51 am

RE: AGElint RUS 1.04 QA/bug check

Post by Nikel »

Cannot believe you develop for free a so powerful tool to detect bugs and they are not willing to use it.

What the hell is happening? [:(]
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »


See here.
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

Anatomy of a RUS 1.04 bug:

RUS 1.00 Original patched to RUS 1.04
Error logging activated
my scenario: 8 - Polish-Soviet War (Scenario)
my game: 6-Poland1920
my side: Poland

I try various random moves, engage in some battles, as far as 1920, Early July, when I see this bug:

Image

Investigating the listed Region UIDs:
[root@telemann Aliases]# egrep "= 531" Regions.ini
$Berdjiansk = 531
[root@telemann Aliases]# egrep "= 532" Regions.ini
$Vasylivka = 532
...
[root@telemann Aliases]# egrep "= 1016" Regions.ini
$Dnieper Estuary = 1016
[root@telemann Aliases]# egrep "= 1017" Regions.ini
$Dnieper = 1017
Looking in the chklint_rus_104_20111020_error_rpt.txt file:
ERROR: in Events/REDPolishrussowar2.sct, at (or before) line 1419: missing field (duplicate ;;)

in event evt_nam_REDplan4Ukrrp:

1410
1411 EvalRgnOwned = $Kharkov
1412 Probability = 50
1413
1414 CheckAILevel = 1
1415 MinDate = 1920/06/01
1416 MaxDate = 1922/12/01
1417
1418 Actions
1419> AI.SetLocalinterest = $Berdjiansk;200;$Vasylivka;200;$Melitopol;200;$Kakhovka;200;$Akimovka;200;$Perekop;200;$Klyutchevoie;200;$Skadovsk;200;;200;$Dnieper Estuary;200;$Dnieper;200;
1420
1421 EndEvent
1422
1423 SelectFaction = $RED
1424 StartEvent = evt_nam_REDplan4Ukrrpstep2|1|0|NULL|NULL|NULL|NULL
1425
1426 Conditions
1427
1428 EvalRgnOwned = $Pavlograd

ERROR: in Events/REDPolishrussowar2.sct, at (or before) line 1419: missing RegionUID in AI.SetLocalInterest

in event evt_nam_REDplan4Ukrrp:

1410
1411 EvalRgnOwned = $Kharkov
1412 Probability = 50
1413
1414 CheckAILevel = 1
1415 MinDate = 1920/06/01
1416 MaxDate = 1922/12/01
1417
1418 Actions
1419> AI.SetLocalinterest = $Berdjiansk;200;$Vasylivka;200;$Melitopol;200;$Kakhovka;200;$Akimovka;200;$Perekop;200;$Klyutchevoie;200;$Skadovsk;200;;200;$Dnieper Estuary;200;$Dnieper;200;
1420
1421 EndEvent
1422
1423 SelectFaction = $RED
1424 StartEvent = evt_nam_REDplan4Ukrrpstep2|1|0|NULL|NULL|NULL|NULL
1425
1426 Conditions
1427
1428 EvalRgnOwned = $Pavlograd
The cited AI.SetLocalInterest line correlates perfectly with the in-game error box. (Note that Early July 1920 falls between those two cited events' MinDate and MaxDate.)

Back in the game, I dismiss the AI.SetLocalInterest error box, then I immediately get this error box:

Image

Investigating the file ScriptReport.txt file, I see at the very end:
Line 6143: => AI.SetLocalInterest, Specify a list of paired values: RegionUID|Aggro_Coeff
Note that line 6143 matches exactly the line number in the earlier error box.

Investigating the RUS 1.04 game data files:

Scens/6-Poland1920.scn correlates to Events/6-Poland1920.sct.

In the Events/6-Poland1920.sct file, I see at the very beginning:
ANAAI.sct
GRNAI.sct
UKRAI.sct
REDPolishrussowar.sct
REDPolishrussowar2.sct
POLAIrussopolishwar.sct
WHIAI.sct
WHIAI2.sct
WHIAI_3.sct
Note especially the REDPolishrussowar2.sct reference. REDPolishrussowar2.sct is where AGElint reports the two AI.SetLocalInterest duplicate ;; errors. What's missing between the ;; ? The missing RegionUID.

Have I established yet the following?
  • FACT: The Polish-Soviet War/6-Poland1920 scenario bases off the Scens/6-Poland1920.scn file, which references the Events/6-Poland1920.sct file.
  • FACT: The Events/6-Poland1920.sct file references the REDPolishrussowar2.sct file. The latter file is in fact being "used".
  • FACT: The AGElint chklint_rus_104_20111020_error_rpt.txt file reports two duplicate ;; ERRORS in Events/REDPolishrussowar2.sct (where what's missing between the ;; is a RegionUID).
  • FACT: The indicated >AI.SetLocalinterest error line exactly matches the data in the in-game, on-screen error box.
  • FACT: The subsequent in-game error box reports an error with AI.SetLocalInterest.
  • FACT: The game ScriptReport.txt file corroborates the above.
It all ties together. The evidence is clear. The bug is real. AGElint captured it, and reported it.

It's been suggested that this is a "very minor" bug. Is it?

Two intrusive errors bugs, disrupting the flow of the game, and breaking the immersion. Is this "very minor"?

Your call!

Okay, but...

It's also been pointed out that a player would only see the bugs if running the game in debug mode, with error logging activated. That normally players would not be doing that. So that if they don't see the error boxes, these are not truly bugs; or at least they are not truly important, not worth anybody's attention. Do you believe this?

Your call!

Do you think the affected AI.SetLocalInterest command might be impaired, all or in part, by the missing RegionUID?

Your call!

AGElint reports
92 missing field (duplicate ;;)
92 errors of this type in the RUS 1.04 files. I can't comment on how often this class of bug happens during game play, and how many times the players see these pesky error boxes (if they are running in debug mode). How aggravated they might be. Or how significantly this impairs the AI.

Your call!
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

Let's look at some more "bugs".

The AGElint chkaliases_rus_104_20111020_lst.txt file reports the following "bad" alias references (among many others):
...
38 Ekaterinbourg
...
36 Ekaterinovslav
...
In the RUS 1.04 Aliases folder, here are some possible alternatives:
[root@telemann Aliases]# egrep -i "katerin" Regions.ini
$Ekaterinoslav = 346
$Ekaterinodar = 712
$Ekaterinburg = 1196
Note that the AGElint-reported "Ekaterinbourg" is likely a simple misspelling of the "good" registered RegionUID "Ekaterinburg" (without the "o"). And the reported "Ekaterinovslav" is likely a simple misspelling of the "good" registered RegionUID "Ekaterinoslav" (without the "v").

The two cited "bad" alias refs appear
[root@telemann Events]# egrep -c "Ekaterinbourg" *.sct | awk -F: '$NF>0'
RUS F3 Options Leaders Reinforcements.sct:38
38 times in the RUS F3 Options Leaders Reinforcements.sct file and a total of
[root@telemann Events]# egrep -c "Ekaterinovslav" *.sct | awk -F: '$NF>0'
REDAI1918_5K.sct:8
REDAI1918_5.sct:10
REDAI1918_6.sct:8
REDPolishrussowar2.sct:8
REDPolishrussowar.sct:2
36 times in the above *.sct files, all of them "used".

The "bad" "Ekaterinbourg" reference appears in various AddToRegList statements, while the "bad" "Ekaterinovslav" reference appears in various AI.SetLocalInterest statements.

AGElint reports that 30 different RegionUIDs are likely misspelled in the RUS 1.04 data files. (Others include "Brest Litvosk", "BrestK Litovsk", "Tallinnn", and over two dozen others.) I won't take the time now to investigate in what sorts of AGE command statements these mistaken references appear.

It has been said that mistaken alias references, including mistaken RegionUID references, are significant errors that deserve our debugging attention. Indeed, it was numerous mistaken alias references that gave rise to so many of the infamous "North Pole bug" reports in early versions of PON. (These have since been reported [;)] and corrected.)

So, are bad alias/RegionUID references "minor" or "[in]significant"? And that RUS 1.04 has
[root@telemann agelint]# wc -l chkaliases_rus_104_20111020_rpt.txt
3066 chkaliases_rus_104_20111020_rpt.txt
3066 "bad" alias refs in total -- does this not matter?

Excluding several of the more numerous "bad" refs from the list
[root@telemann agelint]# egrep -iv "aiaff|mdl_|uni_" chkaliases_rus_104_20111020_sorted_rpt.txt | sort | egrep -iv "^$" | wc -l
389
still leaves 389 "bad" refs of the "Ekaterinbourg" and "Ekaterinovslav" variety. Are these "mistakes" trivial?

Your call!

I would suppose that a simple global search-and-replace in the source DB/.xls files would have fixed many of the bad/misspelled RegionUIDs, not to mention some of the other reported misspellings, as in "aera" in, for example:
Events/GRNAI.sct, Mon Nov 8 2010 13:51:40

ERROR: in Events/GRNAI.sct, at (or before) line 102: syntax error: #A# (0x41), #Aera#

in event evt_nam_AI_GRNzoneKuban:

93
94 SelectFaction = $GRN
95 StartEvent = evt_nam_AI_GRNzoneKuban|1|0|NULL|NULL|NULL|NULL
96
97 Conditions
98
99 CheckAILevel = 1
100 MinDate = 1917/11/01
101 MaxDate = 1923/01/01
102> SelectSubUnits = Aera $Area_Kuban;FactionTags $GRN;Domains $Land
103 EvalSubUnitCount = >=;1
104
105 Actions
106 AI.SetLocalInterest = $Kurganinsk;200;$Eysk;200;$Akhtarsk;200;$Kanevskaya;200;$Temriuk;200;$Korenovsk;200;$Romanovski Khoutor;200;$Taman;200;$Novorossiysk;200;$Gelendzhik;200;$Ekaterinodar;200;$Krymsk;200;$Goriachiy Klyuch;200;$Maikop;200;$Solnechnodolsk;200;$Nevynominsk;200;$Essentuki;200;$Tuapse;200;$Mostovskoy;200;$Batalpachinskaya;200;$Teberda;200;$Sochi;200;$Elbrus Mountain;200;$Tikhoretskaya;200;$Armavir;200;
107
108 EndEvent
109
110 SelectFaction = $GRN
111 StartEvent = evt_nam_AI_GRNKubanend|1|0|NULL|NULL|NULL|NULL

http://www.ageod.net/agewiki/SelectSubUnits

Syntax: SelectSubUnits = Region <RgnUID>;Area <AreaUID>;Families <Fam1> <Fam2> ...;Models <Mdl1> <Mdl2> ... ;FactionTags <Tag1> <Tag2> ... ;Domains <_domLand> <_domNav> <_domAir>;<Attributes>;Generations <ModelGen1> <ModelGen2> ...

[...]
cited in the AGElint RUS 1.04 QA/bug check message thread.

There are
[root@telemann agelint]# egrep -ic "#aera#" chklint_rus_104_20111020_error_rpt.txt
110
[root@telemann agelint]# egrep -i "#aera#" chklint_rus_104_20111020_error_rpt.txt | awk '{print $3}' | tr -d ',' | sort | uniq
Events/GRNAI.sct
110 instances of the "aera" (should be: "area") misspelling in just the one, lone Events/GRNAI.sct file.

The 110 instances all occur with SelectSubUnits statements:
[root@telemann agelint]# egrep ">.+= Aera" chklint_rus_104_20111020_error_rpt.txt | awk '{print $2}' | sort | uniq
SelectSubUnits
I may be mistaken (often am!), but unless the code somehow knows to interpret "Aera" as the documented "Area" (amazing if the code corrects spelling mistakes!), it seems to me that the "bug" would render many/most/all of the affected AI events inert.

GRNAI.sct is most certainly being "used":
[root@telemann Events]# egrep "GRNAI.sct" *.sct
6-Poland1920.sct: GRNAI.sct
7-Drang1921.sct: GRNAI.sct
RUS All Includes.sct: GRNAI.sct
How difficult would it have been, how much time would it have taken, to visit just that one file and do a global search-and-replace of aera -> area ? [&:]

The cool thing about AGElint is that, empowered by all this knowledge, the players can decide for themselves if reported bugs are significant -- in their estimation -- and whether it's worth their time and bother to fix them (directly in the text files, not having to wait dependently on the devs).

Your call!
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

Some thoughts, some questions, and some philosophical musings:

It's been suggested that there's no point checking AGE events with 0 MaxOccurs because (a) they are test code or (b) they are designed to be activated later by some in-game dynamic. Okay maybe with (a) (but why leave it in? without clear commentary that it's test code?). But (b)?

If a broken event is later activated by an in-game SetEvtOccurs (or some other dynamic) process in some other event, is the brokenness of the first event somehow okay?

Your call!

It's been suggested there's no point checking "silent" event types -- e.g., AI events, and counter events -- that do not send any messages to the player.

So an AI event that by design does not send any message to the player but behind the scenes, by hypothetical example
  • directs all AI forces to the North Pole
  • causes all AI forces to die of the plague
  • locks in place all AI forces
  • empties the AI's treasury
  • clones 10 copies of RE Lee
  • thousands of other possible examples, big and small, actual and ridiculous
because it does its mischief silently in the background is not broken?

Is it a bug only if the player actually sees it (as an in-game error box)?

Your call!

If a tree falls in a forest and no one is around to hear it. the tree didn't really fall?

Must the tree fall with a thunderclap and directly hit the player on the head -- are these the only noteworthy, and fix-worthy, bugs?

If a tree is rotten to the core, but has not fallen yet, is a bug waiting to happen, do we pay it no mind?

Your call!

It's been suggested that DLCs are not worth checking (presumably because they are frozen in time and it's not economical ever to fix them). Are we not supposed to know about their bugs?

Your call!

It's been suggested that if genuine bugs only manifest themselves in debug mode, that if in normal game play the players never "see" the bug (in the form of an error box), that these bugs should not be made known to the players. That we should wait ... and wait ... for the devs to fix them. Do you agree with this?

Your call!

Ignorance is bliss?

Your call!

Power to the players!
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
berto
Posts: 21461
Joined: Wed Mar 13, 2002 1:15 am
Location: metro Chicago, Illinois, USA
Contact:

RE: AGElint RUS 1.04 QA/bug check

Post by berto »

ORIGINAL: berto

I now have the options:
  • Post my toolkit --
Done, albeit not in polished or finished form (as an ever work-in-progress, it was never supposed to be "finished").

edit> Released as an ongoing project 2011/12/09. See here.
  • I can set up shop here.
No, unless provoked, I've had my final say, and this is the end of it.

edit> Um, not quite. [8|]
Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/view ... hp?f=10167
Panzer Campaigns, Panzer Battles Lead Coder https://wargameds.com
User avatar
comte
Posts: 2373
Joined: Wed Feb 04, 2009 2:12 am
Location: Be'eri, Hadarom, Israel

RE: AGElint RUS 1.04 QA/bug check

Post by comte »

ORIGINAL: berto

[ ... shaking the dust off my feet as I depart from AGEOD ... ]

Well they lose another amazing helper shame on them. I used to do some beta stuff over there but left in frustration awhile ago. I use a different name over there and rarely log in anymore as alot has changed over there. You'll probably be happier moving on in the long run [:)]
gamer78
Posts: 640
Joined: Wed Aug 17, 2011 5:33 am

RE: AGElint RUS 1.04 QA/bug check

Post by gamer78 »

Thanks for you work. It is very appreciated.
I hope you enjoy reading history books without actually testing 'what if situation" in the battlefield! [:D] any book will lack the imagination when no battle to be fought. Or any river or sea will be worthless if it isn't visited yet... [:)]  But my opinion is actually to continue the work if you have the time. I see no match in the market to represent conflicts as accurate and well as ageod games. Even though there is some problems about receiving feedback.
User avatar
Chilperic
Posts: 964
Joined: Sun Mar 21, 2010 4:11 pm

RE: AGElint RUS 1.04 QA/bug check

Post by Chilperic »

GRNAI.sct has been fixed in the last FY version.

The rest will come in the next weeks.

Thanks [:)]

Regards

Post Reply

Return to “Mods and Scenarios”