Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2   Go Down

Author Topic: New Scoring system  (Read 513 times)

0 Members and 1 Guest are viewing this topic.


  • member
  • Offline Offline
  • Posts: 617
New Scoring system
« on: May 22, 2022, 03:02:59 PM »

Hi all! I have a request concerning the scoring in il2 BAT. As I fly on line coop missions with my friends on hyperlobby I find it sort of too simple the way the game assigns the score at the end of a mission.
For example you get the same score if you destroy a plane or a big ship, no scoring for some land targets and so on. I wonder if it is possible to mod the scoring sistem so to make it similar to more modern games. Or if this is impossible due to the age of il2.

Thanks anyway.


  • member
  • Offline Offline
  • Posts: 1829
  • Potez 63.11 France's most significant AC in 1940
Re: New Scoring system
« Reply #1 on: May 22, 2022, 03:38:07 PM »

I have always wanted the ability to apply varying score values to ANY object in the game.
This would be extremely utile in the design of missions with specific targets.
Ideally , the point value for any object could be applied when the object/chief/stationary object/aircraft/artillery/ship
is selected in the FMB.
This would allow simulating things like shooting down famous aces , eliminating key
Command and/or political figures , or transport carrying vital materials
ie USSIndianapoilis carrying the A-bomb , or a partizan vehicle carrygin the enigma machine.

I think this is a great idea for a mod.

I would use it frequently.



  • Modder
  • member
  • Offline Offline
  • Posts: 3351
Re: New Scoring system
« Reply #2 on: May 22, 2022, 10:21:47 PM »

The scoring system is certainly rigid, and lacking in variety or subtlety. Any new scheme would have to consider the requirements for campaigns as regards the thresholds for winning. If more variety in points awarded is envisaged, the values would best have an effective average about equal to the current values.

For instance, currently 100 points are awarded for each aero engine destroyed. Meaning 200 for a twin and 400 for a 4-motor plane. If one institutes a scheme whereby twin-engine planes destroyed could result in a range of points awarded, that range should be about centered on 200. Or if the more general points-per-engine scheme is retIned, but with a range of points possible, that range should be centered more or less on 100.
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)


  • member
  • Offline Offline
  • Posts: 617
Re: New Scoring system
« Reply #3 on: May 23, 2022, 08:58:03 AM »

I wonder if it is possible to start modding it. Just think:

100p  Aircraft
200p  Twin engines
150p  Small armed boats
200p  Commercial boats
300p  Oil tanks
500p  Cruisers and other large armed ships
2000p  Carriers

10p  cars
50p tanks and armored cars

150p  oil tanks
200p Factories
  and so on...

may be a dream though...


  • Modder
  • member
  • Offline Offline
  • Posts: 3351
Re: New Scoring system
« Reply #4 on: May 23, 2022, 09:43:50 AM »

If I wasn't in the midst of a power outage I'd take an initial foray into seeing what might be involved.
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)


  • member
  • Offline Offline
  • Posts: 617
Re: New Scoring system
« Reply #5 on: May 23, 2022, 10:28:24 AM »

No hurry...


  • member
  • Offline Offline
  • Posts: 1829
  • Potez 63.11 France's most significant AC in 1940
Re: New Scoring system
« Reply #6 on: May 23, 2022, 10:51:30 AM »

Please please please consider not just applying fixed values.
There is so much more flexibility if the Mission Builder is able to apply their own Victory Point
values for each mission.
Have a default set of values certainly , but please offer the ability to easily apply an alternative value ;
even if it must be applied manually in the .mis file after generation.
Other wise it is just another set of values which may or may not represent the needs of the
Mission Builder.
Build in flexibility not prescribed values.

( as you can tell I believe strongly in this concept )



  • member
  • Offline Offline
  • Posts: 74
Re: New Scoring system
« Reply #7 on: May 23, 2022, 02:00:52 PM »

  Here is how Our coop group II/JG11 solved this scoring issue. We have a play assigned as the Squadron statistics officer. Their job is to the award mission scores to our members after our weekly missions. When our  missions are finished each players is requested send in, [ to me], a copy of their event log. The most important being the host log and the mission files. The Stats officer [me] then examines them to identify the specific object destroyed by each pilot.
Many years ago I requested the development of a set of standard small box like items that could be place as target markers but at that time no one seem to understand why I should want such a thing and  So we were left to devise our own method.

To this end we  now  place certain point generating objects inside  building or other like objects to provide scores when targeted. We noted such items such as the Stationary Ships   " IJN Pilot 1 or USN pilot 1 & 2 " which generate 100 point each and  being small and hard to see made them excellent target markers.  So by placing them into, on or near a target,  when hit they explode and generate points,   2 in an oil tank will give 200pts,   4 in a building = 400points  and so on. We also use specific RR car in the same manner  in this way we  place the   'Ger. Wagon munitions Leopold " inside   warehouses or factories or under or no bridges. The main idea is to use specific thing to identify a specific types of target , radio car - comm,  tanker truck for fuel dumps and the Ger. Wagon munitions Leopold for any target where a large explosion is needed.  We also give specific targeted object a set value such as 1000 pts if you destroy a bridge.

 I noted a while back that the game's basic scoring system seems  biased toward fighter pilots this is why no buildings generate points. The standard points that are awarded seem to be based on how dangerous an item is for a pilot to attack it .  Also there are some anomalies in target ID. For example
 not everything scored as a tank is in fact a tank. The game designates  any vehicle that moves and shoots as a tank. This is why a truck mounting an AA gun or a half/track with machine guns are listed as a tanks. Some items like infantry have no points.

As for ship points, here too  I realized that the scoring system was  biased against  non combat vessels. The game discounts the value of cargo carriers. To solve this I created an ad hoc  scoring system based on ship size. This system allowed me to create a non historic tonnage size for each ship in the game.  I did this by simply placing the vessels on a map and by counting the number of the smallest map squares the vessel cover I a number that when multiplying  by 40 presented a reasonable vessels tonnage score to be awarded to the responsible player.

if you have any  question about this  please feel free to send me a PM


  • member
  • Offline Offline
  • Posts: 1829
  • Potez 63.11 France's most significant AC in 1940
Re: New Scoring system
« Reply #8 on: May 23, 2022, 02:32:43 PM »

Hi Koi ,

These are all intelligent work arounds.
Indeed we have tried several different methods including similar to yours
- and in fact HSFX has Target Point Values in the Stationary Objects List.

However , your very efforts to do this indicate very well the need for a flexible system for Mission Builders
to utilize many different mission types and objectives.



  • Modder
  • member
  • Offline Offline
  • Posts: 3351
Re: New Scoring system
« Reply #9 on: June 09, 2022, 03:07:21 PM »

First look...

In com\maddox\il2\objects\ScoreRegister.class
(which is loaded by com\maddox\il2\ai\World.class):

Code: [Select]
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme1.class, 0, 100D, 300D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme2.class, 0, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme3.class, 0, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme4.class, 0, 400D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme5.class, 0, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme6.class, 0, 300D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme7.class, 0, 600D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.air.BF_109G6HARTMANN.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.BF_109G6GRAF.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.I_16TYPE24SAFONOV.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.ME_262A1ANOWOTNY.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.MIG_3POKRYSHKIN.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.P_39NPOKRYSHKIN.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.P_39Q15RECHKALOV.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.YAK_9TALBERT.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.DXXI_SARJA3_SARVANTO.class, 0, 150D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.air.Aircraft.class, 0, 100D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.planes.PlaneGeneric.class, 8, 20D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.TankGeneric.class, 1, 40D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$Wirbelwind.class, 1, 130D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$T34.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$T34_85.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$KV1.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$IS2.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$PzVA.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$PzVIE.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.tanks.Tank$PzVIB.class, 1, 55D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.STank.class, 1, 40D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$Wirbelwind.class, 1, 70D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$T34.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$T34_85.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$KV1.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$IS2.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$PzVA.class, 1, 50D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$PzVIE.class, 1, 55D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.Artillery$PzVIB.class, 1, 55D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$Wirbelwind.class, 1, 30D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$T34.class, 1, 30D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$T34_85.class, 1, 30D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$KV1.class, 1, 40D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$IS2.class, 1, 40D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$PzVA.class, 1, 30D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$PzVIE.class, 1, 40D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.Stationary$PzVIB.class, 1, 40D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.AAA.class, 4, 60D, 150D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.SArtillery.class, 3, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric.class, 3, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.cars.CarGeneric.class, 2, 25D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.stationary.StationaryGeneric.class, 2, 25D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.artillery.SWagon.class, 6, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.trains.Wagon.class, 6, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.ships.ShipGeneric.class, 7, 100D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.BigshipGeneric.class, 7, 100D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Destroyer_USSR_Type7.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Destroyer_USSR_Type7_44.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Murgesku.class, 7, 250D, 600D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$MBoat.class, 7, 250D, 600D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Tral.class, 7, 200D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Aurora.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Marat.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Kirov.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Tramp.class, 7, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Niobe.class, 7, 600D, 1200D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$NiobeWithBeacon.class, 7, 600D, 1200D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Tanker.class, 7, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Illmarinen.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$Vainamoinen.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSLexingtonCV2.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSSaratogaCV3.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSCVGeneric.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSBBGeneric.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSIndianapolisCA35.class, 7, 600D, 1200D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSGreenlingSS213_Srf.class, 7, 200D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSGreenlingSS213_Sub.class, 7, 200D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSGatoSS212_Srf.class, 7, 200D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSGatoSS212_Sub.class, 7, 200D, 500D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSWardDD139.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSDentDD116.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSFletcherDD445.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSOBannonDD450.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSKiddDD661.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSCasablancaCVE55.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSKitkunBayCVE71.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSShamrockBayCVE84.class, 7, 500D, 1000D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSEssexCV9.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$USSIntrepidCV11.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$LVT_2WAT.class, 7, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$DUKW_WAT.class, 7, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$LCVP.class, 7, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$HMSIllustriousCV.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$HMSPoWBB.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$HMSKingGeorgeVBB.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$HMSDukeOfYorkBB.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAkagiCV.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNShokakuCV.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNZuikakuCV.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNCVGeneric.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNBBGeneric.class, 7, 700D, 1400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAkizukiDD42.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAmatsukazeDD41.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNArashiDD41.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNKageroDD41.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNNowakiDD41.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNYukikazeDD41.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAmatsukazeDD43.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAmatsukazeDD43WithBeacon.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNNowakiDD43.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNYukikazeDD43.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNAmatsukazeDD45.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNYukikazeDD45.class, 7, 300D, 800D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNFishJunk.class, 7, 200D, 400D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$IJNFishJunkA.class, 7, 250D, 600D);
        ScoreCounter.register(com.maddox.il2.objects.ships.Ship$DaihatsuLC.class, 7, 30D, 100D);
        ScoreCounter.register(com.maddox.il2.objects.vehicles.radios.BeaconGeneric.class, 9, 35D, 200D);
        ScoreCounter.register(com.maddox.il2.objects.bridges.LongBridge.class, 5, 100D, 500D);

The first entry:
        ScoreCounter.register(com.maddox.il2.objects.air.Scheme1.class, 0, 100D, 300D);

applies to single engine fighters. The "0" would seem to be an object type applying to planes generally. The "100" is the commonly assigned score for a kill (often the score seems to be tied to the number of engines, with 100 per engine). I don't know what the "300" represents. (Note: The "D" identifies a value as being of double precision.

I see that a fishing junk is deemed as valuable as s sub!

I've not yet tracked down if/how the scoring might be further modified from the 'hard coded' values supplied here.
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)


  • member
  • Offline Offline
  • Posts: 1829
  • Potez 63.11 France's most significant AC in 1940
Re: New Scoring system
« Reply #10 on: June 09, 2022, 03:50:12 PM »

WXTech ,

Really glad to see you are digging into this.
Have you bathed first ?

I want to underline the importance of flexibility , and suggest that as an alternative to
Point Value by Object Type , consider some way of applying the value
by the Object number in the .mis file ,
or by the Air Regiment ,
or Chief number.
Better yet build in the flexibility to combine all of the above.
In this way you could model a bunch of Kubelwagens - not much value  , say 10 pts as an example ,
and Rommel's Kubelwagen , with a value of 500 pts.
If you assign values only by object type , it is a limitation on how the mission builder can create
such unique victory measurements.
Let's take another example with an air to air engagement.
You are flying in JG3 over the Norman battlefield in July 1944
You come across a flight of Spitfire MkIXcs - normally if you were ( dream on )
victorious over all 4 , your score would be 400 ( 4 x 100 SE value )
However , if a mission builder were so inclined , he/she could reflect the pilot skill in the
score determination.
Say the flight was one Veteran Leader , 2 Average pilots and a Rookie Tail end Charlie
Score could be AC1 Leader 125 , 2 and 3 Average 100 pts each , and Rookie 75 Points for a total of 400.
Now let's say famous RAF ace Johnny Johnson was leading the flight , now the relative values could be
AC1 (Johnson) 250   AC2  (Average Pilot ) 100  AC3 ( Average Pilot ) 100 AC4 ( Rookie ) 75
for a total of 525 ( good luck shooting down GreyCap , though , Every one of his
34 individual victories over enemy aircraft, as well as seven shared victories, three shared probable, ten damaged, three shared damaged were all SE fighters ! )
The point is each of these "units" is identified individually in the .mis file , and this represents the best
place to assign variable victory point values.

Anyhow , whatever you do will be a big step up.

Thanks for looking into this.



  • Modder
  • member
  • Offline Offline
  • Posts: 3351
Re: New Scoring system
« Reply #11 on: June 09, 2022, 04:09:55 PM »

Just a ready way to easily see the score values as currently implemented:

All 115 values (from BAT 4.0) ordered in increasing value. Note the coarse 'quantizing' to discrete values having no real smooth continuum.

Ordered by 'type class'. The most populous types are 0 (aircraft), 1 (tanks and artillery), and 7 (ships).
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)
Pages: [1] 2   Go Up

Page created in 0.066 seconds with 26 queries.