5k2/pp4pp/4pp2/1P6/8/P2KP3/5PPb/2B5 w - - 0 30
Full PGN here:
[Event "Spassky - Fischer World Championship Match"] [Site "Reykjavik ISL"] [Date "1972.07.11"] [EventDate "?"] [Round "1"] [Result "1-0"] [White "Boris Spassky"] [Black "Robert James Fischer"] [ECO "E56"] [WhiteElo "?"] [BlackElo "?"] [PlyCount "111"]
1. d4 Nf6 2. c4 e6 3. Nf3 d5 4. Nc3 Bb4 5. e3 O-O 6. Bd3 c5 7. O-O Nc6 8. a3 Ba5 9. Ne2 dxc4 10. Bxc4 Bb6 11. dxc5 Qxd1 12. Rxd1 Bxc5 13. b4 Be7 14. Bb2 Bd7 15. Rac1 Rfd8 16. Ned4 Nxd4 17. Nxd4 Ba4 18. Bb3 Bxb3 19. Nxb3 Rxd1+ 20. Rxd1 Rc8 21. Kf1 Kf8 22. Ke2 Ne4 23. Rc1 Rxc1 24. Bxc1 f6 25. Na5 Nd6 26. Kd3 Bd8 27. Nc4 Bc7 28. Nxd6 Bxd6 29. b5 Bxh2 30. g3 h5 31. Ke2 h4 32. Kf3 Ke7 33. Kg2 hxg3 34. fxg3 Bxg3 35. Kxg3 Kd6 36. a4 Kd5 37. Ba3 Ke4 38. Bc5 a6 39. b6 f5 40. Kh4 f4 41. exf4 Kxf4 42. Kh5 Kf5 43. Be3 Ke4 44. Bf2 Kf5 45. Bh4 e5 46. Bg5 e4 47. Be3 Kf6 48. Kg4 Ke5 49. Kg5 Kd5 50. Kf5 a5 51. Bf2 g5 52. Kxg5 Kc4 53. Kf5 Kb4 54. Kxe4 Kxa4 55. Kd5 Kb5 56. Kd6 1-0
This is the kind of blunder that you'd expect from a strong club player, not from Bobby Fischer. Although I understand that Fischer was brilliant but inconsistent, and to be fair, the last chess championship matches had a share of blunders.
It's one of the single biggest misconceptions ever, it gets repeated endlessly
I don't think this is true, and engine evals aren't everything.
Two positions can have equal evaluations, but one can be trivial to play optimally and the other can be tricky and have a 10 move long sequence of "only moves" that are really hard to calculate. The latter is a much worse move, if you are not a chess engine.
In other words the correct calculation of subjective difficulty is a dot product, not simply a count of the number of equalizing moves.
It's hard to capture "obvious". One metric is how far you need to look down the eval tree to know a move is good, but even that is flawed.
still your move
If on move 29, you choose a move that is slightly worse but leave yourself in an extremely difficult position for you but an easy one for the other guy...
And then only on move 40 does the eval extremely diverge...
In my opinion, your real blunder was on move 29, not 40. Just because an engine could hold a position doesn't make it a reasonable move.
In practice, the move only added uncertainty for black. White faced easy choices, and black difficult ones.
I didn't disagree that Fisher thought the move was safe and miscalculated. Indeed, he didn't even miscalculate badly-- engines think they can hold the position.
I'm asserting that the move fails because it made the subsequent game more complicated for Fisher without imposing an equal penalty on his opponent. It made a bad miscalculation almost inevitable.
This is not something Black wants to do in matchplay chess in general. Usually he would be happy with a sterile draw and hope to take advantage of having an extra white in the remaining games.
Fischer, on the other hand, liked to play for a win in every game. And IIRC this match gave the defending champion draw odds, so the challenger had more incentive than normal to take risks, even in game 1.
Still, I generally agree with the analysis of Kasparov etc in this position. Fischer didn't miss the game continuation and he didn't assess the piece-down position as offering Black his share of winning chances. He more likely missed that after Bxh2 g3 h5 Ke2 h4 Kf3 h3 Kg4 Bg1 Kxh3 Bxf2 Bd2! White still traps the bishop.
This isn't true - that move takes the game from dead equal, to +0.7 (70 centipawns favor for Boris).
It isn't a total blunder but it's objectively a poor move.
Though this may be a situation where the weaker engine is actually more helpful in assessing the practical situation: +0.7 is a better reflection of the relative chances in a human game than 0.0.
I'm not qualified to analyse this, I read into it a bit more and apparently he was trying to complicate the game, the 1973 tournament book only marks it as ?!.
The engine knows what move would be a blunder for computer play.
It doesn't know what move made the position impossibly tricky for a human to maintain for black.
Every game that I analyze, there's possible moves where the computer will trade endless complexity for one's side for a couple centipawn advantage. These are moves that a human should not play.
I think the main point is that computers are so much better than humans at playing chess that what might be a reasonable move for them is effectively a terrible blunder for a human. It's like comparing a student driver with an F1 pro, and saying, "It's totally reasonable for the student driver to yank the wheel to the right when driving at 300 km/h, because an F1 driver would be able to recover from that." The point is that the student driver won't be able to follow up with near-superhuman ability to save the situation.
Of course, in this case, the engine doesn't think this is a particularly reasonable move; the evaluation just fails to show how bad it would be for a human-- even a near-superhuman chess player like prime Fischer-- to play.
FM Roese here (best DWZ 2399). I agree, figuring or even conjecturing that Fischer overlooked 30.g3 is totally insane. However he also did not saw the theoretical draw, this strikes me even more off. He never opened up about his idea, so in all likelihood he calculated something very stupid.
> if you plug it into an engine, it shows an equal evaluation
They criticized this argument rightly, but many basically repeated your mistake in the process of doing so. All engines use some evolved adaption of iterative refinement, be it either "Iterative deepening" (of an alpha beta search) [1] or "UCT" [2]. If you post computer evaluations you should at the very least give the reported nominal search depth and the engine name and version, otherwise you are just asking for trouble. On computer chess fora [0] they often post the whole log file bluntly.
[0] https://www.talkchess.com/
{"moves":[{"p":"P","f":"d2","t":"d4"},{"p":"n","f":"g8","t":"f6"},{"p":"P","f":"c2","t":"c4"},{"p":"p","f":"e7","t":"e6"},{"p":"N","f":"g1","t":"f3"},{"p":"p","f":"d7","t":"d5"},{"p":"N","f":"b1","t":"c3"},{"p":"b","f":"f8","t":"b4"},{"p":"P","f":"e2","t":"e3"},{"p":"k","f":"e8","t":"g8","castle":"K"},{"p":"B","f":"f1","t":"d3"},{"p":"p","f":"c7","t":"c5"},{"p":"K","f":"e1","t":"g1","castle":"K"},{"p":"n","f":"b8","t":"c6"},{"p":"P","f":"a2","t":"a3"},{"p":"b","f":"b4","t":"a5"},{"p":"N","f":"c3","t":"e2"},{"p":"p","f":"d5","t":"c4","x":"P"},{"p":"B","f":"d3","t":"c4","x":"p"},{"p":"b","f":"a5","t":"b6"},{"p":"P","f":"d4","t":"c5","x":"p"},{"p":"q","f":"d8","t":"d1","x":"Q"},{"p":"R","f":"f1","t":"d1","x":"q"},{"p":"b","f":"b6","t":"c5","x":"P"},{"p":"P","f":"b2","t":"b4"},{"p":"b","f":"c5","t":"e7"},{"p":"B","f":"c1","t":"b2"},{"p":"b","f":"c8","t":"d7"},{"p":"R","f":"a1","t":"c1"},{"p":"r","f":"f8","t":"d8"},{"p":"N","f":"e2","t":"d4"},{"p":"n","f":"c6","t":"d4","x":"N"},{"p":"N","f":"f3","t":"d4","x":"n"},{"p":"b","f":"d7","t":"a4"},{"p":"B","f":"c4","t":"b3"},{"p":"b","f":"a4","t":"b3","x":"B"},{"p":"N","f":"d4","t":"b3","x":"b"},{"p":"r","f":"d8","t":"d1","x":"R","c":1},{"p":"R","f":"c1","t":"d1","x":"r"},{"p":"r","f":"a8","t":"c8"},{"p":"K","f":"g1","t":"f1"},{"p":"k","f":"g8","t":"f8"},{"p":"K","f":"f1","t":"e2"},{"p":"n","f":"f6","t":"e4"},{"p":"R","f":"d1","t":"c1"},{"p":"r","f":"c8","t":"c1","x":"R"},{"p":"B","f":"b2","t":"c1","x":"r"},{"p":"p","f":"f7","t":"f6"},{"p":"N","f":"b3","t":"a5"},{"p":"n","f":"e4","t":"d6"},{"p":"K","f":"e2","t":"d3"},{"p":"b","f":"e7","t":"d8"},{"p":"N","f":"a5","t":"c4"},{"p":"b","f":"d8","t":"c7"},{"p":"N","f":"c4","t":"d6","x":"n"},{"p":"b","f":"c7","t":"d6","x":"N"},{"p":"P","f":"b4","t":"b5"},{"p":"b","f":"d6","t":"h2","x":"P"},{"p":"P","f":"g2","t":"g3"},{"p":"p","f":"h7","t":"h5"},{"p":"K","f":"d3","t":"e2"},{"p":"p","f":"h5","t":"h4"},{"p":"K","f":"e2","t":"f3"},{"p":"k","f":"f8","t":"e7"},{"p":"K","f":"f3","t":"g2"},{"p":"p","f":"h4","t":"g3","x":"P"},{"p":"P","f":"f2","t":"g3","x":"p"},{"p":"b","f":"h2","t":"g3","x":"P"},{"p":"K","f":"g2","t":"g3","x":"b"},{"p":"k","f":"e7","t":"d6"},{"p":"P","f":"a3","t":"a4"},{"p":"k","f":"d6","t":"d5"},{"p":"B","f":"c1","t":"a3"},{"p":"k","f":"d5","t":"e4"},{"p":"B","f":"a3","t":"c5"},{"p":"p","f":"a7","t":"a6"},{"p":"P","f":"b5","t":"b6"},{"p":"p","f":"f6","t":"f5"},{"p":"K","f":"g3","t":"h4"},{"p":"p","f":"f5","t":"f4"},{"p":"P","f":"e3","t":"f4","x":"p"},{"p":"k","f":"e4","t":"f4","x":"P"},{"p":"K","f":"h4","t":"h5"},{"p":"k","f":"f4","t":"f5"},{"p":"B","f":"c5","t":"e3"},{"p":"k","f":"f5","t":"e4"},{"p":"B","f":"e3","t":"f2"},{"p":"k","f":"e4","t":"f5"},{"p":"B","f":"f2","t":"h4"},{"p":"p","f":"e6","t":"e5"},{"p":"B","f":"h4","t":"g5"},{"p":"p","f":"e5","t":"e4"},{"p":"B","f":"g5","t":"e3"},{"p":"k","f":"f5","t":"f6"},{"p":"K","f":"h5","t":"g4"},{"p":"k","f":"f6","t":"e5"},{"p":"K","f":"g4","t":"g5"},{"p":"k","f":"e5","t":"d5"},{"p":"K","f":"g5","t":"f5"},{"p":"p","f":"a6","t":"a5"},{"p":"B","f":"e3","t":"f2"},{"p":"p","f":"g7","t":"g5"},{"p":"K","f":"f5","t":"g5","x":"p"},{"p":"k","f":"d5","t":"c4"},{"p":"K","f":"g5","t":"f5"},{"p":"k","f":"c4","t":"b4"},{"p":"K","f":"f5","t":"e4","x":"p"},{"p":"k","f":"b4","t":"a4","x":"P"},{"p":"K","f":"e4","t":"d5"},{"p":"k","f":"a4","t":"b5"},{"p":"K","f":"d5","t":"d6"}],"opening":{"ECO":"E56"},"site":"Reykjavik ISL","event":"Spassky-Fischer World Championship Match","result":"W","type":"C","players":[{"handle":{"domain":"UNK","value":"Boris Spassky"}},{"handle":{"domain":"UNK","value":"Robert James Fischer"}}]}
PGN [1] already supports all the features of BGN. The only complaint of not having long algebraic notation can simply be added as a comment, maintaining the simple readability of PGN. And then it works with the extensive ecosystem of existing tools.
There may be a reason for zero downloads.
For example, converting a 32 bit float to text for JSON, then parsing it back in later, is orders of magnitude slower than simply using the binary one. And in many languages it's not bit exact, so it creates a giant mess. I've worked on getting many projects that try to roundtrip floats correctly since the JSON layer was breaking projects (hint: C++ has precisely one, corner and rarely used, format/parse that promises to roundtrip, and this is not even guaranteed across compilers or systems or versions - only one compiler version. To do better you import your own Grisu or successor and implement tests to catch system errors.... or switch to hex format, which is much nicer). So yes, I have done tons of JSON, but I get called mostly to fix/remove/mitigate JSON since groups and people know I am the guy that fixes idiot-added JSON where it breaks things.
Next, JSON is also an order of magnitude bigger than many other formats. There's good reason AI models are not JSON, video is not JSON, etc. JSON slows down major pipelines because of the size increases and slowness of formatting and parsing compared to simply using a smarter format. Junior engineers love JSON because they don't understand the pros/cons and can jam it everywhere. Many projects I've been called in to speed up were slow due to "JSON all the things!".
Next, I've also written high performance chess engines (and all sorts of custom searching engines to do stuff like find proof games, do various things related to retrograde analysis, and construct richer data for endgame tables for my own analysis, some published...), with all the bells and whistles and bit tricks and used things like Z3 to invent better magic bitboard constants, which also improved state of the art there. So I also know that space.
Naming your format BGN for "Better Game" Notation (?) to replace PGN, when your format breaks pretty much every thing PGN was designed to be used for, and is widely used for, is simply ludicrous. It's not a better game notation - it's an unusable game notation. You want it to be a searchable, queryable format, of which many already exist, yet again yours is going to be orders of magnitude slower since you chose JSON, replacing at most bytes of chess move info with variable length (thus ensuring you cannot random access information but must parse the 1000+ characters before move 50 to see move 50...) 25+ to ~40 bytes each. Your format is simply a terrible data format, solving nothing.
And most big engines and certainly all big chess database software support all the major formats.
Did you look at either the motivation for PGN or for existing chess query supporting database format before you made this? Or in the intervening 5 years?
So I don't think you have improved anything over the previous technology. There's a reason you have zero downloads over 5 years.
Here's a hint: if you're going to make something claiming to be a better X, then you should reproduce what X was designed for, and then, and only then, add features.
> As in industry standard everyone-uses-it JSON
That's PGN. As in industry standard everyone-uses-it PGN. If you're not familiar with the space I can see why JSON has more human unreadable appeal.
Good luck getting to 1 download.
UGN was designed with SPARK and AWS S3 pbzip2-aware threading JSON readers in mind. For an analysis of a year's worth of lichess games -- over a billion, maybe more -- I believe UGN is a good solution. Try bucketing clock time vs. blunders or castling analysis or opening vs. ELO on 1 billion PGNs. Not simple search; aggregation. In the end, UGN is an information architecture; JSON is used as a convenient implementation/representation but it happens work well with SPARK and S3. And you can reliably use jq or even grep on the same UGN files. I didn't feel the need to create yet another binary format.
Anyhoo.... We're up to 60 downloads!
No one uses PGN for that. Strawmen are easy to defeat.
Heck, I can crush your example by simply using a proper binary format, fixed length records, and reading flat files directly into memory, all for about 1 hour of coding to transcode your format into something designed for analysis.
Better yet, compare your examples to any of the current best chess DB formats. They all support all your query examples a massively more. And are properly designed, tested and improved over decades of actual use, by professionals and researchers alike.
People have been doing billion+ chess game analyses for well over a decade. Chess.com added 1 billion games in Feb alone two years ago , they just passed 100 billion games total in Jan, they regularly run all sorts of analyses on all the games, and provide datasets and services to researchers for similar work.
It's hard to improve on what you do not understand. If you spent some time understanding the space you may be able to improve on it. Until then a lone wolf, unaware of what is in the space, will simply de-invent a worse wheel.
Also it was probably not objectively the best move (and definitely not Spassky's best game) but Tim Krabbé made a list of 110 most fantastic moves ever played, and he put Spassky's 16...Nc6 against Averbakh as no. 1 (certainly an unorthodox choice):