Cow Unit Ranker

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Some results are counterintuitive but I think I understand them. For example, I interpret this first search as "give me the most cost effective units to attack an unknown ground unit at range, ignoring speed entirely" (for now, giving all resources equal weight, which is not accurate but let's roll with it anyways)

      With this second search, I changed it to "all of that but now I reeeeally care about speed" and it spits out a list that, strangely, mixes up the order of the different Artillery levels. This doesn't seem right at first glance, but I guess it's telling me "if you really, really care about speed, then you can actually get more speed for your resources with lower level artillery", implying that the speed increases for higher levels don't keep pace with the increased resource costs. Obviously not a very helpful scenario (that's what I get for giving the model weird inputs) but I think it's understandable and results in some interesting insights.
      Images
      • Screenshot_20230404-201404.png

        217.55 kB, 1,080×710, viewed 8 times
      • Screenshot_20230404-201635.png

        246.38 kB, 1,080×758, viewed 6 times
    • Some other thoughts:
      - it'd be cool to set a min and max day instead of a min/max level, like "show me the most cost effective units assuming I only have access to research levels up to day 10". This would be a lot harder to code, I assume, and would also vary by doctrine, but would be kinda cool. As it is, max level doesn't tell the whole story, since some units have 7 and others have just 3 or 4 (or even just 1 level)
      - another more complicated idea that could be interesting would be to allow the user to input their resource generation rates and to optimize based on time, either by determining the limiting resource and just using that one or by combining all resource types but converting them to a single unit (e.g. hours) rather than relying on the user to weight them properly
      - I assume this is looking purely at raw damage outputs, not as percentage of the target unit's health, which may overvalue units that specialize in heavy armor vs those that specialize in unarmored, since heavy armor targets tend to have more HP and thus each attack does less damage as a percentage of their total health. I dunno how to account for that yet.
    • jubjub bird wrote:

      but I guess it's telling me "if you really, really care about speed, then you can actually get more speed for your resources with lower level artillery", implying that the speed increases for higher levels don't keep pace with the increased resource costs.
      Yes, that's correct. Speed is kind of strange to include here but I just threw it in for something to play with. If you just want the fastest units you don't need a complex calculation. I suppose I could just use some inverse of the absolute speed scaled to the other score values and let that influence the total score based on user input speed weights without regard to resources. In that way, you could sort everything based purely on speed if you gave speed a large weight.
    • jubjub bird wrote:

      it'd be cool to set a min and max day instead of a min/max level, like "show me the most cost effective units assuming I only have access to research levels up to day 10". This would be a lot harder to code, I assume, and would also vary by doctrine, but would be kinda cool. As it is, max level doesn't tell the whole story, since some units have 7 and others have just 3 or 4 (or even just 1 level)
      That wouldn't be hard to code. Removing units that don't meet some criteria is simple. You just ignore it and don't have to do any calculations on it. I'll think about it ...
    • jubjub bird wrote:

      another more complicated idea that could be interesting would be to allow the user to input their resource generation rates and to optimize based on time, either by determining the limiting resource and just using that one or by combining all resource types but converting them to a single unit (e.g. hours) rather than relying on the user to weight them properly
      I'm not quite following that. What exactly needs to be optimized? What's the target goal?

      jubjub bird wrote:

      I assume this is looking purely at raw damage outputs, not as percentage of the target unit's health, which may overvalue units that specialize in heavy armor vs those that specialize in unarmored
      Correct. I don't know if I'd say it "overvalues" units good against heavy armor. Depending on the stage of the game and your particular enemy, the total pool of heavy armor HP could be much less than the pool of unarmored. I don't think taking the average HP of an armor class would be a good way of scaling and would be very confusing for the user. The way I would think about it is, figure out what your enemy has in terms of HP pool of different armor classes and set your armor class weights accordingly. There are too many random factors in a given game at a given time to try to account for everything. That's what the user weight inputs are for.
    • Agreed on the second point, I couldn't come up with a better method.

      For the first one, the idea is to convert all the resources required by a unit into a single value, time, which varies based on the user's generation rates (e.g. I need 2 hours of Food, 1 hour of Goods, 0.5 hours of Oil, 0.5 hours of Money, and 3 hours of Manpower, so the total cost of this unit is 7 "resource hours"). This would prevent the user from having to adjust the weights they give to the different resources manually, instead taking their exact situation to tell them which units would utilize their resources well.
    • I like the idea, but it seems pretty specific and limiting. I would imagine a more common usage would be, say, a player knows they tend to run out of rares and manpower and just want to know what units are best that don't use a lot of these. Or a bunch of other possible needs ... Simply using your resource production rates wouldn't account for the variable usage of those resources. I guess if you were starting from scratch with no preconceived idea of what units you were going to build and were ok with ignoring variable resource usage of building construction this might be useful. But, in that case you would probably be better off trying to estimate your resource production over time given the number of resource cores etc you have, in which case, you may as well just use weights.

      ps. This also wouldn't take into account market availability of a resource. There is just so many things to consider, it's probably best for the player to have a sense of what resources are most valuable based on experience. The resources you commonly find yourself low on is probably a good start.

      The post was edited 1 time, last by DxC ().

    • for me it seems its ignoring a bit that the stack limit for damage vs a single type is at 10 best units from the stack(I know its not exactly like it...but its good eghough to say)..... so for big stacks its pretty bad....I think its also a reason why Militia is here sooo extrem strong at least for defending.... the maximum damage which an only militia stack could be is lower as the maximum damage from anarmored cars stack..... jeah sure till 10 units militia is much cheaper for each point damage but the damage from militia never reaches the maximum of 10 armored cars damage.....doesn't matter how many militia you ad to that...... (also the scout fuction is not rated there).... I dont understand why it looks for me like a lower militia has more hp as a higher lvl one...seems like I should look first at the calculator....(I just looked 10 seconds at it)..before posting here stuff....:

      (and sry that I just say negativ points but I think the positiv stuff is for me tooo boring to say often xD...I like to cry at others... wanted to delete this post..still dont know how to delete)

      The post was edited 3 times, last by Blauer Drache ().

    • Blauer Drache wrote:

      nd sry that I just say negativ points but I think the positiv stuff is for me tooo boring to say often
      No worries, this is good feedback.

      Blauer Drache wrote:

      for me it seems its ignoring a bit that the stack limit for damage vs a single type is at 10 best units
      Yes, the per unit damage potential isn't taken into account so it doesn't represent the maximum per round damage potential of a stack of 10, which is extremely important. I've thought about this some and would like to adjust for it. Maybe I could allow the user to specify an expected average stack size and base the calculation off of that.

      Blauer Drache wrote:

      also the scout fuction is not rated there
      Yes, I would like to add the ability to specify scouting and stealth abilities. It could either be a filter like the level or range or some kind of score weighted by the specified terrain weights. It seems a bit tricky to generalize a score for these though since different units scout in different environments and different units are stealth in different terrains. Hopefully, I can come up with something that makes sense. It won't be too soon though, because I don't even have all the in game data for scout/stealth atm.

      Blauer Drache wrote:

      I dont understand why it looks for me like a lower militia has more hp as a higher lvl one
      All the scores are just some kind of weighted ratio that is inversely proportional to the given attribute. So a high value in the HP score column means the COST (resources, weights) is high relative to the BENEFIT (hp). Individually, these values shouldn't really be interpreted as something meaningful, but I'm showing them to give an idea of how they contribute to the overall score and how they compare to other attributes in terms of score.
    • DxC wrote:

      I suppose I could just use some inverse of the absolute speed scaled to the other score values and let that influence the total score based on user input speed weights without regard to resources.
      I went ahead and changed the speed score so that it doesn't depend on resources. I've balanced it internally to have a score on par with the other scores, but this will probably be adjusted in the future. I also gave the default HP score a boost, which means it will contribute more to the overall score than it did before. If you are just looking at a limited target class, say attack power vs light armor only, you may want to lower the HP weight so it doesn't contribute as much. Normally, when multiple target classes are considered simultaneously, the HP score will contribute less than the combined score of the target classes.
    • DxC wrote:

      Maybe I could allow the user to specify an expected average stack size and base the calculation off of that.
      This seems tricky. So I guess perhaps it should be proportional the HP loss for a stack of size X vs some hypothetical boss. The reason a large stack is good is because they can win the fight while taking less total damage. So maybe unit HP and attack/defense power should all be represented as the HP the stack has remaining after killing the boss. I'm just thinking out loud. Interested in ideas ...
    • So I went a bit loony and am having units fight a godzillion hypothetical bosses. Basically, I'm trying to evaluate the ability of a unit type to deal damage over its lifetime. This may not be the perfect measure and there are still balancing issues, but this might be a good starting point. Here is a description from the help file.


      Unit evaluation (damage dealt)
      The benefit of a particular unit, given the various weights, is a measure of how much hypothetical damage it can inflict before it dies. For each target armor class, the unit, in a stack of specified size, will fight a hypothetical boss stack that has equal attack and defense power for all armor classes. If the boss is killed, another will appear, and you will fight that one starting at the HP you have left. This continues until your stack is dead. The total amount of damage you deal to the bosses before you die is the denominator in the score = resource / denominator.

      When attacking, ranged units (artillery types, battleships and cuisers) are assumed to take no damage so they could potentially deal infinite damage. Instead, these units are assigned the following large damage value vs a given armor class: (power vs given armor) * (unit HP) * (stack size). This may be modified for better balancing in the future.