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!
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.
Also a nice game: https://www.youtube.com/watch?v=lFXJWPhDsSY
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.
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
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.
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.
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.
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.
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.
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
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.
Humans playing Pokemon on a standard device cannot manipulate luck.
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.
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.
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.
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.
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.
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?
(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'.)
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.
Agricola is a four player game, though, so not playing on the same field as chess.
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
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.