Simplest Interesting Game

August 12th, 2013
games
Yesterday in the discussion on aliens don't play chess people suggested various contenders for the title of simplest abstract game that's interesting enough that a professional community could reasonably play it full time. I went thinking Go was the clear winner, but people suggested Checkers and Dots and Boxes might be simpler while remaining sufficiently interesting. [1] Is Checkers actually simpler than Go? If so, how much? How would we decide this?

Initially you might approach this by writing out rules. There's an elegant set for Go and I wrote some for Checkers, but English is a very flexible language. Perhaps my rules are underspecified? Perhaps they're overly verbose? It's hard to say.

A more objective test is to write a computer program that implements the rules. It needs to determine whether moves are valid, and identify a winner. The shorter the computer program, the simpler the rules of the game. This only gives you an upper bound on the complexity, because someone could come along and write a shorter one, but in general we expect that shorter programs imply shorter possible programs.

To investigate this, I wrote ones for each of the three games. I wrote them quickly, and they're kind of terse, but they represent the rules as efficiently as I could figure out. The one for Go is based off Tromp's definition of the rules while the other two implement the rules as they are in my head. This probably gives an advantage to Go because those rules had a lot of care go into them, but I'm not sure how much of one.

The programs as written have some excess information, such as comments, vaguely friendly error messages, whitespace, and meaningful variable names. I took a jscompiler-like pass over them to remove as much of this as possible, and making them nearly unreadable in the process. Then I ran them through a lossless compressor, gzip, and computed their sizes:

  • Checkers: 646 bytes
  • Dots and Boxes: 499 bytes
  • Go: 593 bytes

Update 2013-08-13: Added Hex. It comes in at 377 bytes gzipped, without the "swap rule". It's also been independently invented, which is some evidence for the claim that simpler games are more likely to be played elsewhere.

(The programs are on github. If you have suggestions for simplifying them further, send me a pull request.)


[1] Go is the most interesting of the three, and has stood up to centuries of analysis and play, but Dots and Boxes is surprisingly complex (pdf) and there used to be professional Checkers players. (I'm having a remarkably hard time determining if there are still Checkers professionals.)

Referenced in:

Comment via: google plus, facebook, lesswrong

Danner (12y, via fb):link

Was darts/target shooting a contender? There's a lot of skill games that could have very terse rules but have complicated physical issues.

Jeff Kaufman (12y, via fb):link

@Danner: I'm looking just at abstract games.

Ozzie (12y, via fb):link

Just a note: Simplicity is similar to "amount of information", which is very dependent on the medium/language. Game A may take fewer lines in Python, but that would just mean that the game is "simpler" in Python. I don't believe that there can be an objective language-independent value for complexity (or simplicity)

Ozzie (12y, via fb):link

For instance, Python may have a "Checkers" module, making Checkers take 2 lines of code, while GO may be 50 in comparison

Jeff Kaufman (12y, via fb):link

@Ozzie: " Python may have a Checkers module, making Checkers take 2 lines of code, while Go may be 50 in comparison"

While this is true at the extreme, I would expect that any general purpose programming language would give similar results to what I found here. Do you think that if I redid these programs in C I would get different relative sizes? Some other language?

Jonathan (12y, via fb):link

But language is always going to be a complicating factor. Consider for instance the analogous story between metric and english systems, say you want to determine a distance in metric using the next smaller measurement - just add a zero, but trying to do the same step down in english is much more complicated, you have to multiply by 12. I would say the base question lies more in being able to lay out the rules in language that a computer could understand, regardless of the code being used. Maybe some programming languages have greater mathematical capabilities, or can do more advanced boolean logic - but that is not the point here, it is more about identifying the simple game in basic terms.

Ozzie (12y, via fb):link

I'm not saying that finding the "simplest" game is completely impossible. Just that there will have to be a few assumptions / generalizations made to give a reasonable (likely not an exact) result.

Bryce (12y, via g+):link

I bet you could beat that with hex:  http://gcrhoads.byethost4.com/GamesPuzzles/Basic.html . Note that the "swap rule" should be left out unless you also include it in go.

Jeff Kaufman (12y, via g+):link

@Bryce  It sounds like if you leave the "swap rule" out of Hex you get boring games where the first player wins, so it's required for Hex to be an interesting game.  Go doesn't need a swap rule to be interesting.

Jud (12y, via g+):link

I just lost The Game.

Bryce (12y, via g+):link

@Jeff Kaufman  Not at all. Hex is only ultra-weakly solved, meaning there's a non-constructive proof that it's a first-player win. On boards of non-trivial size the swap rule is only relevant for players of roughly equal skill (rather like komi in go).

Jeff Kaufman (12y, via g+):link

@Bryce  Are you saying that there could be professionals playing interesting Hex games very often on large boards without the swap rule?

Bryce (12y, via g+):link

Yes. First of all, note that with the swap rule, the game is a 2nd-player win by a very similar proof. In practice these proofs don't help at all. This paper (from 2002) has a good subsection on Hex: 

http://www.sciencedirect.com/science/article/pii/S0004370201001527

A couple of particularly good quotes:

"Hex has been proved to be PSPACE-complete [36,89]. The state-space and decision complexities are comparable to those of Go on equally-sized boards."

and

"Experienced human players can probably play perfectly in any 5×5 position, but likely not in every 6×6 position. One example is the opening move most frequently played by experts. The general consensus among top players was that this move would win the unrestricted game on a 6×6 board, but in fact it loses."

Jeff Kaufman (12y, via g+):link

@Bryce  "with the swap rule, the game is a 2nd-player win by a very similar proof"

The effect of the swap rule on a partially understood game is to focus play on the parts of the space that aren't well understood yet.

Bryce (12y, via g+):link

@Jeff Kaufman  Interesting point. I'd like to quibble with the idea of "focusing play on the parts of the space that aren't well understood yet." If a game hasn't been (at least) weakly solved then even the strongest opening moves aren't well understood. I would say it as "focusing play on likely borderline cases between winning and losing first-moves."

I'd also describe this "an effect," rather than "the effect," which makes it seem like game-tree exploration is the rule's goal. I would describe the rule's goal as "achieving approximately balanced outcomes between equally-skilled opponents."

Jeff Kaufman (12y, via g+):link

I coded it up without the swap rule: https://github.com/jeffkaufman/game-complexity/blob/master/hex.py

377 bytes gzipped, the simplest of the lot.

Michael (10y, via fb):link

How could you write an accurate Go program in 593 bytes? At the end of the game the computer has to be able to identify dead stones (unless you have players do it manually), which is a highly nontrivial problem.

Jeff Kaufman (10y, via fb):link

@Michael: The 593 byte program I wrote implements the Tromp rules: http://senseis.xmp.net/?LogicalRules

Michael (10y, via fb):link

Jeff, don't those rules imply that if black has surrounded a territory with a group of white stones inside it, they have to manually capture the white stones for them to possess the territory? This seems pretty different from normal Go.

Kenneth (10y, via fb):link

There are language-agnostic metrics to measure software complexity: https://en.wikipedia.org/wiki/Cyclomatic_complexity

Jeff Kaufman (10y, via fb):link

@Michael: That's equivalent to normal Go in that it doesn't change the scoring. Players can choose to stop at any point where they can quickly see how it would turn out if they played to the end.

Jeff Kaufman (10y, via fb):link

@Kenneth: We want information theoretic complexity not branching complexity. A program with only one path through it could still be very complex in a kolmogorov sense.

Michael (10y, via fb):link

Okay, I think I get it. I was thinking that if black has to manually capture white's stones, black will fill in their own territory and lose points. But if the scoring rules give you a point for your own stones inside your territory (which isn't how I usually play (I use Japanese counting) but it's how Tromp-Taylor rules work) then it doesn't matter.

Kenneth (10y, via fb):link

Jeff Kaufman But surely it's a better proxy in practice than file size?

Jeff Kaufman (10y, via fb):link

@Kenneth: the size of losslessly compressed size-optimized code seems like a much better proxy for kolmogorov complexity than the number of unique paths through the program, since you could design some very strange rules that minimized branching without seeming at all simple to us.

Paul (10y, via fb):link

Binary lambda calculus seems a reasonable metric

Jeff Kaufman (10y, via fb):link

For example, unrolling loops decreases branching and increases bytes, and I think it makes code more complex.

Jeff Kaufman (10y, via fb):link

@Paul: Do you expect that to differ much in the relative numbers of bytes from what I did?

Paul (10y, via fb):link

No!

Kim (10y, via fb):link

The ELO rating difference between the best players and beginners has been proposed and studied as a game complexity measure; see, for example, https://www.lri.fr/~teytaud/depth.pdf.

Recent posts on blogs I like:

Against Lyman Stone On Animal Welfare

Demographer Lyman Stone writes:

via Thing of Things March 21, 2025

Product in the age of AI

We’re seeing AI features pop up in every product we use. Slack, Google Drive, etc.

via Home March 18, 2025

How I've run major projects

focus • maintain a detailed plan for victory • run a fast OODA loop • overcommunicate • break off subprojects • have fun • bonus content: my project management starter kit

via benkuhn.net March 16, 2025

more     (via openring)