Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 3 4 5 [6] 7 8 9 ... 13   Go Down

Author Topic: UberQuick Mission Generator (UQMG) for BAT Project Development News (02 Mar 2021 // Update 004 Released, support BAT WAW 4.1.1)  (Read 19335 times)

0 Members and 1 Guest are viewing this topic.


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

So good news... the AirDB process is progressing.  I am able to generate that DB programmatically based on existing data, of course with some omissions, but the process is working well.  I am still in just the first few columns, and in the next day or two I'll write the routines to get data from the "MiniAirDB" I talked about a few posts ago in this thread.

In theory this will all work for DOF, TGA and JTW as well.  When I get to those modules we'll see, but I am confident it will work with minimal changes if they are needed at all.
Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

Some more good news.  I created a set of tools to access the MiniDB so that I can build the UQMG Classic AirDB, along with other data points.

But as I predicted, it is a beast.  Last night I made a preliminary build using existing aircraft from the current UQMG Classic AirDB (which has 504 rows/aircraft/composites), so that is just a copy paste process.  The finished UQMG AirDB will have 1573 rows I believe, so there is a lot of processing for generating 200 semi accurate columns for every row.

To give you an idea, last night I ran the routine, and it only used the existing 504 complete rows as well as the first 31 rows (of 200) which I have completed the routine for, and it took over 15 minutes to generate the file!  So imagine how much longer this would take to do manually.

Of course this is the working code for UCT2020, so it is in Debug mode... it probably would run faster in a Release compile, but that is essentially a tool for me to tweak often.

Going forward, because the content in UQMG Classic will increase so much, and UQMG was written almost 20 years ago with much less content, and it is very file intensive, I recommend that:

* When installing UQMG
-- 1) If you currently use it, uninstall it
-- 2) Re-install it, following all instructions, and using updates, including the ones I released in 2013
---- a) Either in a Flash Drive or...
---- b) In a Solid State Drive (pure, not hybrid)

This will improve performance and speed at least twofold, and will save the life of your Hard-Drive (remember, it is a mechanical thing that will eventually die, they all die.)

I will continue the work... steady it goes.

Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

More Good News!  Success!

I created the first complete build of the "airDB.ini", the UQMG Classic aircraft database.  Please keep in mind that the objective here is not to have super accurate data on 1500 plus aircraft, but to have something that is good enough, based on available data and data that can be obtained from the Java classes in BAT.

Like I said, it is a beast.  The first successful build took 19 minutes and 33 seconds.  See the log in UCT2020 below:

Code: [Select]
(2020-07-23 17:25:21) // Building Classic AirDB.  This will take a LONG time, 15+ minutes.
(2020-07-23 17:44:54) // Classic AirDB built.

Again, it is 1574 rows by 200 columns.  And some columns take multiple processes to determine if it is a true value or not.

I believe this is the biggest challenge.  I have 3 more files to process to make the DB fully functional, but there will be missing data, so for the new planes in BAT I will not have statistics like max speed or range because all that took years of research looking for data.  This is not the objective as I have said many times.  What we need is a stable platform.

Also, there will be odd results... for example, if you pick Bombers... you will see the Piper plane in the Results... this is not a problem by design in UCT2020 or my database, it is just that the Java Class for the Piper includes reference to "TypeBomber" class... I can't go over the details for each one of 1300 or so classes, so, if it is in the file, it will be processed as such if it is one of the parameters I am looking for.  You never know, maybe TypeBomber provides a more stable AI for that plane... but there it is...  in any case, those of you familiar with UQMG know that when you create data sets (Random Sets), you can manually exclude certain parts of the results.

The Columns are as follows:
Code: [Select]
000 Player Any Type
001 2 Flyable
002 3 Multi-crew Flyable
003 4 Flyable (No Aces)
004 5 Artificial Intelligence (AI)
005 6 No Aces
006 7 No Tug Trains
007 8 No Gliders
008 9 No Seaplanes
009 10 No Aces & Tug Trains
010 11 No Gliders & Seaplanes
011 12 No Aces/Gliders/Seaplanes
012 13 AI (No Aces)
013 14 AI (No Tug Trains)
014 15 AI (No Gliders)
015 16 AI (No Seaplanes)
016 17 AI (No Gliders/Seaplanes)
017 18 AI (No Aces/Tug Trains)
018 19 AI (No Aces/Gliders/Seaplanes)
019 Types All Types
020 2 Fighter
021 3 Fighter-Bomber
022 4 Fighter-Interceptor
023 5 Fighter-Interceptor-Bomber
024 6 Non-Fighter Interceptor
025 7 Ground Attack
026 8 Dive-Bomber
027 9 Non-Fighter Light Bomber
028 10 Medium Bomber
029 11 Heavy Bomber
030 12 Naval Bomber
031 13 Naval Operations
032 14 Reconnaissance
033 15 Liaison
034 16 Close-Support
035 17 Trainer
036 18 Transport
037 19 Tug for Glider
038 20 Glider
039 21 Historical Ace
040 22 Tug and Glider Train
041 23 Seaplane
042 23 Carrier Plane
043 Army Any Country
044 2 Allies or Red
045 3 Axis or Blue
046 4 Australia
047 5 Belgium
048 6 Brazil
049 7 Bulgaria
050 8 Canada
051 9 China
052 10 Croatia
053 11 Czechoslovakia
054 12 Czechoslovakia (RAF)
055 13 Denmark
056 14 Egypt
057 15 Finland
058 16 France (Free/Allied)
059 17 France (Occupied/Axis)
060 18 Germany
061 19 Great Britain
062 20 Greece
063 21 Hungary
064 22 India
065 23 Iran (Persia)
066 24 Iraq
067 25 Israel
068 26 Italy (Co-Belligerent/Allied)
069 27 Italy (Axis)
070 28 Japan
071 29 Mexico
072 30 Netherlands (Holland)
073 31 New Zealand
074 32 Norway
075 33 Norway (RAF)
076 34 Poland
077 35 Poland (RAF)
078 36 Portugal
079 37 Romania
080 38 Slovakia
081 39 Soviet Union (USSR)
082 40 South Africa
083 41 Southern Rhodesia
084 42 Spain (Republican/Allied)
085 43 Spain (Nationalist/Axis)
086 44 Sweden
087 45 Switzerland
088 46 Thailand (Siam)
089 47 Turkey
090 48 United States (USA)
091 49 Yugoslavia
092 Year Any Year
093 2 1936
094 3 1937
095 4 1938
096 5 1939
097 6 1940
098 7 1941
099 8 1942
100 9 1943
101 10 1944
102 11 1945
103 12 1946
104 13 1947
105 14 1948
106 15 1949
107 16 1950
108 Day/Night No Limitations
109 2 Day Operations
110 3 Night Operations
111 Size All Sizes
112 2 Small
113 3 Medium
114 4 Medium-Large
115 5 Large
116 6 Very Large
117 Engine Any Number
118 2 Propeller Engines Only
119 3 Jet Engines Only
120 4 Rocket Engines Only
121 5 Jet and Rocket Engines
122 6 No Engines
123 7 1x Propeller Engine
124 8 2x Propeller Engine
125 9 3x Propeller Engine
126 10 4x Propeller Engine
127 11 5x Propeller Engine
128 12 6x Propeller Engine
129 13 1x Jet Engine
130 14 2x Jet Engines
131 15 1x Rocket Engine
132 16 4x Ejectable Rocket Engines
133 17 1x Inline Propeller Engine
134 18 2x Inline Propeller Engines
135 19 4x Inline Propeller Engines
136 20 5x Inline Propeller Engines
137 21 1x Radial Propeller Engine
138 22 2x Radial Propeller Engines
139 23 3x Radial Propeller Engines
140 24 4x Radial Propeller Engines
141 24 6x Radial Propeller Engines
142 Wing Any Type
143 2 Monoplane
144 3 Biplane
145 Landing Gear Any Type
146 2 Automatic Retracting Gear
147 3 Manual Retracting Gear
148 4 Fixed Gear
149 5 Seaplane
150 6 Ejectable Gear and Ski Pads
151 7 Winter Ski Pads
152 Details No Detail Specified
153 2 No Extra Ordinance
154 3 All Pod Guns
155 4 Fixed Pod Guns
156 5 Removeable Pod Guns
157 6 Short Range(<500Km)
158 7 Short-Mid Range(500-699Km)
159 8 Mid Range(700-799Km)
160 9 Mid-Long Range(800-999Km)
161 10 Long Range(1000Km+)
162 11 Drop Tank
163 12 Long Range(w/ Drop Tank)
164 13 Low Ceiling(<4000m)
165 14 Low-Mid Ceiling(4000-4999m)
166 15 Mid Ceiling(5000-6999m)
167 16 Mid-High Ceiling(7000-10000m)
168 17 High Ceiling(10000m+)
169 18 Low Mx Spd(<200Km/h)
170 19 Low-Mid Mx Spd(200-399Km/h)
171 20 Mid Mx Spd(400-549Km/h)
172 21 Mid-Hi Mx Spd(550-699Km/h)
173 22 Hi Mx Spd(700Km/h+)
174 23 Small MGs(7-8mm)
175 24 Large MGs(12-13mm)
176 25 Small Cannon(15mm)
177 26 Med. Cannon(20-23mm)
178 27 Large Cannon(30mm)
179 28 Large Cannon(37-40mm)
180 29 Large Cannon(41-74mm)
181 30 Large Cannon(75mm)
182 31 All Large Cannons(30mm+)
183 32 Small Bombs(<51Kg)
184 33 Medium Bombs(51-250Kg)
185 34 Large Bombs(251-500Kg)
186 35 Very Large Bombs(501Kg+)
187 36 Rockets
188 37 Rockets and Bombs
189 38 Gasoline Bombs
190 39 Bomblets
191 40 Anti-Personel Bombs
192 41 Paratroopers
193 42 Torpedoes
194 43 Gunner(s)
195 44 Static Plane Type Available
196 45 Static Plane Type NOT Available
197 46 Extra Ammo Available
198 47 Open Cockpit
199 48 Closed Cockpit

But, there is A LOT I can't programmatically determine, so depending on the parameter it may be either "0" (not true), or "1" (true).  The Bulk of the processing are from Columns 0  to 107.  Since the DB is limited to 1934 to 1950, any plane that operated before 1934 will only have that column checked (DOF, some of TGA), and for the ones that operated after 1950, only that column will be checked (JTW).

For UQMG Classic, this is what the Aircraft definition file (fd_Aircraft.ini) looks like, here is an excerpt of only the Trainers and Sport (this was totally Program generated by UCT2020):

Code: [Select]
"(F) Piper J3 cub, 1938",PA18,default,1796,1392,11759,2
"(F) Polikarpov U-2, 1933",U_2dt,default,2,1073,14483,7
"(F) Polikarpov P-5, 1934",P_5dt,default,2,1,11681,2
"(F) Yak UT-2, 1938",UT_2,default,2,1,14497,2
"(F) Yak UT-2 (M-11), 1938",UT_2M11,default,2,1,14500,2
"(F) Antonov OKA-38 Aist, 1940",OKA_38,default,2,1,9753,2
"(F) Polikarpov UTI-4 Type15, 1937",UTI_4,default,2,1,14503,2
"(F) Yak-7UTI, 1940",YAK_7UTI,default,2,1,14782,2
"(F) DH82 Tiger Moth, 1931",U_2TM,default,2,1073,14443,3
"(F) Miles Magister M14A, 1936",MagisterM14A,default,1221,1073,9078,2
"(F) Boeing Stearman 75, 1934",Stearman,default,1796,1392,13614,5
"(F) Waco UPF-7, 1930",UPF_7,default,1796,1392,14494,2
"(F) Vultee BT-13 Valiant, 1940",BT_13,default,1796,1392,1133,4
"(F) Curtiss SNC-1, 1942",SNC_1,default,1392,1392,12571,2
"(F) North-American T6 Texan, 1935",S_T6,default,1796,1392,13725,2
"(F) North-American AT6 Texan, 1935",S_AT6,default,1796,1392,434,13
"(F) North-American SNJ3 Texan, 1936",S_SNJ3,default,1796,1392,12574,2
"(F) North-American SNJ4 Texan, 1936",S_SNJ4,default,1796,1392,12577,13
"(F) North-American AT6 Texan, 1938",Texan_AT6,default,1796,1392,14138,4
"(F) North-American SNJ, 1938",SNJ_USN,default,1796,1392,12591,6
"(F) Curtiss-Wright AT-9 'Jeep', 1941",AT_9,default,1796,1392,2557,2
"(F) Stinson L5 Sentinel, 1941",L_5,default,1796,1392,8681,4
"(F) Stinson L5 Spotter, 1941",L_5A,default,1796,1392,8670,5
"(F) Arado Ar-66C, 1933",Ar_66C,default,2,1,576,3
"(F) Messerschmitt Bf108, 1934",ME108_B2,default,2,1,9170,2
"(F) Bücker Bü-131B2 Jungmann, 1935",BU_131,default,2,1,2253,2
"(F) Bücker Bü-181, 1939",Bu_181,default,2,1,2256,3
"(F) Gomhouria Mk.6, 1939",Mk6,default,2,1,5967,2
"(F) Zlin Z-26 Trainer, 1946",Z26,default,2,1,14855,2
"(F) Polikarpov CSS-13, 1948",U_2PO,default,2,1073,14438,4
"(F) Granville GeeBee R1, 1932",GeeBeeR1,default,1796,1392,5873,2
"(F) Granville GeeBee R2, 1932",GeeBeeR2,default,1796,1392,5876,2
"(F) Grumman F8F-2 Racer, 1970",F8F2Racer,default,1796,1392,4398,31
"(F) Grumman F8F-2 RareBear, 1969",F8F2RB,default,1796,1392,4430,31
"(F) Grumman F2G Super Corsair, 1945",F2G,default,1796,1392,3872,38
"(F) NA P-51R Racer, 1964",CRPracer12,default,1796,1392,11678,2
"Towed Targets & Aerial Messages(Glider)",Target_Message,default,1796,687,14088,22

The corresponding DB look for the aircraft above is included below:

Code: [Select]

This is only 38 planes... so you can imagine the work for 1574...

Anyway, much more work ahead!

Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • member
  • Offline Offline
  • Posts: 10

Hello, I love the work that you are doing. If I am not misunderstanding, it is still in development, right? No download yet. Do you have an estimated date of when it might be available? Every day I come in to see your progress.


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

Correct, the Mod for BAT compatibility is work in progress.

The current version which with two simple updates supports up to 4.12 stock and some of the classic AAA (All-Aircraft-Arcade mod community) mods, many which are still compatible with BAT, is available.  You can get it with some more info here:  https://www.sas1946.com/main/index.php/topic,45326.0.html

If you have not used it before you should give it a try, but install it in a Flash Drive or pure/non-hybrid Solid State Drive (SSD).  Essentially:

1) Download main install, mega-update, and current beta update (that has the 4.12 planes and objects)
2) Install and follow instructions closely
3) When you first start it, there will be a critical step in which you run a Zip executable to install all the script and initialization files, including many sample missions you can load in UQMG
4) Tell UQMG where IL-2/BAT is installed
5) Important:  Generate one mission (that will establish the required folders in IL-2 1946/BAT
6) Go check it out in IL-2, the three missions will be available in the Single Player "None" country, as well as in the Coop and Dogfight folders
7) Go back to UQMG, close it...
8) Install mega update...
9) Start, generate another mission
10) Exit, install the smaller Beta (Note this one you need to run JSGME to install the update as a mod to UQMG... this will be the way going forward)  ("This is the way..." -Mando)
11) Play and enjoy, get used to it

The BAT release I don't want to commit to a date, because I don't think it is ready yet.  The first release will probably only include the Air objects for WAW only.  Then I'll work the Ground stuff as well as DOF, TGA, and JTW.  After that I'll tackle maps and other projects.

I am approaching this with patience, and steadily working in small chunks, instead of my previous "policy" of hit-and-run tactics with multi-year hiatuses...   ;D :P

So, I **promise** another status update in 2 weeks, 12:01PM SI2T (standard IL-2 time).

Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

Found another issue... some Java classes are omitting direct references for a type and relying on a "overall-type" objects, and that throws my program logic (UCT2020) out of whack.  I can't fix that right now because it would require a whole new batch script...

For example:
public class A6M_52otsu extends JC_A6M <== that means most info about that Zero is in JC_A6M and not the aircraft Java class itself...

So aircraft like that would not come up as a Fighter...%u2026  I'll have to think about that in the future.

[EDIT NOTE:  I may have found a solution to the problem above... may take a little time, but maybe worth it.]
Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

And I think I fixed it.  I will check it thoroughly tomorrow but I think that it is fixed.

Bad news for me is that now it takes 53 minutes to build the database for WAW (that is OK, because in 53 minutes, a lot of booze can be consumed!), but when you put it in perspective, it is not so bad.  I think that everyone will agree that if you are looking for Japanese fighters, it would be a huge disappointment if Zeros were not in the mix/results.

Once the DB is built though, you don't mess with it unless there is a huge update.  So now I can go back to working on the other files.
Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • member
  • Offline Offline
  • Posts: 151

And I think I fixed it.  I will check it thoroughly tomorrow but I think that it is fixed.

Bad news for me is that now it takes 53 minutes to build the database for WAW (that is OK, because in 53 minutes, a lot of booze can be consumed!), but when you put it in perspective, it is not so bad.  I think that everyone will agree that if you are looking for Japanese fighters, it would be a huge disappointment if Zeros were not in the mix/results.

Once the DB is built though, you don't mess with it unless there is a huge update.  So now I can go back to working on the other files.

 ]hello2[ ]hello2[ ]hello2[


  • Flying Ass Clown #34
  • Modder
  • member
  • Offline Offline
  • Posts: 1253

UD...I'm an old Mission Mate fan, who flew yer UCMG, quite often too.  Cheers, prost and bread.
I am a moron.


  • UberDemon/danzigzag
  • Modder
  • member
  • Offline Offline
  • Posts: 746
    • UberDemon's Website

Prost and bread indeed mate!

And I confirm I did solve the problem, with an additional batch generated script file and an addition of code.  The idea is simple, let's say I am looking to qualify a plane as a fighter...  Well, it will have one of two attributes in IL-2 Java classes, "TypeBNZFighter", or "TypeTNBFighter".  Well if those attributes are in their Java class, then all good, but if they are not, now I look at a file that tells me which is their prototype class, so for all Zeros, it is either something like A6M or JC_A6M.  Well if I get a return of "0", then I look further into the prototype class...  well something like that.  I am glad when I designed the original MiniDB (meant for the semi-dead UQMG2013 project), I just included all aircraft classes, including prototypes, Cockpits, Schemes, etc.  So when it was built, it contains all attributes associated with that family of planes...

This is what a sample of the the file "Z_PubClassRef.txt" looks like:
Code: [Select]

This was generated with batch scripting.  All I care are the first and last parameters, the Java class of the aircraft, and it's parent class.  So for the A1H, its parent class is AD.  So I look there when I am building the database to see if I missed anything.

Well, this is for the geeks amongst us, but hey, where have you seen this kind of transparency lately?
Best Regards, UberDemon/danzigzag, Get UQMG at http://www.uberdemon.net


  • Modder
  • member
  • Offline Offline
  • Posts: 2140
Pages: 1 ... 3 4 5 [6] 7 8 9 ... 13   Go Up

Page created in 0.071 seconds with 23 queries.