Blunder database - request for input
A
Alfie Kirkpatrick [Developer]
Am thinking of implementing a personal blunder database as this seems to be a popular new feature on Galaxy and, well, anything they can do...etc!
Feel free to vote for this feature but also add suggestions for how it could work. If you've used the Galaxy feature, what is missing or how could it be improved?
One of the things I'm puzzling over is the categorisation. Galaxy has a number of simple categories but some are more subtle:
- Opening game: within X moves of the start?
- Middle game: middle 50% based on move count?
- Race: trivial
- Blitz early/middle/late: how to identify blitz and phase of game?
- Attacking game: how is this different to blitz?
- Mutual holding game: is this both players having advanced anchor (https://www.deluxebackgammon.co.uk/guides/backgammon-the-holding-game-strategy)
- One man back: trivial I think
- Holding game: presumably based on our position
- Deep anchor game: holding point deep in opponent's home board
- Endgame contact: ???
- Crunching game: is this useful?
- 6 prime: trivial. Could split into theirs/ours?
- Backgame early/late: X points behind, or multiple anchors? How to identify phase?
- Late game hit: is this useful?
- Close out: not sure what this is?
Personally I think this is too many categories, but I don't know. Others I can think of:
- Missed cube
- Incorrect cube
- Incorrect take
- Incorrect pass
- Incorrect loose hit
- Missed loose hit
- Incorrect slot
- Missed slot
One worry I have is that the categorisation could well change over time as the categories are refined, but am not sure how to handle this as categories cannot be assigned dynamically when there are lots of matches to consider (performance).
Would it be reasonable to limit the blunders to, say, the last 1,000 recorded?
Does anyone have a view on what should constitute a blunder, in terms of equity?
If you are willing to help refine the categories as things go forward, let me know and we can connect outside of this feedback forum...
Thanks
B
Brad Mampe 🇺🇸 (idiotvig)
Not sure how feasible this is, but no one's done anything with x-away, y-away analysis before. I know there are some leaks at key scores I'd really love to review.
Everything to date has been match-holistic, and I think there's a real opportunity for match score-based analyses to take advantage of.
J
John Pollard (johnypoll)
A complex topic. I agree the galaxy list is too long and missing overview info, even as basic as how many blunders are in each section and where the most costly blunders are hiding. Also filtering on double/take data seems crucial. At the top level I'd like to know if I lose most equity on doubling, or on taking for example with missed doubles and too good doubles info. I see cube info as the most important thing as most equity is lost there. I suggest not trying to do too much initially but to get the structure in place for what overview data you show and what filters and categories are available.
R
Rodryk Schönfeld (rodgammon)
Hi Alfie,
This feature on Galaxy is great. Making it even better on the Hub would be fantastic. - Important features which I am missing on Galaxy (of top of my head):
- Database should be downloadable in a format that is compatible with XG
- the solution should not be visible 'at first sight' but only on request
- new entries should be highlighted on the level of the overview of the categories. So that one sees: "Oh, there is a new entry in category XYZ"
- would be great to see the best 3-5 moves, not only the best one, as it is easier to recognize the logic behind the bot's "thinking"
- a higher evaluation than 2-ply or 3-ply would be great. XG+ would be more reliable and XG++ would be fantastic
- 1000 blunders would be great but given that what I suggessted above (and suggest below) consumes bits and bytes and energy, a smaller number would be okay as long as the database is downloadable
- would be great if the downloaded blunders would be marked as downloaded and one could select only the 'not yet downloaded' ones for download
- would be great if one could sort the blunders in each category by error rate
- would be great if one could look at the blunders also w/o categories. Sorted by error rate would come handy in this general overview.
- would be great if the categories would be split into checker play blunders and cube decision blunders. The latter one could be split into doubling-side blunders and taking -side blunders
- checker play and cube decisions often vary by score. Seeing what would have been correct in Money Game, DMP, Gammon Go and Gammon Save would be fantastic.
The above suggestions are nice to have. It would be great to have basic features in a Beta launch.
Best regards,
Rodryk
A
Alfie Kirkpatrick [Developer]
Denis-George Constantin (playhunter), Alex Zamanian (z), Ian Davidson 🇬🇧 (diamondg), Liviu Ionescu (speedy)
D
Denis-George Constantin (playhunter)
Alfie Kirkpatrick [Developer] personally I too think there are too many categories. I would like to have such a Blunder Database be as generic as possible.
Main categories of checker plays:
- opening game (should be game start with first 3 moves from each player)
- middle game (anything after that, until being able to directly introduce the last four checkers in home base if there is still contact, or until pure race)
- end game
Subcategories of checker plays:
- blitz (usually this occurs in the opening game and sometimes in the middle game as well), I think a blitzing play should be accounted for every time when we do send our opponent on the bar and make at least one point in our home base at the same time, or send him with two checkers on the bar while making at least one point in our home base) .. for example opponent opens with a 62 or 63 (one out, one down) and we roll a 33 or 55 or 66 - with 55 the move is obvious (is a must go for blitz) while with the 33 and 66 may depend on score but I think is a good example to show the difference between an attacking play (when we hit but make no home base point, and a blitz play when we hit and make our five point with 33 or hit both and make the ace with 66) .. blitz has everything to do with increasing our gammon chances early in the game by closing out our opponent on the bar as fast as possible
- prime (any 4 in a row while having at least 1 opponent's checker behind)
- hold (any anchor from 24 to 18 and yes, can vary according to position)
- back game (any position with 2 anchors in opponent home base)
- late game hit (these should be the type of positions for as soon as we hit a lucky shot after our opponent started bearing off and we are still not having our home base fully closed, or a full six prime .. I have observed many errors)
Main categories of wrong Cube action:
- Offer (with the following four subcategories enumerated below)
- Accept (with the following two subcategories enumerated below)
- Reject (with the following two subcategories enumerated below)
Subcategories of wrong Offer Cube action:
- incorrect cube (too early - no cube)
- missed cube in double & take
- missed cube in double & pass
- too good (should go for gammon)
Subcategories of wrong Accept Cube action:
- accepted cube in too good to double & pass
- accepted cube in no double & pass
Subcategories of wrong Reject Cube action:
- rejected cube in no double & take
- rejected cube in double & take
Generic, a blunder should be an action which loses 0.08 equity. And an error should be an action which loses 0.02 equity. BUT I would allow players to set their own level as they wish AND also allow them to adjust this setting for each category in part (including subcategories). For example I would set the level of errors be 0.02 in endgame phase but 0.08 in back game situations (and blunders from 0.04 in endgame and 0.12 in back game). Such a setting would also allow players to only look at their blunders and not at their errors.
1000 blunders I think for sure would be too low, especially if you will include here also errors and not only strictly blunders. 10000 much better. But maybe split them in: Errors / Blunders "this week"; "this month"; "last 3 months"; "last 6 months"; "last year"; "last 10000".
A
Alfie Kirkpatrick [Developer]
Denis-George Constantin (playhunter) really helpful thank you. Lots to ponder!
Regarding the number of blunders to handle, it comes down to cost and flexibility. At the moment I run gnubg and convert to a text format which is stored in the AWS filesystem (one per match). When you review a match, it pulls that file and displays it - this is cheap but it's not a database - you cannot 'query' these files for blunders.
So I'm going to have to pull out individual blunders/errors at the end of a match and store them in the database for each player. This leads to a problem if the definition of categories change, because I would potentially have to re-run the categorisation for all blunders for all players (a pain, and expensive).
The database is also limited in terms of query capability. If a blunder falls into multiple categories this is difficult to query.
My idea is to store errors/blunders by date order for a player. I can then query for the last N blunders and categorise directly in the browser from the results. It would be a lot more dynamic - once the blunders are loaded you could slice and dice as needed. I could potentially provide a "Load More" button, so you could keep loading more and more from the history, on the assumption that many players would be happy with the first 1,000.
Storing errors as well as blunders kind of breaks this approach, because most people will only be interested in blunders, but errors will far outnumber the blunders and much more data would need to be fetched. I need to process some matches and get a feel for number of errors/blunders in each match according to your definition of 0.02 and 0.08.
You might ask, "why is the Hub database so limited?!" It's using DynamoDB which is super-fast and reliable but doesn't support traditional database features such as joining of data. To give you some idea, a simple get is 1ms, a put is 5ms and a query is 10-20ms even at peak times. And it doesn't require any maintenance 😊.
D
Denis-George Constantin (playhunter)
Alfie Kirkpatrick [Developer] some more ideas, taken from Eran and his OpenGammon website:
"The last feature I want to talk about is "user insights". User Insights keep track of your errors in a way that is useful to you. It shows you your error rate (ER) per position category (race/holding game/back game/etc.). Moreover, you can practice your three worst categories in a personalised quiz that contains puzzles in those categories."
A
Alfie Kirkpatrick [Developer]
Denis-George Constantin (playhunter) Eran is doing a great job with OpenGammon!