drusepth / screeps-arena-swamp

Swamp & Spawn
1 stars 0 forks source link

Threat Scores are suboptimal #1

Open jbury opened 2 years ago

jbury commented 2 years ago

In terms of threat, 8 TOUGH is much more of a threat than 1 ATTACK. (that is, a creep with 2 ATTACK vs [1 ATTACK, 8 TOUGH], the 2 ATTACK will lose.)

Ordering of the body parts is also significant - can you easily break the HEAL or ATTACK parts? Can we hobble them by breaking a few MOVE parts and then kite them with RANGED creeps?

Just going off of the cost to produce the Creeps is not a good enough way to approximate threat.

drusepth commented 2 years ago

The threat scores are actually slightly tweaked from the original build values as a way to estimate the value of my part vs my specific army composition/build. I don't value TOUGH that much because I prioritize kiting rangers that can typically outpace TOUGH units (or beat TOUGH units that prioritize MOVE over their attack strategy).

I do definitely want to rewrite this to take a bit more into account, though:

  1. Order of parts seems significant, but I might fork that out into some kind of opportunistic attack score since this one is largely just a high-level "is our army stronger than theirs"
  2. Similarly, I probably want to break this down a bit further so I can specify specific creeps/areas, so I can exclude e.g. my harassing units and better predict smaller skirmish outcomes instead of just "my army" vs "their army"

All that said, maybe @streed's work in setting up a gym might be the best way to tweak these numbers. 😉

jbury commented 2 years ago

Similarly, I probably want to break this down a bit further so I can specify specific creeps/areas, so I can exclude e.g. my harassing units and better predict smaller skirmish outcomes instead of just "my army" vs "their army"

This lends me an idea - calculating whether or not you can safely (i.e. without losing a whole unit in the process) snipe an enemy unit. Whether or not you can win a skirmish overall is probably simpler, but "getSnipeableUnit" would be super strong imo. Taking into consideration healing though. healing op.