Lorem ipsum dolor sit amet, elit eget consectetuer adipiscing aenean dolor

Data collection for guild wars

Hi gemmers / GoWers / matchers,

Just wondering if anyone would like to help me collect data relating to guild wars?
In the most raw form - videos of entire GW matches including tapping on the opponent hero once and finding out what class they’ve got equipped. Tap each troop once to display their magic level.

From such videos, it might be possible to extract all the raw parameters required for modelling the GW score calculations.

  • troops surviving, and summoned and killed
  • turns taken on both sides
  • mana gained, expended, left over (total and per troop)
  • damage dealt, taken whether AoE, splash, direct
  • troops of the correct colour
  • score at the end of battle, and which battle it is (1-5)

Probably non-factors

  • life healed
  • player’s stat bonuses (should be calculable from troop armor, life, magic and attack)

If you’re meticulous and can either

  • submit parameters from all 5 battles in text/data form; or
  • help with looking through videos and transcribing into data form

Let me know as well - your help will be very much appreciated!

Big unknown - it might turn out to be quite simple to decode with only a few data points, or it might turn out to be a futile exercise. But I hope it will be an exciting journey :laughing:

Join me here: https://discord.gg/RzMCtwA

Many thanks.

From just after base score was changed to a flat 300 and the formula was divulged.

Official Formula is here:
https://gemsofwar.zendesk.com/hc/en-us/articles/360000340936-Point-Scoring-for-Guild-Wars#:~:text=Setting%2024%20unique%20troops%20in,first%20win%20of%20each%20day.

In text form:
BASE_SCORE + BASE_SCORE * (COLOR_BONUS + SURVIVAL_BONUS + SPEED_BONUS + MANA_BONUS + DAMAGE_BONUS)

I’m having difficultly finding a source on this, but I believe SURVIVAL_BONUS weighting or limit was changed, possibly after this point. There were no other announced changes to how this formula works to my knowledge.

The methodology of each category is explained in the link. Spelled out point blank.

Remember for the first battle of the day, you have to subtract your given defense uniqueness bonus, since thats just tacked on to the given score display while having nothing to do with the battle.

So, you could glean this with relatively few samples, but doing so would require intentionally sacrificing points to do so. Alts in lower brackets would be a good way to do this.

The easiest way you are going to get consistent trials here is to break color and use a team that has little chance of dropping the turn in a lower bracket to glean how much SPEED_BONUS has changed and the upper bounds of the score threshold. So you want to get “perfect” marks in MANA_BONUS and DAMAGE_BONUS and SURVIVAL_BONUS for a few initial trails, while only dropping your COLOR_BONUS by a known amount (which should still be 50% per troop of matching color, per all the information we were given to start). If you aren’t willing to assume COLOR_BONUS has not changed, you could glean this information with a few more samples by using a team with one fewer or one more correct color, since SPEED_BONUS (per action) is very small and COLOR_BONUS is relatively large. With COLOR_BONUS contribution % known and SPEED_BONUS contribution % per action known, you can calculate the upper bounds of a guild wars score. This is as far as I bothered to go with my initial tests. So what would be the best way to get the precise values of the remaining variables?

The next easiest thing to remove as a variable would probably be Survival Bonus. You can certainly use a team with something like a Fire Bomb that never actually gets hit by the enemy or allows them to take more than a single mana match after you have gleaned your per action score contribution, however, there is no way to tell if sacrificing your own Fire Bomb would count as you taking damage or not (lowering both your DAMAGE_BONUS and your SURVIVAL_BONUS, making it difficult to get DAMAGE_BONUS), since this was not explicitly stipulated for the rules (it is that instakills and devour do not contribute to either damage bonus calculation, but there is no significant data on if this includes self-induced instakills outside of death mark). An alternative to try would be to enter a battle with less than a full team, and still completely shut out the opponent while counting your actions. Remember, the scoring criteria explicitly states that it counts troops alive at the end of the battle, not how many have died. With perfect MANA_BONUS and DAMAGE_BONUS, you know exactly how much SURVIVAL_BONUS is for each troop if you ended with a three troop team, since you already know how many points you lose for not having a troop of that color and how many you lose for each action you take and what your max possible points for that battle would have been.

Once you have removed SURVIVAL_BONUS as a variable, the last two remaining variables are MANA_BONUS and DAMAGE_BONUS. You’ll know how much score both of them combined can contribute, but not their ratios to each other. If we are talking alts will probably be gathering this data either way, you are likely going to have to run into a team with non-threatening spells that you can barrier-tank while allowing them to take a lot of mana matches. Of course this, again, requires an assumption that the damage nullified by a barrier does not count as damage. Alternative strategies like Web and/or Entangled could be employed, but your goal here is to land with at least 4 times as much damage given as the opponent while recording every point of mana taken for both sides (as well as how many actions were taken). With your DAMAGE_BONUS maxed out for said battles and a few trials with a variable MANA_BONUS, you should be able to zero in on how much MANA_BONUS is contributing which by process of elimination would also give you DAMAGE_BONUS as the final remaining variable. The alternative here would be to minimize your DAMAGE_BONUS by purposely initiating a war of attrition where you are taking more damage than your opponent but healing way more in kind, but that would require so much more data to be collected to ensure that you are recording a correct MANA_BONUS (which would then be very very difficult to keep maxed out or consistent between battles).

All this assumes the posted methodology for how the formula works is accurate and there aren’t any major bugs impacting single score calcs. Repeated anomalous results could be an indication that one or more of the criteria does not work as stated or there are additional criteria that are not stated.

3 Likes

I think most people who’ve been around will have seen the “official word on scoring”, which may or may not even be accurate - it could be paraphrased pseudo algorithm just to illustrate the basic premise of the four things to look out for. Actual code could look nothing like that, or may even haven’t changed over time without notice.

But if the formula is as simple as shown with only a few variables, solving it could be quite trivial. e.g. There are only so many number that can be fitted into a 5-variable equation that will hold true for 20 different scores. That is, of course, if it is that simple. Maybe it is? That’s something to find out.

That would be my preferred approach rather than doing controlled, targeted testing to work out single variables at a time. In this age of big data, analysis often happens after the fact on volumes of data, and large scale simulations are more often than not faster than inspecting individual outcomes sometimes.

But who knows, there are possibly much smarter people than I who can make use of raw data once it has been collected and tabled properly. So that’s just my first goal - data collection.

The data is a matter of national security. Analysis is futile