75 coaches online • Server time: 22:50
* * * Did you know? Up until now, 1437211 players have died on the pitch.
Log in
Recent Forum Topics goto Post Taking into account ...goto Post Borg Invasiongoto Post Almanac Star Players
Christer
Last seen 51 minutes ago
Tomb Kings
Star
Tomb Kings
Record
59/24/38
Win Percentage
59%
Shambling Undead
Super Star
Shambling Undead
Record
51/5/10
Win Percentage
81%
Overall
[R]
Star
Overall
Record
230/56/81
Win Percentage
70%
Archive

2022

2022-03-28 15:32:21
rating 5.8

2021

2021-10-16 20:23:20
rating 5.9
2021-09-02 11:32:40
rating 6
2021-08-27 23:04:22
rating 6
2021-08-06 23:08:34
rating 5.8
2021-07-26 01:26:31
rating 5.8
2021-07-20 02:46:59
rating 6
2021-07-07 20:30:33
rating 5.9
2021-06-14 14:24:30
rating 6
2021-03-09 00:39:11
rating 5.9

2020

2020-12-09 11:20:11
rating 6
2020-11-30 18:03:36
rating 5.8
2020-10-13 11:59:57
rating 5.9
2020-08-08 22:48:43
rating 5.8
2020-08-07 21:32:26
rating 5.9
2020-03-18 14:09:47
rating 6

2019

2019-12-13 21:32:02
rating 6
2019-11-25 16:00:40
rating 5.9
2019-04-14 23:33:08
rating 6
2019-04-07 16:59:39
rating 6
2019-04-07 00:55:26
rating 6
2019-01-08 15:27:38
rating 5.9
2019-01-05 02:58:18
rating 5.8

2018

2018-08-17 17:28:31
rating 6
2018-08-15 00:05:40
rating 6
2018-07-17 20:17:40
rating 6
2018-06-28 14:28:08
rating 5.9
2018-05-23 17:55:10
rating 6
2018-05-10 22:42:46
rating 6
2018-05-09 19:42:28
rating 6
2018-04-30 10:44:23
rating 5.8
2018-04-23 12:33:02
rating 5.8

2017

2017-04-23 18:06:35
rating 6
2017-04-06 23:00:56
rating 6
2017-04-03 19:06:00
rating 6
2017-03-29 22:35:46
rating 6
2017-03-25 16:18:39
rating 6
2017-03-11 21:24:26
rating 6
2017-02-14 14:23:58
rating 6
2017-02-10 14:54:03
rating 6

2016

2016-11-30 00:04:21
rating 6
2016-11-27 23:40:04
rating 6
2016-11-17 18:18:07
rating 6

2015

2015-09-06 23:59:26
rating 6
2015-01-24 15:56:29
rating 6
2015-01-22 13:10:32
rating 6
2015-01-19 21:20:53
rating 6
2015-01-10 19:03:45
rating 6

2014

2014-09-09 15:35:53
rating 6

2013

2013-04-26 11:48:40
rating 5.7

2012

2012-12-18 17:37:29
rating 5.9
2012-11-18 18:19:19
rating 6
2012-09-25 13:47:16
rating 5.6
2012-08-15 12:31:53
rating 5.9
2012-08-10 23:12:22
rating 5.9
2012-06-27 22:53:48
rating 5.9
2012-04-10 11:56:38
rating 5.9
2012-03-07 13:52:00
rating 5.9
2012-02-16 16:59:56
rating 5.9
2012-02-04 19:00:41
rating 5.3

2011

2011-07-25 23:32:43
rating 5.6
2011-05-23 13:12:52
rating 5.6
2011-02-04 14:26:18
rating 5.4

2010

2010-03-26 11:38:41
rating 5.1
2010-03-01 12:16:53
rating 5.6

2009

2009-12-08 16:40:30
rating 5.8

2008

2008-09-11 14:47:19
rating 4.1
2008-02-26 21:16:54
rating 5.3
2008-01-21 01:01:58
rating 5.6

2007

2007-11-06 21:23:14
rating 5.1
2007-10-16 00:26:11
rating 5.4
2007-09-30 17:10:03
rating 5.4
2007-09-30 12:01:42
rating 5.3
2007-08-09 12:14:57
rating 4.5
2007-08-06 12:02:52
rating 4.9
2007-08-03 17:56:21
rating 5.4
2022-03-28 15:32:21
21 votes, rating 5.8
The anatomy of a bug, episode 2
With the work on Gamefinder 2.0 progressing well and us just pushing a test version for people to play with to the site, I figured I'd bring back this blog topic with a description of a complicated problem and how it's being addressed in the new Gamefinder.

For a while, we've had recurring instances of people being scheduled to two games at the same time with the current game finder. It's not super common, but it does happen and wastes a bit of time for coaches and staff alike. It took quite a long time to figure out why this happens and how, and it has to do with a complex internal state of the game finder system. I'll give a high-level explanation of what the gamefinder does and how it functions, and then go into the bug itself.

The gamefinder system maintains a list of "possible matches", and an internal state for each match saying which coach has done what. There is a "two step" accept sequence, where both coaches first need to "accept" a match, and then once both coaches accepted, they both need to "start". This is done like this because of how the system allows multiple offers to be sent at any given time (funnily enough, this is the main way to guard against a coach being scheduled against multiple opponents).

So in a sense, a match goes from "Default" to "Accepted" to "Started" with both coaches involved needing to accept or start to push the match forward in the sequence.

Now, the bug relates to the "half started" state, where only one coach has clicked the start button. Essentially, if a coach clicks to start, and the opponent doesn't, the game will time out after a while and "release" both coaches. However, if a coach clicks to start, and then decides it's taking too long and simply reloads the page, there will be a pending match to start and the original coach will have no feedback.

If the opponent also clicks start after the original coach reloaded the page (which took them to the start page for the gamefinder), the match will be scheduled and the opponent will be launched into the game. At this point, the original coach doesn't get the information and can schedule a second game at the same time, unaware of the first one.

As a corollary to this, there is a case where, because of the multi-offer feature, coaches can get a dialog to start a match while the opponent is responding to another match. In certain situations, this could cause a second start dialog to show up almost immediately after the first one has been resolved which could appear as if the start button didn't work and the coach just clicks again without noticing that it's another game.

With Gamefinder 2.0, I wanted this to not be possible, and what we've done is something that is not really visible to coaches unless you look really carefully

In addition to maintaining the matches and their internal state (which works largely in the same way), the system also maintains a list of "start dialogs", which have their own states as well. They can be either "active", which shows the match start dialog to both coaches for a given pairing, or "inactive" which means that one of the coaches is already responding to a dialog for another game. For a typical coach, this will show up as a delay between clicking to accept a match offer and the start dialog showing up.

If the opponent clicks to start the other game, however, all other matches for that coach will be cancelled and the offer will disappear from view (just as if they clicked to cancel it).

In addition to maintaining this list of start dialogs, the system will also automatically re-show the dialog if a coach reloads the page. To "cancel", we've also added an explicit button for this which will allow coaches to change their minds and move on to find another game without having to wait for the full timeout.

This was an interesting problem to solve, and I wanted to share how it was dealt with because it feels fairly elegant and will hopefully resolve the issues we've had in the past with this.
Rate this entry
Comments
Posted by erased000034 on 2022-03-28 19:37:06
Ah now is clear... this happened to me one time: I started a match accepted by my opponent, but he taken too much to start the match and after 5 minutes i decided to find another match. But after this my eye fall down on my summary page ( I keep two screen open at the same time, one on the gamefinder another in my fumbbl page) and I discovered to have a scheduled match! Luckyly my opponent was still waiting me and i did not start a second one: so no big pain for both

Thanks a lot Christer to have corrected this bug in so elegant way :-)
BTW....

Any update on the BlackBox launch with BB2020 ruleset?
Posted by Swampserpent on 2022-03-29 01:27:03
any update on redrafting, blackbox or converting ranked? those are all important issues.
Posted by DrClaes on 2022-03-29 05:56:00
Thanks Christer for the information on the problem solving. I have had it happen a handful of times over the past couple of years.
Posted by naytsyrhc on 2022-03-29 11:50:16
Thx for clarification. Stateless Clients are a hell to deal with. F5 (Page-Reload) also is a nightmare. AJAX and other technologies have been introduced to overcome theses flaws but still can't solve everything. Just from reading, your solution sound very elegant indeed. Hope it will really fix it.

But there is one question that's coming up for me every time I see the gamefinder: allthough it is nice to have some kind of choice, I think it's slightly unfair in the aspect of pairings. I often get offers for teams I really don't see to try it (e.g. my Goblins get offers from Dwarfs and Chaos Dwarfs with equal TV, higher TV Elves or similar - that would allow me to induce some stars or weapons or even bribes) will never offer a game. Same applies to "spinning" with Elves. Tackle-Heavy-Teams offer a a game easily, "normal" teams try to avoid me.

So, even if this is probably a different topic: wouldn't it be better to randomly choose the opponent from all spinning teams? Match-Making could be done according to matches played, maybe even coach-experience could be used for matching or something like that?
Posted by MattDakka on 2022-03-29 13:58:51
@naytsyrhc:
BB rosters have paper-rock-scissors elements, so being able to choose/turn down offers is a way to play teams like Amazons being sure never to face Dwarfs and Chaos Dwarfs, if a coach really wants, thus skewing their expected win rate. Tier 3 teams requiring some inducements can be avoided, while if they could be activated with a certain TV gap (for example 100 TV) they could get them.
The rosters are supposed to be played against a wide array of opponents (or have some inducements, in case of tier 3 teams) so yes, I agree with you that a random scheduler (not totally random, though), would be the best way to arrange games in a supposed Competitive division.
When you can choose (or your opponent has to accept a match offer) there can't be true competition, instead, the competition shifts from the in-game to the off-game dimension, i.e. you have to know which are the advantageous match-ups, rather than being actually good at playing the game on the pitch. Moreover, if you are a Legend, even if you offer a fair game on paper, many opponents will not accept it. This is discriminatory and against the fair competition. Everybody should be able to compete in a Competitive division. If a Legend has more difficulty in order to find a game he can't play as many games as the other coaches in the same division.