Play Home Contribute GitHub Join Us Discourse Staff Members GitHub Contribution Guides Team

Discussion: Final Judging


Will the final judging be single fight with one seed vs each opponent?

I’ve noticed that some seedings dramatically favor one team over the other in a way that can’t really be countered. In such instances, coins spawn in clusters around workers of a specific team who just happens to be there. Using Math.random() can provide a more favorable seed for a specific matchup, but less favorable ones on others, making its net effect negligible. Also, since Math.random() is deterministic, we can’t randomly affect the random seed to reduce the effect of random chance.

Is it possible to do best of “x” vs each opponent with unique seeds to ensure these outliers don’t effect scoring heavily?


That’s a good idea. If we have time to build it before the final ranking round, we’ll give it a shot. Otherwise, it’ll be a pairwise match between the top N (maybe 150 or 200), so if you’re in the top N with the preliminary rankings, you will fight one match against each of the top N on the other team.


I’m currently doing a test ranking of N=200, 40,000 matches in total. Running on a 32 core cluster, it looks like it’s going to take just under 3 hours (this is a great benchmark for our production hardware, demand peaked at about 22,000 requests per minute. Alas, I digress.)

Building the “best out of x” feature would require labor time and “x” times more computation time. I’m very hesitant to build this at the very last minute, as the effect you described affects all players equally and randomly (given that V8’s PRNG has a uniform distribution). In addition, I think over 200 games the effects of this will be negligible, as every game is counted equally (unlike the Bayesian leaderboards in which beating a strong player disproportionately increases your ranking). On the other hand it would slightly increase the resolution the rankings.

Once the N=200 rankings are completed, I’ll see if anything is dramatically off and then make a decision. I think it’s about 5% likely that I decide to build this feature before the final rankings.


I was wondering also if the final ranking could be based on more than one match per opponents. You have answered.
Apart the problem to develop it on time (I understand), taking for example 3, or better 5 matches for each opponent could be really great. 3h*5 = 15h, it’s still acceptable.
Maybe for the next level :wink:


As far as I understood, the final rankings are not based on 1vs1 fights, but by rate of win - loses.

Because of that I feel like the best accurate solution would be to have those 200 games for each player, but then make a more exhaustive research with the top 100.

@schmatz 200 games does not make the effect negligible. There are games you are meant to win even in unlucky circumstances - against weak players. From 200 games, high ranking players will have issues with, say, 50 of those matches. If from 50 of those matches you are unlucky in 10, that might cost you several positions in the ladder.
Hope it has sense.


@hjavierog You do have a point, and I plan to implement different ranking structures in the next tournament, perhaps playing all games with random seeds multiple times. However for this tournament, the rankings will be performed with the original 1 pair 1 match methodology, as the PRNG has a uniform distribution and you’re equally as likely to gain an advantage from this perceived effect as you are to be disadvantaged.

In any case, it’s certainly better than most single/double elimination-style tournaments!


I encountered a lot of seed-based favoritism in the game. Assuming that the code is exactly the same, whichever side the seed favors, will ultimately win. That being said, perhaps you can do an approach where the coins are spawned in a random, but mirror way across both sides of the field?

I had a great time guys, looking forward to the next competition.


It would interesting to do a “duplicate bridge” tournament style test.
Play two games for every pairing of opponents.
Use a your typical randomized placement of items for the
first game, then invert placement of items for the second game.
So say for a 100x100 grid, if the first game placed a gem at
(5,5) then in the second game place it at (95,95) in the second game.


@ddebrito but then it’s likely that you still end in a draw. The only way you’d come out ahead is if you could beat the seed based favorite to begin with, which is the reason a fix is necessary.

My algo can come back and win against some really unfavorable positions, but AFAIK being down 40 gold when you have two or less workers is unrecoverable. If you’re up 40 gold, send a soldier, wait for 10 more and send a mage. The soldier + mage will siege the enemy spawn position (since he’s behind he can’t possible assemble a mirror force by the time you reach him). Once a mage is camping a spawn position it’s not possible to do a favorable trade. It can be possible to recover, but not favorably.

Basically you need to survive long enough that your superior pathing eventually ends up in a gold advantage. But if the enemy capitalizes on his position this is pretty much impossible. Sadly I didn’t realize this until tournament end.

Looking at my losses, there’s no way I could have won them, which is disappointing.


It’s okay, you did very well. I guess as long as we ALL have to deal with it, it’s still fair to a certain extent. I’m sure next one would be better.


@Bellardia Absolutely right (regarding 40 gold difference early makes you lose).

However that not all “bad seeds” are bad themselves. Of course a gem appearing nearby an enemy worker is unlucky, but sometimes a sudden spawn of coins somewhere could be detected and send a worker straight away, top priority.

I found myself in several situations in which this feature could have beaten an unlucky seed, but did not have time to developed it, damn!

In any case… I missed the captain in the fights xD It turned out to be a pretty bad unit, am I right guys?


Yeah, I don’t know anyone who used the captains to great effect; a failure of my unit-balancing spreadsheet, I think. I think I will upgrade their power now that the tournament is over to make it a little more interesting. Any other balance suggestions?


Well, it depends in which direction you want to move the game. Maybe we can create a whole thread for that?

As a short brainstorm, I’d lower the power or remove regeneration from wizards.
To put captains in game, I’d give them some interesting late-game ability that compensates its cost. A warcry to enhance nearby units attack, for example.


Yeah, unfortunately the captain suffered from a severe case of being beaten by everything else in the game. :smiley: It just doesn’t have the attack speed to overcome the waves of munchkins in order to beat the shamans that were dealing most of the damage.

With that in mind, from my perspective (KaosWalking, about 14th place), this was by far the best tactical strategy, to the exclusion of almost everything else. Of course, I didn’t always win, but I very nearly always beat people who collected the same amount of gold as me using this 1/2 ogres + as many shamans as I can afford + munchkinnnnnns technique.

Someone else posted while I was typing this, but I’d also say the problem is how powerful regeneration is - when an ogre can barely beat one regenerated munchkin, despite being 2.5 times the cost, it’s always going to be worthwhile to ensure you have as many casters as you can possibly get.

I’d also say that the fliers were too weak - at least, I don’t remember seeing anyone use them effectively who wouldn’t have beaten me anyway - they just die much, much too fast to the ranged attack of the casters. Either the caster range also needs decreasing, or the flier range needs increasing (perhaps with less damage to make up for it).


@alejrb Archers were interesting once you had in the battlefield 2-3 wizards.
The archers basically have a great dps that kills down the enemy soldiers wave very fast, allowing your wizards to cast poison clouds that reach the enemy wizards and win the battle.

They do not win a battle that you are losing, though. If enemy has more gold than you the best you can do is hope for a tie, and therefore the 60 gold is better spent in a wizard and two soldiers.

In battles that are balanced or you are winning sometimes you tie because your army cannot push enough the enemy soldiers wave. Then the archer becomes crucial, is a tie solver xD.

I never found a situation in which two archers would win me the game, though.


Maybe that’s why I was a bit behind you haha. I’m still not sure they have a big enough impact though.


Almost positive human archers have an advantage over the ogre ones. Perhaps it’s their positioning, not sure. I’ve had mirrors battles that go decisively in favor of humans because of the archer.

The heal in general is a terrible mechanic. The mage counters mass soldier play, but its heal makes it worthwhile. It’s kind of a confused unit.


The strategy I have for countering this scenario is to let the soldier through to attack my base, and then spawn a munchkin to attack the soldier while she’s going after the base, followed by an ogre a second and a half later to finish off the soldier and go after the librarian. If the orge can take out the librarian before the reinforcements arrive to protect the librarian, it’s a favorable trade.