Hacker News new | past | comments | ask | show | jobs | submit login
Immortal Game (wikipedia.org)
227 points by keiferski 18 days ago | hide | past | web | favorite | 52 comments

It would be interesting to see AlphaZero trained to play very aggressive romantic style. AlphaImmortal's goal should be beating Magnus Carlsen 51% of the time with the most amazing games ever played.

I think you could do this by changing the value function:

- reward short game over long games,

- draw reward closer to loss reward,

- reward capture more.

In fact, I would like to play against AlphaImmortal specially trained to play against my Elo-rating level opponents with 51% win rate. That would be fun!

As a matter of fact, AlphaZero already plays more aggressively than typically expected of chess engines.

Eg. in a well-known game it beated Stockfish (the strongest traditional chess engine), brilliantly sacrificing 3 pawns for a non-obvious, human-like compensation.

This once again challenged the notion of what the perfect play boils down to in chess.

Oversimplifying a bit, it had already been assumed that it's solely about grinding the opponent down by mercilessly accumulating miniscule advantages, while all the flashiness only worked because human players are error-prone.

As it turns out, it may have been just another limitation of chess engines as we knew (and built) them.

Link to game? I'd like to watch that.

"AlphaZero trained to play very aggressive romantic style.


I think you could do this by changing the value function”

The essential thing with AlphaZero is that it doesn’t have a value function that you can change. It learns it from the games it plays against itself.

The best you could do is train it by playing against some algorithm that plays aggressive romantic style (playing against humans playing aggressive romantic style would work, too, but that would make for slow training)

I doubt that would produce an AlphaZero that itself plays aggressive romantic style, though.

Edit: one thing that _might_ work is to, during training, change the rules of chess to “both players lose if the game lasts over N moves” for some small N (40?). That should put incentives on aggressive play. Disadvantage would be that AlphaZero would learn very little about endgames.

You can make AlphaZero learn different value function by changing the reward from the game. Game with no reward from draw, more reward from shorter games with more captures creates different value functions.

Or by training it against a flawed version of the algorithm that tends to overlook best defence like a human would.

This was what made the romantic style possible in the first place: humans perform worse under pressure, so they tend to crack once they're put on the ropes.

It's psychologically easier to attack than to defend accurately

I don’t think that would work. A weird attacking style only works if your attacking moves that technically are losing ones lead to situations so complex that your opponent are unlikely to find the moves that win it for them.

AlphaZero would not have trouble finding the (likely fairly dull) winning moves, and certainly wouldn’t see any reason to play such a move itself.

The chess computing term for this is "contempt," the parameter that determines the worst move the engine assumes its opponent would play. Classical chess engines can allow this parameter to be changed easily. I'm sure the MCTS algorithm for alphazero could be modified to allow this as well, if it doesn't already support it.

Only somewhat related, but if you found these ideas amusing, you'd probably enjoy watching tom7's video on unusual chess engine strategies: https://youtu.be/DpXy041BIlA

AlphaZero against my level player using some wacky reward like sacrificing maximum amount of pawns over winning every time could wind me up like a God in bath salts.

As a non-player who knows the rules these would be fun to watch. When I watch world championship matches I don’t really understand why what’s happening is happening. It would be cool to see games that are over optimized for the daring sacrifices that seem like blunders even to total novices but then end up being devious traps.

You mean "reward capture less", to emphasize positional place and sacrifices.

Coincidentally I was watching reviews of some games from AlphaZero vs. Stockfish 9 and people were amazed at the "human-like" nature of some of AlphaZero's decisions. It was seemingly sacrificing material with no obvious gain, only to come back much later in the game with a stronger strategic position. While Stockfish evaluates all possible moves it is limited by computation time and can't see too far into the future. AlphaZero responded much faster because it has already precomputed the expected probability of winning for most branches, so it can seemingly blunder when in fact it is following the path that led to victory most often.

A seven-minute summary of the game, and some history too!


Compare (one of the best) chess games that isn't even a chess game: https://www.reddit.com/r/chess/comments/e2n3df/kramnik_propo...

What is interesting is in the comments on chess.com, people propose "NBC [no black castling] Armageddon" meaning black is not allowed to castle but wins with a draw. And it seems balanced! I'd really like to see some top humans try it out.

kinda reminds me of josh waitskin

It was an interesting read. But ... why is it on HN home page with just 3 points within 45m?

Because Americans are sleeping.

Who else thinks that Chess is too simple and too boring compared to other strategy games that we have now? Starcraft 2, Agricola, Twilight Struggle, Through The Ages, etc.

If you think it is too simple and boring, I'm guessing you don't have much exposure to it at a non-rudimentary level? That's fine - but it is not necessarily the best vantage point to be comparing other "brain" games.

Of course, if you are a chess expert, then that's a genuinely interesting point of view - but I'd be interested in seeing more people with an advanced background in both comment.

All these games include some sort of random component and thus cannot be compared to chess which is purely skill based.

Other classical games, like backgammon or poker, are also stochastic or have hidden information, elements that are not in chess. And yet, those games are also considered to be skill-based and interest in them is comparable to that of chess (although chess reigns supreme in the pantheon of classical games, probably only rivalled by go).

Anyway, the absence or presence of stochasticity or other specific game elements can't be what sets chess apart from strategy games played on a computer. I think the real difference is the level of abstraction in the game. Like I say in another comment, chess is pared down to the bare essentials whereas games like Starcraft 2 have loads and loads of detail that does not server strategic purposes, and so detract from the point of the game.

Compared to Go, Chess has irrelevant details and more than bare essentials.

Starcraft is deterministic, the only random element is how people click. Slow the game to 1/10,000th current speed and it’s turn based.

Starcraft is not deterministic, and the nondeterminism can matter in significant ways.

In Starcraft 1, every ranged attack had a 120/256 chance of missing a unit that was up a hill or behind a tree, and a 1/256 chance of missing always.

In Starcraft 2, attack cooldowns are slightly randomized, so two units that are commanded to attack each other will almost never kill each other simultaneously.

Starting positions are also randomized and the maps are not symmetrical (nor are Terran buildings with add-ons!) so starting position matters slightly.

Plus the balance tweaks are somewhat aribitrary so there's a degree of luck to when exactly a match takes place.

I'm sure there are many more examples of non determinism but the biggest differences to chess are hidden information, which makes it resemble poker, and real-time actions, meaning SC is a game of dexterity as much as it is a brain game.

By your argument Pokemon is also a non deterministic game

Pokemon is highly nondeterministic. To take just one example, there are many moves which probabalistically induce game-changing status effects on the enemy.

This is exploitably incorrect. It seems that way to players but tool assisted Pokemon speed runs regularly use luck manipulation. https://glitchcity.info/wiki/Luck_manipulation

Games have had really bad prng’s for preformance reasons and gamers have been exploiting them for years. The most extreme example is probably Doom’s which was simply a hard coded list of numbers. https://doom.fandom.com/wiki/Pseudorandom_number_generator

Luck manipulation is only possible in more recent entries by exploiting game-external factors like the system clock. But, in any case, when it comes to comparing games implemented in software (like Pokemon) with games that aren't, you have to distinguish between "the game" and "the software". The Pokemon game is designed to be non-deterministic from the player's perspective, regardless of the fact that the Pokemon software may be deterministic in some detectable or manipulable way. Just like craps would still be a game of chance even if you figure out how to fix your rolls.

So in your mind actual Pokémon games are deterministic, but the platonic ideal for Pokémon is not. Why would you assume the real Pokémon game was your mental model?

I mean the software implementation defines the game and it’s the only thing anyone has ever played. It seems to me any change you make results in a different game. It’s not like a game allowing pawns to move 3 spaces can be called Chess even if everything else was the same.

The point is that nothing is random, even pure games of chance, if you have enough physical data about the rng.

Humans playing Pokemon on a standard device cannot manipulate luck.

Actually humans can exploit the prng on for example Generation III Pokemon. It takes frame perfect timing, which limits how long you can do so, but it is possible at the start of the game.

This really falls into the same category as speed running using save game glitch: https://www.youtube.com/watch?v=qHTK5GLOFVM aka possible but only really useful if you’re trying to do something very specific.

Anyway, while I understand you assume this stuff to be impossible I simply suggest you do some research before bringing it up.

True, and fair point!

Randomness is a matter of perspective. For any source of randomness there exists an oracle, and in some cases you can actually construct the oracle, and profit thereby.

Starcraft 2 replays work by replaying player actions not game state, they don’t need to record a random number generator’s output just a shared seed.

Now, you can argue the prng is effectively a random number generator, but that’s more semantics than reality. Further, RTS games use a shared seed to minimize network traffic. So, this is an important design choice.

However, as I said the player’s actions prevent individual players from exploiting the prng as they both interact with it.

>Now, you can argue the prng is effectively a random number generator, but that’s more semantics than reality.

That's not "arguing semantics", that's the entire point. It's irrelevant if the randomization is pseudo or not - players cannot deterministically know the result of their actions in all cases. They can only know probabilistically. Whether that source of probabilistic knowledge comes from a roll of a die or particle decay is irrelevant - it is now a random game by definition.

prng’s are exploitable if the other agent is fixed and deterministic. A winning game can then be repeated as long as the initial seed is identical. In such cases it’s also possible to extract information from the prng as to which opening is used.

This is a common strategy with https://en.wikipedia.org/wiki/Tool-assisted_speedrun, https://glitchcity.info/wiki/Luck_manipulation As Starcraft is also a single player game this is very much relevant.

So again, to be as clear as possible. Starcraft is deterministic, it’s only in multiplayer games when a players actions are randomized that the game appears to be random.

This is an interesting argument. If I understand right, you're saying that since the random numbers are produced by a deterministic process with a hidden seed, Starcraft isn't actually "random", it's just a hidden information game (the hidden information being the seed).

Taken to its extreme, you could take Chess, and add in a hidden seed at the start of the game, and run a PRNG during the game, and randomly decide some events. And you wouldn't have taken a full-information game and added randomness; you would have taken a full-information game and added hidden information.

Now, you're talking about using weaknesses in the PRNG to predict future random results. It seems to me there are two ways to do that: Learn what the seed is directly (perhaps by controlling what the seed is), vs. learning what the seed is by looking at PRNG outputs.

If we say the first option (directly learning the seed by controlling inputs or whatever) is impossible (which makes sense), then the only reason we can exploit the PRNG is that it's not cryptographically random.

Which is interesting. What if it the PRNG is indeed cryptography-secure? If an element of a hidden-information game is "deterministically" produced by a cryptography-quality algorithm, then that element can't be predicted. But it's still entirely deterministic.

So in some sense, no games have any randomness, they only have hidden information, and that hidden information can be kept very hidden using cryptographic techniques/algorithms.

A CPRNG + hidden information gives us seeming randomness in games. What other cryptographic techniques could you add into a game, and what would they map to from a human player's perspective? Encryption is seemingly obvious - hidden communication. What about hashing? What about homomorphic encryption? Others?

Compared to Warcraft, especially so. But there's also a small random effect in starting location.

Just play often enough, and the randomness evens out.

(In probabilistic prime number testing, they usually refer to something like 'running the algorithm often enough until being killed by gamma rays is higher probability than the algorithm being wrong'.)

I think that Chess is still interesting for many people because of a) rules are easy to understand but game is hard to master; b) there is a social aspect of playing against human being face to face.

I've recently started on chess.com and while i've always known how to play, I never realized just how bad I am. Currently slowly making my way out of the 600's in ELO, but it's been a learning experience. The depth of such a "simple" game is quite surprising.

600 ELO on chess.com is about 90th percentile among all humans.

Well, sort of. 600 is so low, and so far below the arbitrary rating given to new players, that it's very hard to find people to match with who have a consistent 600 score.

Have you read a chess book? Just knowing the basic tactics from a 1-day tutorial, and paying attention to not hang (give away) your pieces should be enough to get you to 800, where recently started elementary school students are.

Simple doesn't mean boring. There are many, many nuances that are only realized after playing at higher levels, and many more we haven't discovered yet as evidenced by the engines.

Simple, yes. But the difficulty in advancing your skill level is quite high which keeps it from getting boring at least for me.

Interesting, for most people that's why they do get bored of chess. The learning curve is too steep.

Chess is better than all the games on your list bar Agricola, possibly.

Agricola is a four player game, though, so not playing on the same field as chess.

I don't play chess. But I think I understand the enduring appeal of the game. Watching games (like in the animation of the Immortal Game on the wikipedia article) I get this weird feeling as if I'm watching a constraint solver, or a theorem prover walking through the steps of a proof, where the theory it's trying to prove is a theory of how to get to a check mate and the constraints are the moves that "our" or "their" player can make in any given board state. It's got a very maths-y and logic-y feeling to it and you can see that chess players play until they can prove to themselves that the game ends, then they resign or announce their win. The article above says that Kieseritzky resigned three moves before the end of the game, when it became clear that his defeat was inevitable. I mean, at that point, the two players could actually _calculate_ the outcome of the game.

I think a game like this is intriguing to anyone who has an analytical mind, who likes to study and create algorithms, or to just watch things work. The fact that the elements of the game are very simple is actually a feature: it's pared down to the bare essentials, an elegant abstraction that leaves no ambiguity. Only the elements that matter in the game are actually in the game (so it doesn't really matter what the king looks like, as long as it's recognisably a king). At the same time, the combinatorics of the game mean that an analysis, while straighforward, is anything but trivial, at least until the game gets to that point where the number of possible moves shrinks to a mere handful.

The games you list, while they're more entertaining as games than chess, also have too much superfluous detail, too much that relies on being able to play the game on a computer to keep track of all the things you (think you) don't need to think about, like the appearance of units and so on. With the simplicity gone, the elegant abstraction also goes and analyses of the game become so much less clear.

If I compared chess to a modern game, that would have to be Magic: the Gathering. While M:tG is, on its face, a goofy game with dragons and angels, there is a base set of game elements that is simple enough and easy enough to understand, and analysing a game with precision is possible and in fact, pleasing. You can again watch mechanisms work, cogs turn, parts slide into place as a player develops their strategy. It is intellectually gratifying to play such a game, because it's perfectly balanced between complexity and simplicity, it's at the sweet spot where detail is interesting, engrossing, without it becoming overwhelming (though there are times when M:tG boards can become overwhelming, say if you have a couple dozen permanents on each side) (though I get that many people are attracted to it because of the fantasy themes rather than the gaming component).

Unfortunately, M:tG is a proprietary game and the materials needed to play it are harder to acquire than chess (not least because they keep making more of them every few months). So I don't guess it will ever catch on as chess has.

The perfect information is a bit boring. I find something like Stratego, where one must discover the composition and deployment of the enemy, more interesting.

I can not imagine a competitive Stratego (only really played with family), but thanks to you, i am curious at what level of strategy people have come up with.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact