Loading...
  OR  Zero-K Name:    Password:   

Units archetypes - statistical analysis

21 posts, 994 views
Post comment
Filter:    Player:  
Page of 2 (21 records)
sort
Hey folks,

I've made rudimentary statistical analysis of units deriving their stats with custom python script. I didn't see anyone do that so I'm sharing.

Here's code:

[Spoiler]

Here's usage:
[Spoiler]

Script isn't perfect, there's lots of heuristics. The mistakes in .csv file have to be corrected a bit by hand. The main point of this was to export lots of data hidden in lua files into more handsome tool like a spreadsheet.

I wanted to see each unit's few chosen statistics and to check what are averages of these statistics among their classification archetypes. I've had to make few assumptions and design choices...
[Spoiler]

You can see my analysis here. Notice there are 2 sheets.

About that... Felon has a support icon and I agree with support classification, but in his description it says it's a skirmisher... Why?

I plan to translate this data into a loading screen art with some graphs and basic info about which units counter what.
+10 / -0
I've wanted to box values into at most 6 classes. Below is my own classification based on data and my feelings.

ClassCostHPHP/CostVelocityMobilityDPSDPS/CostRangeAccuracy
ANTIAIR323124355
ARTILERY521113151
ASSAULT455224223
BOMB301350005
RAIDER212342514
RIOT333234324
SCOUT101551515
SKIRMISHER322242232
STATIC344005535


Here is a table of raw data values which are normalised to 1.0, then multiplied by 5 and rounded.

ClassCostHPHP/CostVelocityMobilityDPSDPS/CostRangeAccuracy
ANTIAIR223223355
ARTILERY521222151
ASSAULT355223213
BOMB101350005
RAIDER112342514
RIOT223233314
SCOUT102551515
SKIRMISHER222242222
STATIC234005535


Help me decide whether that's accurate representation or not, I will use this data on my graphs. BOMB will either have DPS at 0 or 5.

Stats that will be included on graph: HP/Cost, Speed (Velocity and/or Mobility), DPS/cost, Range, Accuracy.

Mobility and Accuracy are stats based on:
  • Mobility - acceleration, break rate, turning rate - actually should be called Agility. It measures how cumbersome unit is or how nimble unit is
  • Accuracy - combination of weapon homing, area of effect, spray cones, accuracy, weapon type, projectile speed ... Nah, it's just a made up number by me to represent all of that stuff.

Also here's a prototype graph I'm developing.
+8 / -0


15 months ago
Strength for Cost is also a useful value.
(HP/Cost)*(DPS/Cost)
+1 / -0
I have earlier expressed the opinion that the raw HP and HP/Cost, same as DPS and DPS/cost, are meaningless because the /Cost is the one that matters.

There are some general cases where they don't match in your tables above, but generally i think this agrees with that opinion. Most units stay within 1 score point difference between those respective metrics. The only exceptions are some cases in DPS vs DPS/Cost:

Raiders: 2 vs 5
Scouts: 1 vs 5
Artillery: 3 vs 1
Assault: 4 vs 2

I don't think it makes sense, for example, to say that DPS is an artillery class virtue, something that exemplifies that class. Rather, the disparities for Artillery and Assault are factors of their comparably higher weight, and the the ones for Raiders and Scouts are because of their lower average weight.

You could move this parameter to a separate metric, Weight. But i think that barely tells one anything about the class and what its archetype is.

Also i don't think it makes sense to keep separate Mobility (which i'd call maneuverability) and Velocity (Which i would just call speed). Maneuverability is quite rigidly split between factories, with bots uniformly more maneuevrable than rovers/hovers/tanks. Speed is much less segregated.

Note that i'm not saying that these are bad e.g. to plug into a classifier; and it still matters for choices like "should i spam skirmishers against these particular units". However, i think it would be good to remove as much noise from the loading screen infographic as possible.
+1 / -0
I didn't want to use "Maneuverability" as it's a long word. I'll call it "Agility", and "Speed" instead "Velocity".

I've mentioned I'm going to use only per/cost values. My main question was whether to use top table or bottom table? I'm still not sure whether to use "Agility" stat.

I also wonder whether I should characterise each class on separate screen or all on one.

Godde: shouldn't be HP*DPS/Cost instead HP*DPS/Cost^2?
+0 / -0
DErank1a
15 months ago
Unit strength can not be calculated "smoothly" as in the posted formulars, it changes in steps:
Artillery that fails to outrange static defense is potentially useless. 5% more range and suddendly that changes..
Whether unit-A requires 1,2 or 3 shots to kill unit-B makes a big difference when playing. Such things are not reflected in formulars.
There are reasons why in forums of other games "balance by math" is laughed at.
+1 / -0
Of course, still the general sense and average characteristics can be derived from such statistical analysis. I'm looking for a good generalization to describe the archetypes and relationships between them as simply as possible but without missing crucial info.
+0 / -0
quote:
Godde: shouldn't be HP*DPS/Cost instead HP*DPS/Cost^2?
It should be HP*DPS/Cost^2.

Edit: This can be seen as raw strength or raw brawling value when the units just trade shots without missing and you disregard Weight and Overkill.
+0 / -0
quote:
Unit strength can not be calculated "smoothly" as in the posted formulars, it changes in steps:
Artillery that fails to outrange static defense is potentially useless. 5% more range and suddendly that changes..
Well all artillery in Zero-K at least outranges Stingers along with any lesser defense turret.
Also, ranges aren't that binary in Zero-K. In most cases, it doesn't matter that much if the range difference is just 5-10%.

quote:
Whether unit-A requires 1,2 or 3 shots to kill unit-B makes a big difference when playing. Such things are not reflected in formulars.

That can be reflected if you factor in Overkill and do unit match-up tables like I did for Planetary Annihilation.
https://people.dsv.su.se/~akbj7812/pa-db/unitmatchup/tank_laser_adv/stat.html

Edit: All artillery actually even outrange Desolator that has 650 range. However I don't really think that the Badger with 730 range is enough to deal with it reliably. Even Slings with 880 range will struggle against it, if the Desolator is in an elevated position and if the Desolator hits the ground infront of the Slings.
+0 / -0


Update: just a prototype; Velocity is max speed, Agility takes into account dynamics such as acceleration and turn rate. Accuracy is arbitrary number accounting area of effect and weapon type (homing or not, hitscan etc.)

I might add some additional values like suggested:
- strength
- alpha dmg

And remove some:
- hp in favor of hp/cost
... etc.

I'm open to suggestions, now that I have the tool to generate those graphs quickly I'd probably make a screen with class-general values and for all units individually in said class.

The colors and design will probably change. I can also try to check accuracy of k-nn classification with these averaged datapoints as anarchid suggested to see how they hold up.

Also I'll probably make instead arbirtary 5-scale make a ranking among classes in the next iteration.
+6 / -0
8 months ago
Very nice!
+0 / -0

8 months ago
Uhh, look at the static defence... It needs nerf, it pretty much tops all other.
+1 / -0
I updated the datasheet (Fixed some bugs), will have some fun and post an update tomorrow.

With new updates the anti-air looks pretty bad, because planes have in general low hp/cost, thus the dps and all dps related stats look bad on anti-air.
+0 / -0
Update:



Note: Planes have higher alpha/cost than bombs because Phoenix and Thunderbird screw the scale with its insane burst if it all hit at once.

Alpha is dmg done in single reload or in 1 second, whichever is higher.

I split static defense into 3 groups because they differ a lot from the others. Included Bertha in static-artilery.

Do you think that a loading screen summarizing few of those at a time would be informative/worth displaying? I'd put some basic rock paper scissor graph showcasing the relationships that the archetypes should have.

As in: Assault: inside the circle, around in circle: Raider/Scout > Skirmisher > Riot > Raider. Artillery > Static > the circle > Artillery
+4 / -0

8 months ago
Looking nicer and nicer. The cost field seemed pretty odd, glad to see it being clarified. This deserves to be on a manual page imo, as an additional visualization on what the different classes are about.
+1 / -0
8 months ago
the sacred octagon of winning choices
+0 / -0


8 months ago
I'd love to hear some criticism. I don't know what to do next. Is a loading screen full of graphs okay? Do you agree with the data I presented?
+1 / -0
What insights did you get from these diagrams that you didn't already know?

In what sense are raiders (as a class) not "accurate"? I can't think of one that does not hit what it aims at as a general rule.
+3 / -0
Think over the categories like Aquanim did, polish the graphical style (perfect circles) and show one or more, but not all of them at a time, maybe with pictures of examples of the mentioned units / unit classes in loading screens inside the game.
Kudos for your hard work, Zenfur!
+0 / -0

8 months ago
The circular design looks good, but no upside down text please!

The basic counter structure is one of the most important things to know, so it's a prime candidate for a loadscreen. Currently the only related loadscreen is this one, and it refers to a site that no longer exists (zero-k.info/unitguide).
+0 / -0
Page of 2 (21 records)