|I still always confuse June and July
(30 Jun at 23:17)
|Ugh, well, I still didn't finish the video I mentioned last post (it is just a video version of some of my chess papers from this last SIGBOVIK; don't get too excited), but I made a lot of progress on it this weekend. This one has a lot of custom software, some of which is hours of work for like 10 seconds on-screen. This approach is "fun" but not efficient. At least I have a good approach to the video so it's just a matter of turning the crank now.|
I finished The Messenger. My verdict is that it is good. Some aspects of it are fantastic (8-bit graphics and writing) and most are very good, but the game was not very hard and the "metroidvania" aspects of it were mostly about retreading ground between distant teleports. I managed to get all the achievements, which I don't usually do, but there was just like one hard one left.
Speaking of hard ones, next up is/was Dead Cells, whose verdict is great. This is a grindy (lots of unlockables/upgrades) roguelike platformer with really excellent controls and "flow", almost feeling like a twitchy fighting game at times. It's no "Spelunky" or even "Crypt of the Necrodancer"; what set those apart for me is how the design of the random level generation really tended to create these interesting situations and puzzles. But this game has an impressive amount of content (the graphics and the sheer variety of weapons/powerups both stand out to me) and is just really fun to play, except when you die (which is always). Just now I finally beat the game on "Hard" (second boss cell) so it may be time to retire. I bought like 9 more games on the Steam summer sale, after all!
|You'll excuse me but I just had to.
Secretly hoping that it doesn't break anything actually :|
|I have some ideas for other chess engines you could implement (or could have implemented).
Longest road - the engine tries to have the longest continuous distance of contiguous pieces (measured where diagonals are root-2 and cardinals are 1)
Dominion - the engine tries to have the longest possible perimeter for the pieces of it's color.
Perfect squares - starting with a1 = 1, a2 = 2, a3 = 3, b1 = 9, etc... the engine tries to order it's pieces such that the sum of the values of the squares it controls is as close to a perfect square as possible.
The traveler - the engine selects whatever move will allow it to move a piece the most squares in any given move. Ties broken randomly among candidate moves.
Fearful - the engine prioritizes pieces that are closest to the enemy pieces (chebyshev distance) and moves those pieces as far away from the enemy as possible. Ties are broken first by moves that huddle, and then randomly.
Stockfishfried - Selects the first move of the previously moved piece that Stockfish suggests. For example, if the opponent moved a knight, select the first knight move that stockfish suggests. If the opponent moved a light-square bishop, select the first light-square bishop move. If the opponent moved a piece SFF does not have, it chooses a move at random. What's interesting about this is that it makes stockfish "self-select" from it's opponent's pieces. If their opponent only has a king left, SFF will only move it's king (unless it can't legally move it, in which case it will move randomly).
|Hi – I found what I think is a typo in one of your papers:
"rare. The dual of dangerous; the score is one minus the probability of ending the game on that square.This player has a thirst for adventure!"
Isn't rare the dual of popular?
|I wonder how possible it would be to create an engine that meaningfully tries to draw the game. It just wants everyone to be friends!
I can think of at least two actionable ways to do this.
First, it always chooses the stockfish move that brings the advantage as close to zero as possible. This will make tons and tons of draws. It will not be very fun, because it was will just be super-humanly boring and unexploitable (by humans, at least).
A more fun way would be an engine that detects the difference in pieces and attempts to create parity. If it is behind by a pawn, it will try to attack pawns. If it is ahead a bishop, it will attempt to donate a bishop to it's opponent.