The chess bot on Delta Air Lines will destroy you (2024) [video]
(youtube.com)269 points by cjaackie 18 hours ago
269 points by cjaackie 18 hours ago
> then again by the airplane seat itself when the person in front of me reclines their seat.
This reminds me of the time I had my laptop open on the tilt-down tray and the very large man in the seat in front just repositioned his girth (not even reclining the seat) but it flexed the seat back enough that my laptop screen was momentarily caught between the tray below and recessed lip above and was almost crushed.
That happened to me when I had an ipad in a standing case and the seat in front cranked back - trapping then pinging the tablet across me and by neighbour's lap.
Though the ipad itself wasn't damaged, a couple of glasses didn't make it, and required the steward to try to brush up whatever fragments of glass they could.
I feel that airlines are a microcosm of "Do you care about who you actions might affect?" - similar to the "Do you return the cart to the corral" test at supermarkets - are you willing to put even the smallest bit of effort to significantly improve other people's experiences?
> do you care about who your actions might affect
This one surprises me every time I fly. When I have the aisle seat I can be up and out in 10 seconds. It seems to make like everyone else will plop down , place down 3 different liquids on the tray and then take a nap. When I ask to use the bathroom I end up feeling like a nuisance
Airlines shouldn't have reclining seats, it's bad design. Blaming people for the bad design is stupid. I never recline and still blame it on the design. Stupid people exist, you should design for that.
And if you are the airline the answer is a resounding "no"
Lost an Apple iBook screen this way. Guy in front slammed his chair back while I was working on a presentation and the screen got caught at the perfect angle to flex it and it died.
Didn't blame him, lesson learned, and I move my own seat back very slowly now.
(I get the joke) Not even gorillas even, the seats on most US carriers are too small and narrow for a lot of adult men even if they're in good shape. I had to sit shoulder to shoulder with one poor guy an entire flight to New Zealand because both of our shoulder widths are wider than the seats and I wanted to make sure my girlfriend had room enough to sleep. We were both good sports about it and were joking about needing a smoke afterwards, but it was not fun unless he wanted to lean halfway out into the aisle. I'm taller than average but not a giant.
Opened a laptop on my last flight and this was my immediate and persistent fear
Even when travelling for work I could never bring myself to get a laptop out on an aircraft. I only do it on the train occasionally if I've got something I'm deep into and a table to myself.
> when the person in front of me reclines their seat.
As a reasonably tall person I have never reclined my seat and will forever consider anyone who does an asshole.
The very fact that you can but don’t do something is the precise space where assholeness is defined.
This is fair on shorter flights ~1-4 hours, but I am reasonably tall too and I am not suffering through a 14 hour overnight flight without reclining. I don't think there is anything wrong with it in this case, and flight attendants will force people to de-recline their chair in meal times etc.
Surely you should blame the airlines, rather than the individuals. They cram more people on, giving you less space - but charge the same - and you get mad at other customers, rather than them for cramming you in.
I pointed out exactly the opposite: surely moral action is only possible when one has agency.
If an airline needs to force you to be a decent person, then you have no right to claim decency in the first place.
People who lean their seats back are assholes. Claiming “but this is permitted!” proves my point.
I can’t imagine what a nightmare world it would be if decency were only possible through the exercise of external authority.
If you don't fit in the smallest seat then buy a bigger seat. Someone using the space they paid for is not being an asshole.
Tall people don't choose their height, fat people (mostly) choose their weight.
Edit: also, if the airline can't deal with a certain percentile of the population under their normal product, they should figure out how to make it happen. It's discrimination to not account for tall people
I'm about 6' tall, even. In some cattlejets, my knees physically touch the seat in front of me. A lady on a recent flight flung her seat back and I cried out involuntarily in sudden pain.
I understand why she wanted to lean back. And yet, when she did, it freaking hurt. I'm around the 80th percentile in height in the US, and while my doctor says I could lose a few pounds, I wear a men's large shirt so I'm not exactly enormous. Even though they seat can technically recline, you cannot convince me that they're actually meant to.
My ideal airline would be one where you show up to the airport with your luggage, check it in, and then they knock you out and load you on the plane.
You get woken up at your destination after they've taken you off the plane. It would be the closest thing you can get to teleportation.
Then the airline wouldn't have to fuss with preparing shitty food and coffee or deal with annoying passengers. A win for everyone!
Some low cost airlines no longer have anything. A small fold-out tray to hold your tablet. There is Wi-Fi to access an intranet with flight information and maybe some entertainment. If you have that, you just load it up with games from your play store.
I prefer the Airbus 31x and 32x models without the entertainment systems so much more. On United the Boeing had fucking ads playing NON STOP THE ENTIRE FLIGHT and because I boarded early I'd try to turn off as many around me as possible because somehow the flying public does not mind bright flashing annoying lights in their faces for HOURS.
> because somehow the flying public does not mind bright flashing annoying lights in their faces for HOURS
We do. United has just positioned their economy products a hair below Delta by, in part, pulling off crap like this.
"somehow does not mind" wasn't about airline choice, it was about people not hitting the off button.
Yeah...I know some delta pilots and apparently the inflight computers were sometimes spending more time playing chess than flying the plane...
> getting absolutely crushed into a tiny cube by ... the airplane seat itself
Perhaps this is the real reason why they call themselves "Delta".
There's a bug in the Delta Air Lines chess program. After cxd6 en passant, the captured pawn isn't removed [0]. White's bishop is then able to check the black king through the pawn (the pawn that should have been removed) [1].
[0] https://drive.google.com/file/d/1Nyov4F7eWbT8uNoeclPY8uXVG6f...
[1] https://drive.google.com/file/d/1eEPBHqE5rpefE9gWflgS_hUwYGS...
They're probably using an OSS chess engine in something like C++, but using HTML/CSS/JS for the interface. 90% moves could be represented by a chess board as a 2D array, checking the engine accepts it as a valid move, and then replacing what's on that square be it empty space or a now captured piece. Castling, pawn promotion, and en passant are the edge cases with en passant being the most obscure.
My guess is they only remove captured pieces on the moved-to square (maybe relying on an implicit capture by overwriting an array entry). This is probably easier than actually tracking pieces that get captured.
The game is likely in javascript but because of this bug we know it's not using React because with React the programmer doesn't update the view, React does.
In short: it plays far too well (~2500 ELO.) People think it originally played at a reasonable level and accidentally got more powerful as the seatback computers got more powerful; the same thing happened to the Mac chess app with the release of the M1.
>Mac chess app with the release of the M1.
That would be exceptionally sloppy development. Phones have had more than enough power for long enough. 4 core Skylake (Mac 2016) would be well beyond human capabilities, if it's just raw power.
The "thinking" (difficult) limit should be considered moves ahead, both depth and count. With a possible limit to time, if there is any time control.
I'm guessing the app got better precisely because there was a time limit.
I think the issue is that people limited compute time as a proxy for difficulty.
In that case you'll hit issues on any device that performs significantly differently from that which it was tuned in.
Though I am slightly amused by people using the apple chip as an example of "high performance" in a problem that scales very well with threading.
I wonder if they gave the chess bot X seconds of thinking time in an era when computers were slower?
The way you set difficulty for turn based game ai is that you limit how far ahead the algorithm searches. If you set the lookahead based on compute time your difficulties will be way out of line if someone upgrades the CPU.
Something similar happened to the macOS chess game, which has always been bundled with OSX/macOS. Once upon a time it was easy to beat in easy mode, which restricted how long it could thing in advance.
When Big Sur rolled out around 2020, Apple introduced a bug which disabled the difficulty slider: no matter what it was set to, it was hard or impossible to beat. In macOS Sequoia, the Chess app got updated again, and supposedly they fixed the difficulty slider, but in the interval silicon improved so much that the old restraints (like think for only a second) mean little. The lowest levels play like a grand master.
is there some reason to implement it as a time limit instead of iterations or something else deterministic? it being affected by CPU speed or machine load seems obvious.
or whatever makes sense if “iterations” isn’t a thing, I know nothing about chess algorithms
It’s simpler. Chess is a search through the space of possible moves, looking for a move that’s estimated to be better than the best move you’ve seen so far.
The search is by depth of further moves, and “better” is a function of heuristics (explicit or learned) on the resulting board positions, because most of the time you can’t be sure a move will inevitably result in a win or a loss.
So any particular move evaluation might take more or less time before the algorithm gives up on it—or chooses it as the new winner. To throw a consistent amount of compute at each move, the simple thing to do is give the engine consistent amounts of time per move.
A time limit is also deterministic in some sense. Level settings used to be mainly time based, because computers at lower settings were no serious competition to decent players, but you don't necessarily want to wait for 30 seconds each move, so there were more casual and more serious levels.
Limiting the search depth is much more deterministic. At lower levels, it has hilarious results, and is pretty good at emulating beginning players (who know the rules, but have a limited skill of calculating moves ahead).
One problem with fixed search depth is that I think most good engines prefer to use dynamic search depth (where they sense that some positions need to be searched a bit deeper to reach a quiescent point), so they will be handicapped with a fix depth.
> One problem with fixed search depth is that I think most good engines prefer to use dynamic search depth (where they sense that some positions need to be searched a bit deeper to reach a quiescent point), so they will be handicapped with a fix depth.
Okay, but I want to point out nobody was suggesting a depth limit.
For a time-limited algorithm to work properly, it has to have some kind of sensible ordering of how it evaluates moves, looking deeper as time passes in a dynamic way.
Switch to an iteration limit, and the algorithm will still have those features.
Heh, I was just discussing this some minutes ago: https://news.ycombinator.com/item?id=46595777
Getting more thinking time tends to give surprisingly small improvements to playing strength. For a classical alpha-beta search based engine, for a given ply (turn) you might have ~20 moves to consider each depth of the search tree. If you're trying to brute force search deeper, a 10x increase in compute time or power doesn't even let you search an extra ply.
Elo gains for engines tend to come from better evaluation, better pruning, and better search heuristics. That's not to say that longer search time or a stronger CPU doesn't help, it just doesn't magically make a weak engine into a strong engine.
Naming it the "Turbo" button rather than making "turbo mode" the default and then pressing a button for "slow" mode, IMO, was marketing genius, even though the results are the same.
Blizzard did a similar thing in World of Warcraft during the beta. After playing for a while, your character would get "exhausted" and start earning half experience for killing mobs. The only way to stop being exhausted would be to log off or spend a LONG time in an inn. At some point, they flipped the script. They made the "exhausted" state the default, and while offline or in an inn, you would gain a "rested" experience buffer, where you would earn double experience.
The mechanic worked exactly the same, but by giving it different terms, players felt rewarded for stepping away from the game occasionally, rather than punished for playing too long. They also marketed it as a way of giving players a way to "catch up" after spending a day or two offline.
The original intention behind the turbo button was to give a way to set the clock speed something closer to a 4.77 MHz Intel 8088 for the benefit of games that relied on CPU cycle timing. Therefore turbo was the default and slow mode the exception.
For some reason this feature persisted in PC compatibles long past having any useful purpose, e.g. toggling a 386 between 33 MHz and 25 MHz. Perhaps manufacturers feared any PC without such a button would be perceived as slower, even though as you say, it's really a slow-down button not a turbo button.
Different senses of "default".
Yes of course you'll keep it on the fast speed as much as you can, not the slow speed. But it's still presented as fast being a bonus rather than slow being a malus.
Is this really true? I played a few games with it in August. It's not very good.
It's one of those old programs where 95% of the moves are pretty strong. But if you just do nothing and sit back it will occasionally make a random blunder and then you grind it out. I figured it's how they were able to weaken a chess engine back in the day; can't adjust the overall strength, so add random blunders.
I'm only about 2000 on lichess but I beat it pretty much every time, especially once I realized there is no reason to try anything sharp.
My suspicion is that the bot was a fairly standard chess bot, but the difficulties were set based on computation time. As airplane computers got better, it turned into a beast.
As a result, if you tried this on older planes, it might have been “easier”
One of my first paid iOS dev jobs was porting a Go game from iPad to iPhone, don't even think the 4 was out yet. It also used computation time based difficulties. By the time I was done writing it, I knew a few tricks I could eke a win out with on 19x19.
When the iPhone 5S came out, I tried it on a whim to check the UI scaling etc... the beginner difficulty on a 9x9 board deleted me. It was grabbing something like 64x more samples per go, the lowest difficulty on the 5S (instant responses) never lost a single game vs the highest difficulty 3GS (15 second turns)
iPhones had a lot of moments like that. Silly bullshit like "what if every pixel was a cell in a collection view" would go from "oh it can barely do 128" to "more responsive than that was, with 2 million" in a few gens.
One of the minor weird things about iOS development early on was just how fast the transition was from the simulator being dramatically faster than actual devices to the simulator being slower than devices. When I started out you’d get things working nicely in the simulator and then discover it’s an order of magnitude too slow on a phone. Just a few years later and my phone was faster than my laptop until thermal throttling kicked in.
Chess on M series Macs has the same issue. Even level 1 is easily 2000+ Elo because of the same thing.
Oh, this led me down a rabbit hole…
I was maintainer of the Chess app from the early 2000s to about 2015. We first noticed in 2004 that level 1 (which was then "Computer thinks for 1 second per move) was getting stronger with each hardware generation (and in fact stronger than myself).
So we introduced 3 new levels, with the Computer thinking 1, 2, or 3 moves ahead. This solved the problem of the engine getting stronger (though the jump from "3 moves ahead" to "1 second" got worse and worse).
A few years after I had handed off the project, somebody decided to meddle with the level setting code (I was not privy to that decision). The time based levels were entirely replaced with depth based levels (which eliminates the strength inflation problem, but unfortunately was not accompanied by UI changes). But for some reason, parsing of the depth setting was broken as well, so the engine now always plays at depth 40 (stronger than ever).
This should be an easy fix, if Apple gets around to make it (Chess was always a side project for the maintainers). I filed feedback report 21609379.
It seems that somebody else had already discovered this and fixed it in a fork of the open source project: https://github.com/aglee/Chess/commit/dfb16b3f32e5a6633d2119...
I found a used copy of Warcraft 3 at the store about ten years after it came out, proudly brought it home, fired it up and didn’t recall the graphics being quite that awful, but the first time I tried to scroll the map sideways it shot to the far end because they didn’t build a timing loop onto the animation and I shut it down, disappointed.
Unfortunately they never released a remastered version of it. They seem to have made some clone of it called “reforged” whatever the fuck that means.
AFAIK the only reason Chess even ships at all anymore is as a burn utility. They'll set it to AI vs AI at max difficulty to stress the system and make sure the cooling/power management works.
> I figured it's how they were able to weaken a chess engine back in the day; can't adjust the overall strength, so add random blunders.
In tom7’s Elo World, he does this (“dilutes” strong Chess AIs with a certain percentage of random moves) to smooth the gradient since otherwise it would be impossible to evaluate his terrible chess bots against something like Stockfish since they’d just lose every time. https://youtu.be/DpXy041BIlA?si=z7g1a_TX_QoPYN9b
1. Uh, isn't 2000 like extremely fucking good?
2. I played a chess bot on Delta on easy and it was really bad, felt like random moves. I beat it trivially and I am actually bad at chess, ~1000 on chess.com. I wonder if this one is different?
Yeah, he just casually said he had an elo that high, as if that doesn't blow 90% of people out of the water.
This was my experience on a long Delta flight, I don't remember if I picked easy or not but it was laughably bad. I took its lunch money for a game and then turned the screen off. I was mostly irritated by the horrible touch interface, it felt so laggy among other issues. (I don't have a ranking, I barely play these days and usually just in person, but my memory says around 1400 back in the yahoo chess days as a teen but it's probably closer to 1000 now.)
Note that 2000 on lichess is probably weaker than 2000 on chess.com (or USCF or FIDE)
That's true, I'm 2050-2100 lichess, around 1800 on chess.com. Never played a rated tournament but played some rated players who were 1400-1500 rated USCF, and they were roughly my strength, maybe a bit better. Still the Delta bot, easy mode, was much, much better than me.
It's still significantly stronger than the average online chess player
Not only is the delta chessbot bad (My low 1600s lichess-elo self can win handily every single time against any difficulty, white or black), but there's also a sequence of moves I found which deterministically causes the game to crash. I should probably record it next time I'm on a flight.
This reminds me of a bug I reported in 2007 Ubuntu where the default "easy" chess difficulty was too hard. It was eventually fixed in 2014 by using different chess engines. https://bugs.launchpad.net/ubuntu/+source/gnome-chess/+bug/1...
What a world where we have to put significant extra work into making the computer bad enough that a human can compete.
There used to be a chess program in windows 3.1 that would destroy me every time. Not that I was very good, of course! But I think if you just code the known opening books it's not too hard to make a bot that requires a skilled player to beat.
Sometimes the airlines chess app gives you the option to play another passenger, but even after waiting for half an hour I've never been hooked up with another player. Has anyone else been able to?
Yes, as someone who is usually flying with my GF, I love this feature! Unfortunately air canada's implementation is abysmal and anytime there is a pilot announcement it interrupts the game long enough to break the network connection and cause it to end the game.
I know I'm getting old when I read comments like this. It wouldn't have occurred to me in a million years that it might pair me with passengers on another flight. I'm conditioned by having first experienced this feature probably 30 years or so ago when pairing to passengers on other flights would have been science fiction.
That's how the system was originally designed, before in flight WiFi was common. If they're gonna hook it up to the broader internet and allow playing games cross-flight, they might as well just hook it up to an existing service like chess.com and have a significantly larger user base imo
Yeah, that's my experience as well. I only did once, and it was against my father...
We should coordinate flights
I see some chess players so I want to plug the chess coaching app [0] I'm building. I don't know many chess players and could use feedback, but I had been paying for chess.com premium and tried some others and it's always game-level feedback which is insane to me because it's really not that helpful (as evidenced by my abysmal rating.)
I'm running games through stockfish/lc0/Maia and doing some analysis of patterns across multiple games, then feeding that to an agent who can replay through positions and some other fun stuff. Really keen to find out if it's helpful for anyone else!
I'm going to check this out, as it's legitimately attempting to solve the gap in online chess coaches. As said on the home page, I don't want to know what to play, I want to know why I'm not seeing it or how to think about the move differently. This is the gap and I hope you find success. I'm definitely going to check it out.
United sadly removed games from its in-flight entertainment so I can no longer trounce 6 year old Magnus.
I don't think I've played this bot. I guess the few times I flew in America wasn't with Delta as I would definitely try chess if available.
From what I've seen in the video I'd give the bot around 2100 FIDE equivalent. Granted you don't play bots like you play people. This bot essentially plays top engine moves and every now and then it introduces suboptimal moves. This technique can be played against choosing appropriate openings and being patient with calculation.
Don't be surprised when you learn their so-called "chess bots" are actually people, lying hidden below the floor of the passenger cabin, moving pieces with the help of levers and magnets.
I had similar experiences playing the computer in Tzar: Burden of the Crown. It’s not chess but it is a strategy game.
https://en.wikipedia.org/wiki/Tzar%3A_The_Burden_of_the_Crow...
Icelandair’s chess engine was equally brutal (well maybe only slightly less brutal). I played a couple of rounds on medium difficulty only to realize I didn’t stand a chance. I played a few more on beginner, and still lost all my game by blundering some tactics to the engine. Just before landing in Iceland I manage to get one game to the endgame, where the bot finally starts feeling like a beginner (well an advanced beginner) and I got one victory in.
Last time I flew Delta they no longer had this bot, which made me sad. One of my favorite parts of flying was getting absolutely crushed into a tiny cube by the airplane seat's easy chess bot, and then again by the airplane seat itself when the person in front of me reclines their seat.