←back to thread

132 points xlinux | 5 comments | | HN request time: 0.8s | source
Show context
zelphirkalt ◴[] No.42185402[source]
All this I guess comes after laying the ground work, like implementing a bitboard representation or something else, and implementing the logic for being able to tell, whether a move is valid or invalid. That in itself is already a lot of work. iiuc the idea here is "merely" writing the engine, and take everything else as a given.
replies(1): >>42185441 #
1. obrhubr ◴[] No.42185441[source]
The game’s implementation itself was furnished with the competition by Sebastian Lague. I completely agree that writing the move logic, validation, etc… is a difficult undertaking especially when it comes to optimisation which is what allows the bots built on top to perform well.
replies(2): >>42186091 #>>42186112 #
2. zelphirkalt ◴[] No.42186091[source]
That makes sense for such a competition. Thanks for making this even clearer!

Of course another interesting competition could be to develop _all_ of a chess game and engine and see how low in code people can go. But that would be an entirely different competition.

3. james_marks ◴[] No.42186112[source]
Is there not an open standard for this? I glanced and didn’t see anything, but seems crazy every chess project would need to define the game.
replies(1): >>42186374 #
4. qsort ◴[] No.42186374[source]
There are open components for generic purposes, e.g. draw the board given a PGN, show the moves, check if moves are legal and so on, but they aren't suitable for engine internals. There are several tricks with bits to store positions, hashing schemes for transposition tables and the likes that are key to unlock the maximum performance possible, and they are usually tied to the engine implementation.
replies(1): >>42204931 #
5. james_marks ◴[] No.42204931{3}[source]
Interesting, that makes sense.

Given that, I think what I’m imagining is a PGN linter & renderer.