That's what I was thinking! Always aim for the lowest-possible _positive_ evaluation (and maybe minimize its "contempt" parameter?) I'd love to see its results against vanilla Stockfish, and maybe it could be useful for training (to see if it tends to set up fortresses etc.)
@@nihel3144 It won't because it necessitate 50 moves of back and forth with no capture or pawn pushing to end the game in a draw, and stockfish can't see 50 moves ahead
The lawyer: attempts to put itself in a position with the most legal moves possible. The criminal: attempts to put itself in a position with the fewest legal moves possible. The paralegal: attempts to put the opponent in a position with the most legal moves possible. The undercover cop: attempts to put the opponent in a position with the fewest legal moves possible.
You didn't try tragic backstory. It's where you give each piece an opposing piece that killed their father and has sworn vengeance. Once their enemy is slain, they will help other allies.
Piece order can be decided by another engine based on move preference. It chooses the piece with the best (or worst) move, then you move it based on killing your target quickest.
I think there is a reason why "fatalistic" performs the best out of all of your piece-survival-based strategies. Your database comes from real, human vs human games. Humans will typically ignore a piece if it isn't standing in the way of them winning the game. So the spaces where a piece is likely to die are also the spaces where a piece is likely to threaten your opponent. As a result, you presumably get a strategy similar to the swarm strategy (though worse as the algorithm is only deciding based on where a piece is threatening averaged across all chess games, rather than moving to positions near the enemy king in this specific game).
Then another interesting variation would be copies of all those algorithms, but they take their probabilities from the end-states of all the games previously played in this tournament
Enlarge the board to a 32x32 image, feed it into a pretrained CIFAR-10 image classifier, and select whichever legal move maximizes the output for the "horse" class
That is actually a fantastic idea. I wonder if it would be partial to making knights live :P The one potential problem I see with it is that it may assign a probability of 0% for horse no matter what move you make. If that is a problem you could have it try to make it look more like what it already thinks it sees, so if it thinks it is a boat it will make try to make it look more like a boat.
I know I am really late but I have an idea: PremoveFish It calculates the best move the opponent could make and plays the best response to it, regardless of what they actually played. (If the move is illegal, then play the next best move in that position) (If all possible premoves happen to be illegal, then play a random move)
Damn that's actually a really interesting one. I wonder if forcing the premove is a big enough handicap to make it easy to beat? It might also be really fun to play against, since you'd be searching for the second best line instead of the first or trying crazy strategies.
@@a1aaaaaaaaaaaaaa-r6t it doesn’t have a chance to see what the opponent does before submitting its move, so if you do something stupid it won’t respond properly.
Pacifish: use stockfish, then always play the best move that is not a capture. Max_avalable_moves: assume you are playing with min_oppt_moves and do the move that will give you the most options on you next turn.
Possessed: Have stockfish play one move, then only allow it to move that one piece until that gets captured, and it can pick a new one! (so the currently chosen piece is "possessed" by the engine until it dies)
Biggest issue I can see with that is Stockfish doesn't understand the constraint you've placed on it. So if it ever casually plays a king move, it's almost a guaranteed loss. I like the concept but you'd need to make a modify stockfish itself to build that constraint into its evaluation.
Possessed variant, chosen ones: Select (4-8) pieces randomly at the start of the game. Evaluate the board with stockfish. If the piece it wants to move is on the possessed list, allow it to make its move. Otherwise, move a random piece that isn't on the list randomly.
impatient: take the minimax route which gives the game with fewest moves. checkers: the AI believes you're actually playing checkers and tries to make checkers moves. as you described in the video, take the first legal move. the padme deception: try your best to place the opponent's queen in checkmate (e.g. swap king & queen position, feed board state to stockfish, play suggested move)
Hey! I like this idea and how it can be expanded: modify the position in some way, and make Stockfish play a move. Specially if it's only the opponent pieces that are affected, you can get and algorithm that confuses opposing knights for bishops, and stuff!
Checkers has no legal moves from the start, and even if it worked it'd be trivial and only move the king, bishops and the queen. It would also never take any pieces, as a checker can't move into an occupied square, it has to jump over enemy checker diagonally. Also, half of the squares on the board can't contain any checkers, so the AI would never move them
For those who are wondering, the name "blind_spycheck" and the strategy of that player is a reference to a spychecking technique in TF2 (which is where the term "spychecking" was coined) where you try to intentionally damage your teammates to test if they are not spies, as teammates do not take damage from friendly fire.
@@AveryChow the main use case is if you use something with some lingering particle effect (mainly Pyro's flamethrower), which would absolutely stick around
Boringfish: Stockfish, but play the move corresponding to the tree with the lowest standard deviation, ie minimize the effect that the opponent can have on the game (for better or worse.)
Fog of war: it can only see the enemy pieces that are within two tiles of one of its own pieces tunnel vision: Only a 4x4 part of the field is visible. Maybe it could look at all 4x4 parts and select the most relevant.
I like fig of war, but it wouldn't work with stockfish because of missing king... maybe only show the enemy king, and pieces within one tile (3x3 square) of your own pieces
@@Requious97 I think the one that is easiest to implement would be that he can only see all his figures and all positions his figures could legally move to. Still would be very interesting where this engine would rank in this tournament.
Polygamy: instead of immediately going for check, try to promote as many pawns to queen as possible (using other pieces to clear paths for the pawns) and have the queens do most of the check/checkmate work
Some interesting strategies to try out: * Shape-blind (better than color-blind: can see color, but not type of piece) * Let a checkers-bot play with the shape-blind representation * Pure monte carlo tree search * Minmax using random evaluation of a board * Maximise number of legal moves for your side * Biggest difference in number of legal moves
Or the opposite of shape blind: color blind! The NN can see the types of pieces but has to guess whether it's black's or white's. As the game progresses and the pieces get mixed up, the NN will get worse and worse at guessing.
A monte carlo tree search algorithm already exists, it's called Alpha Zero. (AZ is a essentially a fancy monte carlo simulation of the gametree (disclaimer: if i have correctly interpreted their paper) )
The mental algorithm I use when I play against my six year old son: always capture unprotected pieces, never leave my pieces unprotected and threatened, but other than that try as hard as possible to lose
I was at an exhibition when I was 20-ish. There was a chess club for super juniors playing fast chess. I sat down and I died after three moves. I think it was the Boltzmann chess (that I played).
@@nimanao That's a good way to do it, since he still gets to show you the best chess he can play. But I think you should change what pieces you lose each time.
Not sure if someone suggested this already... *Panicfish* - It’s stockfish, but every time it gets put in check it freaks out and uses a random legal move instead.
Idea for a chess game: there are 32 players, each controlling one of the chess pieces. If a piece dies it loses, but if a team loses, all the pieces on that team lose. The pieces must try to win and try to not die. When it’s a team’s turn, all the pieces on that team suggests what move to make. Then the pieces on that team votes on which of the suggested moves to make. There are several (up to 15) rounds of voting. Every round the suggestion that gets the fewest votes gets eliminated. If more than one suggestion gets the fewest votes, a random one of these suggestions gets eliminated. Once a piece has died that piece can no longer vote or make suggestions.
An easy way to create a lot of agents is to dilute agents with other agents, not just random and stockfish. A stockfish/worstfish dilution would actually be pretty cool to see. Or pacifist and cccp.
Physics chess: each piece attracts or repels all the other pieces according to some physical simulation. Variations: gravity: each piece has mass equal to its relative value, magnetism: same colour pieces repel instead of attract, springs: pieces attract if far apart, repel if close together. Move the piece with the maximum force in the direction of a legal move.
i find it incredibly interesting that there are some cases where a certain concentration of stockfish doesnt always win against a particular opponent, but another, lower concentration of stockfish, always wins against that opponent
@@tandemdwarf745 you see, Stockfish assumes that the opponent would make the best move, and the more nodes, the farther its assumption gets from the truth.
@@Spellweaver5 but that doesn't make any sense, stockfish is built to evaluate moves in such a way that anything but the best move can be punished. it's not like it's saying "he'll never play this it's so bad", it's saying "if he plays this i win a rook therefore I don't have to worry". like yeah you surprised it, but only by being stupid and losing faster.
@@Spellweaver5 most of the time in this context means "even our insanely smart bot couldn't see it", you'd have to be smarter than it to spot that move, because otherwise the bot would have already concidered it and planned around it.
This wasn't 40something minutes down the drain. It was 40sonething carefree minutes of fending off the existential dread of reality. I love it. Thanks for the distraction
Piece Ranodmizer: Instead of picking a random move, pick a random piece and play it's best move from stockfish. Square Randomizer:Select a random space and then play the best move from stockfish that ends on that tile. Conway's game of life: Spaces with pieces are "alive" and ones without are "Dead". Each turn your AI makes a move to best iterate the next step in the game of life. It would be pretty cool to see a mirror match with these two having the same goal. Weighted Move: Where each move in stockfish is given a weight based on it's score and then you randomly pick one from the pile. More likely to get a good move, but rarely could get a crap move. Queen Maximizer: Try to promote as many pawns to queens as possible. Left only: Moves and captures can only move the pieces left and/or forwards. Action Queue: Use the top stockfish move from the previous turn instead of the current turn. Rivalry: AI will always try to capture pieces with the same piece if possible. Will try not to capture pieces with other pieces if possible. Tic-Tac-Toe: Treat each 3X3 space as a tick tac toe board. Your AI wants to "win" as many of those boards as possible.
I say this without any hint of irony or sarcasm: this is easily one of the top 10 things I've ever seen in my life. It's just so damned thoroughly entertaining. Thank you so much for all the dedication to the project. I hope there's a part 2.
You know Hand and Brain chess? Basically, you have two people on the same team. One is the Brain, and chooses which type of piece should be moved. (so queen, rook, pawn, etc.) The other is the Hand, who then independently decides where to move that piece. It'd be fun to see some different combinations of hands and brains from your roster here
@@Derek_Pixel Nobody in the comments even seems to be aware of this video, but I'm glad to know that Sebastian knows of this video, but I wish he had linked to it as an inispiration.
Did you try to find checkmates? While writing a neural-network chess program (years ago) I started off with a random mover. I played two random movers against each other. Black and white were equally random and it turned out that *ONE* *GAME* *IN* *FIVE* was a *CHECKMATE* . This gave me a huge variety of strange, interesting, weird, bizarre checkmate positions. I tried to train the network based on learning "checkmate good, anything else bad".
Now I just need a chess client that lets me play against a random algorithm without telling me in advance which of the 30 it is. Not only would you have to beat the computer, but also try to figure out by which method they're playing.
This is nuts, I randomly saw this in the SIGBOVIK paper a while back and really enjoyed it, and now I come across this awesome video about it. Thanks for making this, it was a great watch.
@@tom7 It cooould be interpreted as one joke among an otherwise serious explanation of mirrors I think, but maybe my sarcasm sensors are a bit rusty ^^ The whole thing's s a good joke though; very good at eliciting a reaction too, since I've had this argument about mirrors with people before, with infuriating results x)
@@pyxyne Let's implement a mirror by using a camera like a webcam. But don't forget to mirror the output stream so your left arm looks like your right arm. Do we really have to mirror it? Isn't it mirrored by facing towards us already? How do mirrors work again?
I have an idea for an engine! "Heaven or hell" does game tree search, and takes the move with the highest absolute value. Whichever one leads to the greatest advantage _or_ disadvantage it will pick, just as long as it's the biggest overall disparity. It could also have an equalizer counterpart that doesn't want either side to be in advantage.
What if, instead of a global strategy, you made strategies where each piece tries to maximise its individual survival? Aside from being highly effective ways to play chess, they would also act as incisive and nuanced political commentary. Democracy: each piece votes from 0-1 on each move, moves are ranked by average vote Socialism: geometric mean instead of arithmetic Representative democracy: the pieces vote for a piece which then ranks the moves Anarcho-capitalism: each piece has a balance of tokens it can trade for votes Marxism: each type of piece votes as a bloc French revolution: like democracy, but every piece is trying to put the king in check
I can't believe I'm in my 40s. Where has my fucking life gone. I remember celebrating my 20th birthday so vividly. How could that amount of time since then, before that, and I didn't even exist. And I've been in my 40s for quite a while now too.....
Stands up and applauds "Video of the Year" My suggestion: Stockfish, that runs highest difficultly when behind on material, medium when equal on material, and easy/dumb when ahead on material Reason: might throw up interesting data on draws, depending on how much material advantage matters in chess compared to advantages in tempo and/or development.
Your AI is exactly the same as playing against a new player who has never learned who pieces do what, guessing what they can do until the guess something correct. I might be able to win a game now.
idk if anyone's already figured this out, but I'm pretty sure the "bug" in the cccp strategy comes from the way its priority of pushing pieces as far as possible into enemy territory is defined: cccp prefers to make moves where the _destination_ is as far into enemy territory as possible, without any preference for what direction the piece actually traveled to get there. so because that bishop moving backwards results in it moving further into enemy territory than any other available legal move, cccp just ends up moving the bishop back and forth. this could be fixed by prioritizing total forward distance traveled, rather than only looking at the destination.
another thing I wonder is how it would perform if it was _less_ deterministic; cccp breaks ties by picking the first move lexicographically, but the first move strategy is much worse than random, so cccp would probably be better if it broke ties randomly instead. but would it be better than min oppt moves?
Mandelchess: interpret the board state as a complex number. If the state is in the mandelbrot set, evaluate it using stockfish, otherwise make a random move! Alternatively try to change the board state to be in the mandelbrot set.
16:20ish I wonder if the reason the "fatalist" strategy beating out the other Lichess-informed strategies is because if a piece dies on a square, it's often the case that it just made an aggressive move that took an opponent's piece. Furthermore, unless a piece mostly dies on its starting square, it's always going to be better to develop it. It's very interesting.
I had a similar thought. If a piece dies there a lot, maybe there was a really good reason for it to go there or stay there until it dies. It could also be part of a powerful defense that requires the opponent to sacrifice or initiate a trade to break through.
‘I need space’: playes the move that increases the average distance from any piece to any piece the most. ‘Personal space invader’: the opposite; tries to decrease the average distance between two pieces, cramming all the figures into one spot.
This is one of my favorite videos ever uploaded to RUclips. Not only because I love chess but because it's gratuitous use of very good programming skill to a silly end. Which tickles my brain in all sorts of fun ways.
It would be interesting to see the 15 other strategies of "tries desperately to keep this piece alive." We know the computer strategies to keep the king alive are just normal chess, but how well would a player be who just tries to keep his queen alive the whole game, or kings bishop? etc
Strictly speaking, if being checkmated with the chosen piece alive would be preferable to letting the piece die, all 15 would maximize their "success" by just getting checkmated as quickly as possible.
I find it really quite amazing that stockfish does not consistently beat the stupid strategies, especially the same color strategy where there are very few red X's
You should add a chess 'quantilizer'! RUclips comments don't like links so just Google quantilizers, there's a paper by Taylor that lays out how they work. Or wait a bit and I'll make a video about them. They're designed as a way to make AI systems safer, but they can kind of be used as a way of interpolating between certain different kinds of agents
I'm still curious about that. I've posted links in comments at times and I don't see any obvious negative effects from doing so. I'm not doubting that this statement has some truth to it, but I'm not sure how strong of an effect it really is. I suppose it may also have to do with various other factors. and of course, the difference between a comment made as a reply to another, and one made directly on a video. A controlled trial could be done, but the results would be hard to isolate and interpret. Leaving aside that there may be some 'personal reputation' factor at work that makes individuals who post links get wildly different results in general... It's very hard to extract the negative effects (if any) of putting a link in your comment from the innate quality of the post you made. Some posts just aren't interesting to anyone, regardless of how the algorithm rates them. If you make a post such as that, the hypothetical penalty for having posted a link may be so small a factor as to become meaningless. Conversely, a sufficiently popular post may vastly outweigh the penalty as well. Though in that case you could presumably see an effect, even if it's a small one. And getting back to that 'personal reputation' thing, perhaps someone that youtube's algorithms have deemed 'trustworthy' for various reasons can get away with posting links more easily than others. Possible factors that could feed into such a 'reputation' system could include (but are not limited to) - How many comments have you made with your account - How popular are your comments - How likely is a comment of yours to get a positive, or negative response (or none at all) - Do you post video content. - If you post video content, do you have any strikes against you? (whether copyright, community guidelines or anything else.) Then there's factors specific to posting links; - how often do you post links - Is the link contextual? (does the post contain anything else besides the link, and how closely does the comment correlate to the link) - What ARE you linking to and why? - On balance, of all the links you've ever put in a comment, how many would be classified as 'suspicious', 'neutral' or 'positive' or whatever else. Finally, there's some further contextual things; Like, is the owner of any given youtube channel penalised less (or even not at all) for posting a link in comments on their own videos, than for doing so on someone else's? And, just because I feel like testing this somehow, even if not very reliably, I'll post links to what you appear to be afraid of linking to: intelligence.org/2015/11/29/new-paper-quantilizers/ intelligence.org/files/QuantilizersSaferAlternative.pdf Granted, doing this really doesn't prove much of anything (besides demonstrating whether I can post links in comments or not, and whether there's any evidence of this having an obvious, directly negative effect on this comment) But, you know. Can't be bothered avoiding things just because of some idea that basically amounts to a vague rumour...
I am in awe of your talent. You did the graphics, the programming, the designing, the sound editing... You one-man-army'd the heck out of this project and it is an awesome video!
I don't know why, but for about three weeks now I haven't been able to sleep unless I have this video playing in the background. Then I go to sleep easily within a few minutes. Thanks for giving me a new dependency, I guess
great video, I had some ideas for lousy strategies... middle manager: wants to move key pieces to the middle squares wall hugger: moves pieces to the sides of the board (the opposite) knight lover: plays with a preference for moving and defending knights the poet: aims to spell out words with pieces on the board bold: always moves the piece that can move the most squares, and moves it the furthest it can go
this is such a good video - I’d love to see you return to this idea. I get great joy watching the bad algorithms play each other, the ones that barely know they’re playing chess.
A couple random ideas: - baby steps: never move a piece more than 1 tile in any direction. Might force knights to never move unless no other move is possible. - Perlin or another fancy procedural image technique: use a procedural weighted map to define a random configuration the AI will attempt to reach. - beeline: once a piece is moved, it has to repeat the same move every turn until it cannot, then another piece can be moved. - Tetris hard drop: like beeline, but try to move down as straight as possible, so pawns will avoid captures, knights and jesters will alternate directions. - toilet paper: wipe as many enemy pieces as possible before flushing the king on his throne. - Astley: you know the rules, and so do I. A full commitment's what I'm thinking of, and as such the AI will try to stick as many pieces next to its opponent. It's never gonna give it up. PS: cute doggo!
How about an "SCP" strategy? This strategy is similar to the CCCP strategy, but it has three goals, in this order: Secure: This strategy's first priority is keeping its king safe. If possible, it tries to make a move that prevents its king from getting into check. Contain: This strategy's second priority is "containing" the enemy king. If possible, it tries to checkmate the king, therefore "containing" it. If that's not possible, then a check will suffice for temporary containment. Note that because the SCP Foundation does not want to destroy anomalies, it will not capture pieces unless forced to do so. Protect: If neither securing nor containing is a possibility, the strategy will try to protect the other pieces.
I really wanted to see how some of the games played out, especially the ones where same_color and huddle (!!) somehow managed to draw against full-strength Stockfish!
A while ago, I wrote an cool engine that plays so painfully defensively that I was able to fork it and make it able to draw against Stockfish at max power. Actually, I think it could draw against anything not specifically trained to beat it.
awesome, I love how you draw a line through the valid boxes of moves to determine a move. It's really cool to see visual representation turned into code.
wait this video was 42 minutes? i just sat here and watched it... why? I have no idea. but now I want to make a chess-playing screensaver that just pits 2 random players from this table against each other
1 million nodes sounds like a lot but it's pretty bad, not too surprising that weak engines can occasionally win. Set it to 100+ million and I doubt weak engined could ever win.
one of the things you have to remember as well is though stock fish always picks the best move. it also assumes some moves that would be epic are bad strictly because your opponent would prevent it. like moving your queen in a spot that can take a lot of strong pieces quickly but puts it in danger is a good move against say the pacifist bot. so some engines may accidently do the right moves to draw and stock fish doesnt know that it can win (a theory not a truth)
Indeed, many believe that Deep Blue’s first victory over Kasparov came because Deep Blue picked a random move (a behavior the people at IBM didn’t expect at all) and Kasparov didn’t know how to react properly to it and gave up, even though he could’ve at the very least forced a draw. So random moves can be unintentionally brilliant.
I love your channel, It's a delightful combination of computer science, fun, and a pointless but funny task. I'm always excited when you upload a video.
Vengence: once a piece has been captured, the engine aims to capture the killer in any way possible. When there is no drama, it swarms either King to simulate an aggressive/defensive response to the story.
Stockfish also has engines for variants like Atomic, Racing Kings or Antichess. Suggestions: 1) Feed Stockfish a board, claiming it's an (e.g.) Atomic board. Take its predicted move and apply it to the real chess board. 2) Do the same 30x30 for chess variants. I think once you have the game model done (i.e. can tell legal moves) most methods should transfer very easily. For 2) let's look at the variants Lichess offers: * Chess960: The backline order is random, otherwise standard chess. Rather boring. * Crazyhouse: You can, instead of making a move, reintroduce a captured piece. It may be interesting but its one of the more complex variants since you need to remember more stuff. * King of the Hill: If you move your King to the center 4 squares, you win. Don't think it's too exciting. Among the lousy there will be stuff like Suicide/Hugging King that will do really well against other lousies, but other than that I'd expect the same. * Three-check: Instead of checkmate, you can win by giving check 3 times (like a TKO). Also rather standard probably. * Racing Kings: Weird starting configuration with all pieces on one side of the board, no checking allowed, King has to reach the other side of the board. Interesting, but really hard to implement. Now for my 3 favorites I'd like to see: * Horde: One player starts normal, the other gets 36 pawns. Would be really interesting to see how different alrorithms perform as Horde or Alliance each. Also very easy to port (except for the blindfold thing) as only starting position is different. * Atomic: Everytime a piece is captured, the capturing piece explodes with it as well as the 8 squares around, the latter excluding pawns. Now in this game mode it's easy to "accidentally" lose because capturing a piece next to the king happens quite often and threatening a piece next to the king is not check, making it so there are lots of situations where threatening a king explosion goes undeteced and results in a possible win. This should really seperate the lousy algorithms from each other and avoid lots of the draws. Implementation might require some work but most algorithms port over quite well. * Antichess: The King has no special role anymore, to win you must lose all pieces. If you can capture, you must. Also really interesting I think. Implementationwise this shouldn't be too hard either.
order of command: let stockfish pick the best move but only for the pawns and if thats not possible then the knights, followed by the bishops and rooks and finally the queen. Else: King moves
mixing stockfish and worstfish to various ratios could add some spicyness. maybe some bots mix well (their mixture gives better elo score than the score of the originals averaged) or particularly badly..
New strategy: Make a genetic algorithm, where an individual in the population has a probability of playing moves from a set of pre-made strategies(such as in this video, but not including the diluted ones). Obviously, have the better playing individuals more likely to reproduce. Or... if you specifically want to seek out combinations better than their counterparts, reward those individuals in the population that are better than both their parents.
I'm very happy that you make these videos summarizing your goofy research. Still the highest quality channel! Very funny and informative. I think the 'spycheck' idea is very clever.
I mean, the obvious question to me seems to be: how good can the blinded player be. I’d love to see you apply some of the SOTA reinforcement learning stuff on the blinded problem, just to get a sense of how good it might be able to get. Even something straightforward like deep q learning would be super cool. Plus you’ve already got the emulation engine etc and a diverse array of players so it’d be pretty easy to set up I think! Especially if you use tensorflow or torch instead of building everything from scratch haha!
This is an amazing video man. I joked to myself 'and now the next player is stockfish', and my god it actually was, after a fantastic explanation of minimax evaluation, that I immediately was able to understand. Many of these algorithms are just funny. Making chess a single player game, or thinking the enemy queen is your own pawn. You've put a lot of effort into this, and you also made it into a very enjoyable video.
Fantastic. Your dog escaping the (pretty much captive) chess lesson reminded me of my childhood as my Dad tried to teach me chess in metaphorically similar fashion. At this time we can reflect on the state of the world that was arrived at by finding worthwhile solutions to seemingly necessary problems. I am so glad there are people like you who have invested time and effort in the exact opposite. This direction could save the world rather than set it on fire. And much more enjoyable too. Thank you so much for what you do.
Another idea: TrollFish. Aim for positions where Stockfish evaluates a draw, using the full power of Stockfish.
That's what I was thinking! Always aim for the lowest-possible _positive_ evaluation (and maybe minimize its "contempt" parameter?)
I'd love to see its results against vanilla Stockfish, and maybe it could be useful for training (to see if it tends to set up fortresses etc.)
It can just always eat all of ur pieces and just leave king not doing checkmate.
@@nihel3144 It won't because it necessitate 50 moves of back and forth with no capture or pawn pushing to end the game in a draw, and stockfish can't see 50 moves ahead
'The full power of Stockfish'
Computer Scientists: **bruh**
@Emanuel Rew cruel bot hasn't been online since December, and also it said "only accepts challenges from friends" so people can't play it anyway.
The lawyer: attempts to put itself in a position with the most legal moves possible.
The criminal: attempts to put itself in a position with the fewest legal moves possible.
The paralegal: attempts to put the opponent in a position with the most legal moves possible.
The undercover cop: attempts to put the opponent in a position with the fewest legal moves possible.
who does random legal moves
@@randomcubestuff3426 The politician.
Ooo I like it. But undercover cop should be named "informant" or "rat" to keep with the single word naming scheme
@@CullenCraft Good point. I like "Informant"
sounds like the min_opponent_moves algorithm
You didn't try tragic backstory. It's where you give each piece an opposing piece that killed their father and has sworn vengeance. Once their enemy is slain, they will help other allies.
Piece order can be decided by another engine based on move preference. It chooses the piece with the best (or worst) move, then you move it based on killing your target quickest.
IM stands for Inigo Montoya!
this is brilliant!
@@tom7 how many fingers do you have on your left hand?
How tragic if the black bishop swore vengeance on the white bishop.
love how suicide king actually has won against the best stockfish at least once both as black and white
Probably the embodiment of "you can't outplay an opponent who doesn't know what they're doing".
It was probably a draw.
@@PsychadelicoDuck the smartest strategies don't work against the dumbest opponents
@@mozarteanchaos It's impossible to predict my strategy if I never had one to begin with
Killer strategy!
I think there is a reason why "fatalistic" performs the best out of all of your piece-survival-based strategies. Your database comes from real, human vs human games. Humans will typically ignore a piece if it isn't standing in the way of them winning the game. So the spaces where a piece is likely to die are also the spaces where a piece is likely to threaten your opponent. As a result, you presumably get a strategy similar to the swarm strategy (though worse as the algorithm is only deciding based on where a piece is threatening averaged across all chess games, rather than moving to positions near the enemy king in this specific game).
Then another interesting variation would be copies of all those algorithms, but they take their probabilities from the end-states of all the games previously played in this tournament
Enlarge the board to a 32x32 image, feed it into a pretrained CIFAR-10 image classifier, and select whichever legal move maximizes the output for the "horse" class
Wha..?
@@tr7zw He's suggesting an AI which would maximize how much the board layout looks like a horse.
LOL
That's so useless and difficult that i'd totally expect it from this channel. And i would definitely watch it.
That is actually a fantastic idea. I wonder if it would be partial to making knights live :P
The one potential problem I see with it is that it may assign a probability of 0% for horse no matter what move you make. If that is a problem you could have it try to make it look more like what it already thinks it sees, so if it thinks it is a boat it will make try to make it look more like a boat.
Jekyll & Hyde: Alternates between moves suggested by stockfish and worstfish
or between pacific and aggressive moves
his stockfish dilution should've been between stockfish and worstfish
jidma Pacific and Atlantic?
Dead moves
Pi good job you made me look it up in the dictionary
The most interesting thing here is that *Stockfish lost against Swarm at least once*
oh, i want to see that game.
I don't know who swarm is, but that was not full strength stockfish. Not even close.
the strongest Stockfish lost against Huddle at least once apparently
looking at the right side, stockfish also lost to blind+spycheck at least once.
@@beri4138 no, it was the 1 million node stockfish.
now you just need an algorithm which randomly chooses from the other algorithms, each move
Every once in a while a stockfish offspring had to pull the weight of a depressed king, an ocd patient, and a roman general.
@@walter3934 sounds like a Gamma World party
Yes
@@walter3934Many ocd patients
I know I am really late but I have an idea: PremoveFish
It calculates the best move the opponent could make and plays the best response to it, regardless of what they actually played. (If the move is illegal, then play the next best move in that position) (If all possible premoves happen to be illegal, then play a random move)
PremoniFish
I like that actually
Damn that's actually a really interesting one. I wonder if forcing the premove is a big enough handicap to make it easy to beat? It might also be really fun to play against, since you'd be searching for the second best line instead of the first or trying crazy strategies.
How is this different from Stockfish?
@@a1aaaaaaaaaaaaaa-r6t it doesn’t have a chance to see what the opponent does before submitting its move, so if you do something stupid it won’t respond properly.
Pacifish: use stockfish, then always play the best move that is not a capture.
Max_avalable_moves: assume you are playing with min_oppt_moves and do the move that will give you the most options on you next turn.
Max available moves sounds like Tie Chess.
@@roygalaasen imagine how long it would take to simulate 700+ games of this
Aech Modnar Yes, but aren’t there some rules in chess about situations where you start repeating moves, and it it a tie?
T Perm yes, that is exactly what I thought. But that can theoretically be a lot of moves still, yes.
No joke I actually thought of the second one
Possessed: Have stockfish play one move, then only allow it to move that one piece until that gets captured, and it can pick a new one! (so the currently chosen piece is "possessed" by the engine until it dies)
Oh wow that could surely be really interesting. Stockfish absolutely annihilating the opponent with a pawn.
@@petersmythe6462 I believe that would be called... Pwnfish
Biggest issue I can see with that is Stockfish doesn't understand the constraint you've placed on it. So if it ever casually plays a king move, it's almost a guaranteed loss. I like the concept but you'd need to make a modify stockfish itself to build that constraint into its evaluation.
@@dm9910 to be fair, most of these algorithms aren't necessarily good in terms of win rate. some of them actively try to lose, even
Possessed variant, chosen ones: Select (4-8) pieces randomly at the start of the game. Evaluate the board with stockfish. If the piece it wants to move is on the possessed list, allow it to make its move. Otherwise, move a random piece that isn't on the list randomly.
impatient: take the minimax route which gives the game with fewest moves.
checkers: the AI believes you're actually playing checkers and tries to make checkers moves. as you described in the video, take the first legal move.
the padme deception: try your best to place the opponent's queen in checkmate (e.g. swap king & queen position, feed board state to stockfish, play suggested move)
i think a version of impatient was in, the one with "mate in 4 or random"
Hey! I like this idea and how it can be expanded: modify the position in some way, and make Stockfish play a move. Specially if it's only the opponent pieces that are affected, you can get and algorithm that confuses opposing knights for bishops, and stuff!
The Padme Deception sounds amazing.
Impossible to do the first move with the "checkers" strategy.
Checkers has no legal moves from the start, and even if it worked it'd be trivial and only move the king, bishops and the queen. It would also never take any pieces, as a checker can't move into an occupied square, it has to jump over enemy checker diagonally. Also, half of the squares on the board can't contain any checkers, so the AI would never move them
For those who are wondering, the name "blind_spycheck" and the strategy of that player is a reference to a spychecking technique in TF2 (which is where the term "spychecking" was coined) where you try to intentionally damage your teammates to test if they are not spies, as teammates do not take damage from friendly fire.
doesn't tf2 not play the damage sound for attacking a disguised spy?
@@AveryChow the main use case is if you use something with some lingering particle effect (mainly Pyro's flamethrower), which would absolutely stick around
@@flatwoodscryptid yeah fair enough, I forgot about pyro
weird reference for a chess video
33:45 for ya lazy peeps
"It's bad, but it could be worse" delivered with optimism is the funniest thing I've heard in a while
Boringfish: Stockfish, but play the move corresponding to the tree with the lowest standard deviation, ie minimize the effect that the opponent can have on the game (for better or worse.)
As the expert commentators say: sounds drawish!
@@tom7 Not necessarily - it would always take the opportunity to force the opponent to win or lose for example.
He did min.opp.moves which is pretty much what you described as boringfish
It’s around 29 mins in
@Death Son Are you that ignorant, that you can't figure out that other people have differing levels of chess ability than your own?
Fog of war: it can only see the enemy pieces that are within two tiles of one of its own pieces
tunnel vision: Only a 4x4 part of the field is visible. Maybe it could look at all 4x4 parts and select the most relevant.
I like fig of war, but it wouldn't work with stockfish because of missing king... maybe only show the enemy king, and pieces within one tile (3x3 square) of your own pieces
@@TheAechBomb or just assume pieces are where they were last seen? including starting position
Fog of war from wargroove
How about
King + 3x3/5x5 square around where the opponent's last move's ending position?
@@Requious97 I think the one that is easiest to implement would be that he can only see all his figures and all positions his figures could legally move to. Still would be very interesting where this engine would rank in this tournament.
Can you make another 30 or 300 of these? Bad chess robots are such a fantastic idea and your visuals and narrations are great. thanks for this.
Your polarization trolling has got me more torqued than I should be.
lol same
I went and watched this one again and I got trolled again
I’m so validated reading this lol. I studied optics (among other things) and was like “huh??”, but he said it so confidently it made me question!
"so it's because they're polarized differently? i guess that makes sense."
...
"wait, no it doesn't!"
Polygamy: instead of immediately going for check, try to promote as many pawns to queen as possible (using other pieces to clear paths for the pawns) and have the queens do most of the check/checkmate work
Better idea: if it only has one queen, it will only capture with the queen. It will always promote pawns to queens.
Some interesting strategies to try out:
* Shape-blind (better than color-blind: can see color, but not type of piece)
* Let a checkers-bot play with the shape-blind representation
* Pure monte carlo tree search
* Minmax using random evaluation of a board
* Maximise number of legal moves for your side
* Biggest difference in number of legal moves
I wish he did pure Monte Carlo tree search now
Or the opposite of shape blind: color blind! The NN can see the types of pieces but has to guess whether it's black's or white's. As the game progresses and the pieces get mixed up, the NN will get worse and worse at guessing.
Minimax with random eval was my favourite.
@@gogogooner but this is exactly like random moves lol
A monte carlo tree search algorithm already exists, it's called Alpha Zero.
(AZ is a essentially a fancy monte carlo simulation of the gametree (disclaimer: if i have correctly interpreted their paper) )
The mental algorithm I use when I play against my six year old son: always capture unprotected pieces, never leave my pieces unprotected and threatened, but other than that try as hard as possible to lose
dadbot :)
My father never went easy on me. I didn't win a game of chess (I only played him at the time) until I was like 13. Still love the game at 21
I was at an exhibition when I was 20-ish. There was a chess club for super juniors playing fast chess. I sat down and I died after three moves. I think it was the Boltzmann chess (that I played).
My dad used to take away his own queen but then try as hard as possible to win
@@nimanao That's a good way to do it, since he still gets to show you the best chess he can play. But I think you should change what pieces you lose each time.
The clone killer: tries to capture pieces that are the same type as it: pawn captures pawn, rook captures rook, etc
Clone Wars is looking a little weird nowadays
I call that "highlander". There can only be one!
Not sure if someone suggested this already...
*Panicfish* - It’s stockfish, but every time it gets put in check it freaks out and uses a random legal move instead.
your assuming the other algorithms could ever check stockfish...
Well... stockfish itself can :D
@@antiprime4665 It's not that unlikely.
Would suck to play "take king is check mate" rules
Wouldn’t that look very similar to normal stockfish because the list of legal moves when your in check is pretty small
Have I seen this twice already? Yes. Will I watch it a third time? Absolutely.
Idea for a chess game: there are 32 players, each controlling one of the chess pieces. If a piece dies it loses, but if a team loses, all the pieces on that team lose. The pieces must try to win and try to not die.
When it’s a team’s turn, all the pieces on that team suggests what move to make. Then the pieces on that team votes on which of the suggested moves to make. There are several (up to 15) rounds of voting. Every round the suggestion that gets the fewest votes gets eliminated. If more than one suggestion gets the fewest votes, a random one of these suggestions gets eliminated. Once a piece has died that piece can no longer vote or make suggestions.
That actually seems really cool. Maybe you can give the king more votes just for fun :)
Is this the Holy Roman Empire in chess?
@@DanieliusGoriunovas HOLY ROMAN CHESSPIRE
@@unflexian It how the tories choose thier leader!
Maybe pieces get as many votes as their point value?
An easy way to create a lot of agents is to dilute agents with other agents, not just random and stockfish. A stockfish/worstfish dilution would actually be pretty cool to see. Or pacifist and cccp.
Physics chess: each piece attracts or repels all the other pieces according to some physical simulation. Variations: gravity: each piece has mass equal to its relative value, magnetism: same colour pieces repel instead of attract, springs: pieces attract if far apart, repel if close together. Move the piece with the maximum force in the direction of a legal move.
Thats a fun one
@@muguallegi7245 underrated comment
This is a really good comment thread.
i find it incredibly interesting that there are some cases where a certain concentration of stockfish doesnt always win against a particular opponent, but another, lower concentration of stockfish, always wins against that opponent
Stockfish1m lost to Suicide King. As both white and black. Stockfish 99.9-96.9 did not. I don't really understand how or why
@@tandemdwarf745 you see, Stockfish assumes that the opponent would make the best move, and the more nodes, the farther its assumption gets from the truth.
@@Spellweaver5 but that doesn't make any sense, stockfish is built to evaluate moves in such a way that anything but the best move can be punished. it's not like it's saying "he'll never play this it's so bad", it's saying "if he plays this i win a rook therefore I don't have to worry".
like yeah you surprised it, but only by being stupid and losing faster.
@@unflexian I would say that scoring system is an approximation that does not necessarily translate into winning moves, just most of the time.
@@Spellweaver5 most of the time in this context means "even our insanely smart bot couldn't see it", you'd have to be smarter than it to spot that move, because otherwise the bot would have already concidered it and planned around it.
This wasn't 40something minutes down the drain. It was 40sonething carefree minutes of fending off the existential dread of reality. I love it. Thanks for the distraction
Piece Ranodmizer: Instead of picking a random move, pick a random piece and play it's best move from stockfish.
Square Randomizer:Select a random space and then play the best move from stockfish that ends on that tile.
Conway's game of life: Spaces with pieces are "alive" and ones without are "Dead". Each turn your AI makes a move to best iterate the next step in the game of life. It would be pretty cool to see a mirror match with these two having the same goal.
Weighted Move: Where each move in stockfish is given a weight based on it's score and then you randomly pick one from the pile. More likely to get a good move, but rarely could get a crap move.
Queen Maximizer: Try to promote as many pawns to queens as possible.
Left only: Moves and captures can only move the pieces left and/or forwards.
Action Queue: Use the top stockfish move from the previous turn instead of the current turn.
Rivalry: AI will always try to capture pieces with the same piece if possible. Will try not to capture pieces with other pieces if possible.
Tic-Tac-Toe: Treat each 3X3 space as a tick tac toe board. Your AI wants to "win" as many of those boards as possible.
The agadamator reference got an instant like from me. Also, great vid!
Same for me, Mr. Bob Vance, Vance Refrigeration!
So what's the idea here?
Phyllis is a hottie.
God it's so brilliant, hahaha
also, thats not a real opening, is it? i thought it was the kings pawn opening. its a joke, right?
I say this without any hint of irony or sarcasm: this is easily one of the top 10 things I've ever seen in my life. It's just so damned thoroughly entertaining. Thank you so much for all the dedication to the project. I hope there's a part 2.
This is one of my favorite videos on youtube. It's simultaneously entertaining and a wonderful sleep aid. Thank you and I wish you all the best Tom
Thanks Daniel! Pleasant dreams :)
You know Hand and Brain chess? Basically, you have two people on the same team. One is the Brain, and chooses which type of piece should be moved. (so queen, rook, pawn, etc.) The other is the Hand, who then independently decides where to move that piece. It'd be fun to see some different combinations of hands and brains from your roster here
Such a cool video, I loved every second!
I'm curious as to how much this video influenced your recent chess A.I. video?
@@Derek_Pixel Nobody in the comments even seems to be aware of this video, but I'm glad to know that Sebastian knows of this video, but I wish he had linked to it as an inispiration.
Did you try to find checkmates? While writing a neural-network chess program (years ago) I started off with a random mover. I played two random movers against each other. Black and white were equally random and it turned out that *ONE* *GAME* *IN* *FIVE* was a *CHECKMATE* . This gave me a huge variety of strange, interesting, weird, bizarre checkmate positions. I tried to train the network based on learning "checkmate good, anything else bad".
2 of my favorite creators in one video/comment section. Love it.
Now I feel bad having stopped your video
you should make one where stockfish picks the best move suggested by several of the less effective bots.
The cat-herder bot.
When he mentioned the "meta" approach in the video, I thought he would do exactly that.
Kingfish
@BadRAM and each piece represents a bot when that piece is captured that bot stops offering its preferred move
@@thomased22legoyodagaming I think you just described natural selection, that's a really good idea actually
Now I just need a chess client that lets me play against a random algorithm without telling me in advance which of the 30 it is. Not only would you have to beat the computer, but also try to figure out by which method they're playing.
The interface between a chess frontend and a chess engine is pretty simple, this shouldn't be too difficult to script
"Dang, I got destroyed. That must have been Stockfish."
Stockfish 1.5%
Now I really want this.
17:04 unironically probably the best antichess player to ever exist
This is nuts, I randomly saw this in the SIGBOVIK paper a while back and really enjoyed it, and now I come across this awesome video about it. Thanks for making this, it was a great watch.
another great video
Woah its surprising to see you here lol
great comment funny conlang man
Well would you look at that, it’s big brain things/memes/random languages guy
No way
Yan meesaly pog?
All Chess Skins:
11:05 CCCP: Red Ushankas
12:09 Alphabetical: Letter Denotation
14:09 Safe/Popular/Dangerous/Rare/Survivalist/Fatalist: Piece Names
16:41 Pacifist/Generous/No_I_Insist: Halos
17:30 Suicide_King: Playing Cards
19:50 Stockfish: Evil Eye
20:59 Worstfish: Graphics drawn by a Temmie
23:14 Chessmaster_NES: 8-Bit Pieces
34:59 Blind: Blindfolds
I am so angry about that description of mirror flipping, good job
If it really was on purpose, it's absolutely brilliant trolling. I am absolutely furious right now.
@@pyxyne Was the link to the Wikipedia article on Lakes not enough of a wink? :)
@@tom7 It cooould be interpreted as one joke among an otherwise serious explanation of mirrors I think, but maybe my sarcasm sensors are a bit rusty ^^ The whole thing's s a good joke though; very good at eliciting a reaction too, since I've had this argument about mirrors with people before, with infuriating results x)
arrrgghhhhhhh! Now I want to write a km long comment about how it is so wrong! excellent trolling.
@@pyxyne Let's implement a mirror by using a camera like a webcam. But don't forget to mirror the output stream so your left arm looks like your right arm. Do we really have to mirror it? Isn't it mirrored by facing towards us already? How do mirrors work again?
I have an idea for an engine! "Heaven or hell" does game tree search, and takes the move with the highest absolute value. Whichever one leads to the greatest advantage _or_ disadvantage it will pick, just as long as it's the biggest overall disparity. It could also have an equalizer counterpart that doesn't want either side to be in advantage.
I would love to see a followup with even more weird algorithms. Some of the ones in the comments are just too good not to be curious
What if, instead of a global strategy, you made strategies where each piece tries to maximise its individual survival? Aside from being highly effective ways to play chess, they would also act as incisive and nuanced political commentary.
Democracy: each piece votes from 0-1 on each move, moves are ranked by average vote
Socialism: geometric mean instead of arithmetic
Representative democracy: the pieces vote for a piece which then ranks the moves
Anarcho-capitalism: each piece has a balance of tokens it can trade for votes
Marxism: each type of piece votes as a bloc
French revolution: like democracy, but every piece is trying to put the king in check
I just love it when the chess prices pull out a guillotine.
I laughed at french revolution
Yes lol
I don't know how these would work but as a comment it's hilarious
The comments on this video are amazing cause you'll get anything from stupid applications of math to introducing politics to chess.
I can't believe this was 40 minutes long, I didn't realize the time was passing as I watched this
I can't believe I'm in my 40s. Where has my fucking life gone. I remember celebrating my 20th birthday so vividly. How could that amount of time since then, before that, and I didn't even exist. And I've been in my 40s for quite a while now too.....
wtf it felt like 20
Stands up and applauds "Video of the Year"
My suggestion: Stockfish, that runs highest difficultly when behind on material, medium when equal on material, and easy/dumb when ahead on material
Reason: might throw up interesting data on draws, depending on how much material advantage matters in chess compared to advantages in tempo and/or development.
I've watched this a dozen or two times
This is my favorite video on RUclips
Hooray!
Your AI is exactly the same as playing against a new player who has never learned who pieces do what, guessing what they can do until the guess something correct. I might be able to win a game now.
As a computer scientist and a chess player I really appreciate the effort that went into this video.
idk if anyone's already figured this out, but I'm pretty sure the "bug" in the cccp strategy comes from the way its priority of pushing pieces as far as possible into enemy territory is defined: cccp prefers to make moves where the _destination_ is as far into enemy territory as possible, without any preference for what direction the piece actually traveled to get there. so because that bishop moving backwards results in it moving further into enemy territory than any other available legal move, cccp just ends up moving the bishop back and forth. this could be fixed by prioritizing total forward distance traveled, rather than only looking at the destination.
Interesting observation! Possibly, but this could be spun off as its own algorithm.
another thing I wonder is how it would perform if it was _less_ deterministic; cccp breaks ties by picking the first move lexicographically, but the first move strategy is much worse than random, so cccp would probably be better if it broke ties randomly instead. but would it be better than min oppt moves?
Mandelchess: interpret the board state as a complex number. If the state is in the mandelbrot set, evaluate it using stockfish, otherwise make a random move!
Alternatively try to change the board state to be in the mandelbrot set.
That would just be a Mandel-diluted stockfish
16:20ish I wonder if the reason the "fatalist" strategy beating out the other Lichess-informed strategies is because if a piece dies on a square, it's often the case that it just made an aggressive move that took an opponent's piece. Furthermore, unless a piece mostly dies on its starting square, it's always going to be better to develop it. It's very interesting.
I had a similar thought. If a piece dies there a lot, maybe there was a really good reason for it to go there or stay there until it dies. It could also be part of a powerful defense that requires the opponent to sacrifice or initiate a trade to break through.
‘I need space’: playes the move that increases the average distance from any piece to any piece the most.
‘Personal space invader’: the opposite; tries to decrease the average distance between two pieces, cramming all the figures into one spot.
This is one of my favorite videos ever uploaded to RUclips. Not only because I love chess but because it's gratuitous use of very good programming skill to a silly end. Which tickles my brain in all sorts of fun ways.
It would be interesting to see the 15 other strategies of "tries desperately to keep this piece alive." We know the computer strategies to keep the king alive are just normal chess, but how well would a player be who just tries to keep his queen alive the whole game, or kings bishop? etc
human players like this exist and they absolutely self-destruct if you trade queens.
Strictly speaking, if being checkmated with the chosen piece alive would be preferable to letting the piece die, all 15 would maximize their "success" by just getting checkmated as quickly as possible.
Dude this is actually badass there's so many possibilities for bad algs
This is a masterpiece. I have watched it 3 times since I came across it less than a month ago. Would love to see a part 2 :)
I think I watch it at least once every 6 months. It's just so cool from a game design context.
"And for those of you who just want to enjoy the show" god damn what a reference. You never cease to impress. Wish we met when we were kids.
I find it really quite amazing that stockfish does not consistently beat the stupid strategies, especially the same color strategy where there are very few red X's
You should add a chess 'quantilizer'! RUclips comments don't like links so just Google quantilizers, there's a paper by Taylor that lays out how they work.
Or wait a bit and I'll make a video about them. They're designed as a way to make AI systems safer, but they can kind of be used as a way of interpolating between certain different kinds of agents
i see you have good taste too!
I'm still curious about that. I've posted links in comments at times and I don't see any obvious negative effects from doing so.
I'm not doubting that this statement has some truth to it, but I'm not sure how strong of an effect it really is.
I suppose it may also have to do with various other factors.
and of course, the difference between a comment made as a reply to another, and one made directly on a video.
A controlled trial could be done, but the results would be hard to isolate and interpret.
Leaving aside that there may be some 'personal reputation' factor at work that makes individuals who post links get wildly different results in general...
It's very hard to extract the negative effects (if any) of putting a link in your comment from the innate quality of the post you made.
Some posts just aren't interesting to anyone, regardless of how the algorithm rates them. If you make a post such as that, the hypothetical penalty for having posted a link may be so small a factor as to become meaningless.
Conversely, a sufficiently popular post may vastly outweigh the penalty as well. Though in that case you could presumably see an effect, even if it's a small one.
And getting back to that 'personal reputation' thing, perhaps someone that youtube's algorithms have deemed 'trustworthy' for various reasons can get away with posting links more easily than others.
Possible factors that could feed into such a 'reputation' system could include (but are not limited to)
- How many comments have you made with your account
- How popular are your comments
- How likely is a comment of yours to get a positive, or negative response (or none at all)
- Do you post video content.
- If you post video content, do you have any strikes against you? (whether copyright, community guidelines or anything else.)
Then there's factors specific to posting links;
- how often do you post links
- Is the link contextual? (does the post contain anything else besides the link, and how closely does the comment correlate to the link)
- What ARE you linking to and why?
- On balance, of all the links you've ever put in a comment, how many would be classified as 'suspicious', 'neutral' or 'positive' or whatever else.
Finally, there's some further contextual things;
Like, is the owner of any given youtube channel penalised less (or even not at all) for posting a link in comments on their own videos, than for doing so on someone else's?
And, just because I feel like testing this somehow, even if not very reliably, I'll post links to what you appear to be afraid of linking to:
intelligence.org/2015/11/29/new-paper-quantilizers/
intelligence.org/files/QuantilizersSaferAlternative.pdf
Granted, doing this really doesn't prove much of anything (besides demonstrating whether I can post links in comments or not, and whether there's any evidence of this having an obvious, directly negative effect on this comment)
But, you know.
Can't be bothered avoiding things just because of some idea that basically amounts to a vague rumour...
Robert Miles!? 😍
Please do a video on quantilization, because it sounds fascinating but I don't understand it
What do you mean by quantilizer? That isn't a real thing. Do you mean something else?
I am in awe of your talent. You did the graphics, the programming, the designing, the sound editing... You one-man-army'd the heck out of this project and it is an awesome video!
No man is an island. They couldn't have made this video without their dog
Appreciate the "Satranç Otomatı" reference. For anybody who is curious, look up the Mechanical Turk!
ikr, i wonder why nobody else talks about it
I don't know why, but for about three weeks now I haven't been able to sleep unless I have this video playing in the background. Then I go to sleep easily within a few minutes. Thanks for giving me a new dependency, I guess
I wish I could fall asleep easily within a few minutes! Maybe I should it!
toms videos really are great for that, except the printable paper and infinite NaN computer ones cause they wake you up again at the end lmao
Update: I still sleep to this every night. It's my nightly ritual to quote the video as far in as I can in real time as I settle into bed
great video, I had some ideas for lousy strategies...
middle manager: wants to move key pieces to the middle squares
wall hugger: moves pieces to the sides of the board (the opposite)
knight lover: plays with a preference for moving and defending knights
the poet: aims to spell out words with pieces on the board
bold: always moves the piece that can move the most squares, and moves it the furthest it can go
That pup definitely got an A for effort if you ask me. You could see it in his/her eyes, trying so hard to do what you wanted.
Always a pleasure, Tom! Sliding the queen into the ranks of Blind-King had me smiling.
this is such a good video - I’d love to see you return to this idea. I get great joy watching the bad algorithms play each other, the ones that barely know they’re playing chess.
I've probably watched or listened to this video like 10 times in the past year.
Such engagement!
A couple random ideas:
- baby steps: never move a piece more than 1 tile in any direction. Might force knights to never move unless no other move is possible.
- Perlin or another fancy procedural image technique: use a procedural weighted map to define a random configuration the AI will attempt to reach.
- beeline: once a piece is moved, it has to repeat the same move every turn until it cannot, then another piece can be moved.
- Tetris hard drop: like beeline, but try to move down as straight as possible, so pawns will avoid captures, knights and jesters will alternate directions.
- toilet paper: wipe as many enemy pieces as possible before flushing the king on his throne.
- Astley: you know the rules, and so do I. A full commitment's what I'm thinking of, and as such the AI will try to stick as many pieces next to its opponent. It's never gonna give it up.
PS: cute doggo!
I'd love to buy a chess set that had '"The best semi-3D on-rails platform game since Crash Bandicoot 2!' - Tom7" on the box
How about an "SCP" strategy? This strategy is similar to the CCCP strategy, but it has three goals, in this order:
Secure: This strategy's first priority is keeping its king safe. If possible, it tries to make a move that prevents its king from getting into check.
Contain: This strategy's second priority is "containing" the enemy king. If possible, it tries to checkmate the king, therefore "containing" it. If that's not possible, then a check will suffice for temporary containment. Note that because the SCP Foundation does not want to destroy anomalies, it will not capture pieces unless forced to do so.
Protect: If neither securing nor containing is a possibility, the strategy will try to protect the other pieces.
GOC strategy
Go: only moves toward high value pieces
Obtain: gain as many squares to yourself as possible
Checkmate: checkmate the king
GOC best GoI
I wonder if there are any chess-related SCPs
EDIT: Yes, but none that can be emulated.
I really wanted to see how some of the games played out, especially the ones where same_color and huddle (!!) somehow managed to draw against full-strength Stockfish!
A while ago, I wrote an cool engine that plays so painfully defensively that I was able to fork it and make it able to draw against Stockfish at max power. Actually, I think it could draw against anything not specifically trained to beat it.
awesome, I love how you draw a line through the valid boxes of moves to determine a move. It's really cool to see visual representation turned into code.
wait this video was 42 minutes?
i just sat here and watched it...
why? I have no idea. but now I want to make a chess-playing screensaver that just pits 2 random players from this table against each other
that sounds fantastick
Curious as to how some of the very weak engines managed to draw at least one game against Stockfish1m. How did the 4th worst engine draw Stockfish?
Yes! I would love to see that game!
Large sample size.
1 million nodes sounds like a lot but it's pretty bad, not too surprising that weak engines can occasionally win. Set it to 100+ million and I doubt weak engined could ever win.
one of the things you have to remember as well is though stock fish always picks the best move. it also assumes some moves that would be epic are bad strictly because your opponent would prevent it. like moving your queen in a spot that can take a lot of strong pieces quickly but puts it in danger is a good move against say the pacifist bot. so some engines may accidently do the right moves to draw and stock fish doesnt know that it can win (a theory not a truth)
maybe you glossed over, but any non-deterministic solver will EVENTUALLY draw or win
Indeed, many believe that Deep Blue’s first victory over Kasparov came because Deep Blue picked a random move (a behavior the people at IBM didn’t expect at all) and Kasparov didn’t know how to react properly to it and gave up, even though he could’ve at the very least forced a draw. So random moves can be unintentionally brilliant.
It wasn't a random move, it was a pawn sac for improved positioning and computers were notorious at evaluating material over position at the time.
I love your channel, It's a delightful combination of computer science, fun, and a pointless but funny task. I'm always excited when you upload a video.
The Knight's Tour: an Algo that always attempts to send their two knights on a complete Knight's Tour before moving any other pieces
This has got to be the best RUclips video of 2019. Blown away.
This is insanely high quality content filled with substance. Well done.
Vengence: once a piece has been captured, the engine aims to capture the killer in any way possible. When there is no drama, it swarms either King to simulate an aggressive/defensive response to the story.
"condolences and congratulations if you made through the whole [video]"
dude I am on my 5th watch of this video
5 condolences then!
Every day, I'm hoping for a sequel to this video or to the PlayFUN series. The videos on this channel are some of the best on YT
Thanks for the encouragement! :)
Stockfish also has engines for variants like Atomic, Racing Kings or Antichess. Suggestions:
1) Feed Stockfish a board, claiming it's an (e.g.) Atomic board. Take its predicted move and apply it to the real chess board.
2) Do the same 30x30 for chess variants. I think once you have the game model done (i.e. can tell legal moves) most methods should transfer very easily.
For 2) let's look at the variants Lichess offers:
* Chess960: The backline order is random, otherwise standard chess. Rather boring.
* Crazyhouse: You can, instead of making a move, reintroduce a captured piece. It may be interesting but its one of the more complex variants since you need to remember more stuff.
* King of the Hill: If you move your King to the center 4 squares, you win. Don't think it's too exciting. Among the lousy there will be stuff like Suicide/Hugging King that will do really well against other lousies, but other than that I'd expect the same.
* Three-check: Instead of checkmate, you can win by giving check 3 times (like a TKO). Also rather standard probably.
* Racing Kings: Weird starting configuration with all pieces on one side of the board, no checking allowed, King has to reach the other side of the board. Interesting, but really hard to implement.
Now for my 3 favorites I'd like to see:
* Horde: One player starts normal, the other gets 36 pawns. Would be really interesting to see how different alrorithms perform as Horde or Alliance each. Also very easy to port (except for the blindfold thing) as only starting position is different.
* Atomic: Everytime a piece is captured, the capturing piece explodes with it as well as the 8 squares around, the latter excluding pawns. Now in this game mode it's easy to "accidentally" lose because capturing a piece next to the king happens quite often and threatening a piece next to the king is not check, making it so there are lots of situations where threatening a king explosion goes undeteced and results in a possible win. This should really seperate the lousy algorithms from each other and avoid lots of the draws. Implementation might require some work but most algorithms port over quite well.
* Antichess: The King has no special role anymore, to win you must lose all pieces. If you can capture, you must. Also really interesting I think. Implementationwise this shouldn't be too hard either.
order of command:
let stockfish pick the best move but only for the pawns and if thats not possible then the knights, followed by the bishops and rooks and finally the queen. Else: King moves
This video was fantastic and I feel very happy that the RUclips algorithm decided to send it my way to your channel
This is one of my favourite videos of all time.
Yay!
Can we just appreciate the time and commitment Tom made to the early shot of his beard growing over time???
mixing stockfish and worstfish to various ratios could add some spicyness. maybe some bots mix well (their mixture gives better elo score than the score of the originals averaged) or particularly badly..
Also it's a good approximation of (the caricature of) errors under stress in tournaments so it could go under the name of stressfish.
New strategy: Make a genetic algorithm, where an individual in the population has a probability of playing moves from a set of pre-made
strategies(such as in this video, but not including the diluted ones). Obviously, have the better playing individuals more likely to reproduce.
Or... if you specifically want to seek out combinations better than their counterparts, reward those individuals in the population that are
better than both their parents.
@SQ38 hey, nice to see you here. :D
I'm very happy that you make these videos summarizing your goofy research. Still the highest quality channel! Very funny and informative.
I think the 'spycheck' idea is very clever.
I mean, the obvious question to me seems to be: how good can the blinded player be. I’d love to see you apply some of the SOTA reinforcement learning stuff on the blinded problem, just to get a sense of how good it might be able to get. Even something straightforward like deep q learning would be super cool. Plus you’ve already got the emulation engine etc and a diverse array of players so it’d be pretty easy to set up I think! Especially if you use tensorflow or torch instead of building everything from scratch haha!
Yes, I would love that too, that would be amazing!
I often come back to watch this video, just because it has so much variety, and your voice is so calming.
Loved the Agadmator reference at 3:25 🤣
Neither into chess nor computer science but I throughly enjoyed this :)
This is an amazing video man. I joked to myself 'and now the next player is stockfish', and my god it actually was, after a fantastic explanation of minimax evaluation, that I immediately was able to understand.
Many of these algorithms are just funny. Making chess a single player game, or thinking the enemy queen is your own pawn.
You've put a lot of effort into this, and you also made it into a very enjoyable video.
It would be an interesting exercise to get these algorithms to play Quantum Chess.
The first RUclips to make chess not boring again
Fantastic. Your dog escaping the (pretty much captive) chess lesson reminded me of my childhood as my Dad tried to teach me chess in metaphorically similar fashion. At this time we can reflect on the state of the world that was arrived at by finding worthwhile solutions to seemingly necessary problems. I am so glad there are people like you who have invested time and effort in the exact opposite. This direction could save the world rather than set it on fire. And much more enjoyable too. Thank you so much for what you do.