Ai Ai Home Page

(Last update: 25th January 2024)
Ai Ai Download Page

Ai Ai is a Java-based general game playing engine based on Mogal (a GGP designed and developed by Stephen Tavener and Cameron Browne).   Games can be hand-coded in Java (for efficiency), or assembled from blocks using a scripting language based on JSON.

Note: as of 9th January 2022, you’ll need Java 17 to run Ai Ai. Older versions are available here:

Here are a few lists of games in Ai Ai:

Ai Ai Reports

Ai Ai has quite a lot of analysis functions. If you’re very, very patient (overnight is best) you can produce a detailed game report. Here are some examples: Ai Ai reports

Ai Ai online

As of 24th January 2019, Ai Ai also supports turn-based online play. Quick summary:

  • Run online.jar
  • Click the button on the left to create an account
  • Check your email (including spam folder) for a confirmation link
  • Log in, and start playing. If you want someone to challenge, I’m mrraow

Further reading

You’ll find a little more on Ai Ai here:

How Ai Ai Got its Name
Adding games to Ai Ai in Java (and compatible languages)
Ai Ai Developer’s Guide #1: MGL

game_in_progress

AiAi allows you to play games against a variety of AIs, mostly variations of MCTS (Monte Carlo tree search).  It also contains analysis tools for game authoring; though these are more for my benefit than anyone else’s at present.

AiAi is still very much in a state of flux, and rather lacking in documentation at present but I will link documentation here as I write it.  Questions and comments welcome, and may well encourage me to write more!

I have added some threads to BGG for announcements, suggestions, and bug reports:

Announcements – subscribe to this thread to be notified when I update Ai Ai
Suggestions – any suggestions for improvements/new features should go here
Bug Reports – find a bug? Report it here. I will probably ask you for a save game file if it is a problem with a specific game.
FAQ – living FAQ; I will update the top post with questions and answers.
Game Candidates (long) list of games people would like to see implemented.

The latest version of AiAi will always be available here:
Ai Ai Download Page

Dr. Eric Silverman has written about Ai Ai several times; most recently
in this blog entry, which now has a part 2.

29 thoughts on “Ai Ai Home Page”

  1. Hi Stephen,
    I wish I could wait to try out AiAi before commenting, but going by the screenshot of NestorGames, this may be what I have been looking for (Java-based platform) to use as my development platform for an edge-matching puzzle whose pieces are dynamically created from a mathematical set of, well, anything.
    Will let you know if it helps and if it doesn’t why not.
    PS I found you on the Game Puzzle & Design website via my association with Kate Jones of Kadon Enterprises.
    Regards,
    Bowie

  2. Thanks very much! But John Conway did not invent Hex. You might have meant to say John Nash, but it is not clear that he discovered it independently from Piet Hein after all.

  3. Hi

    This is great and I just downloaded but I have a quick question.

    When I go to “Choose game” in the software the list of games does not include everything in the list above – am I missing something?

    Thanks

    1. Andrew, as the number of games increases, it gets harder to organise them! From “Choose game”, have a look in the subfolders; you can also find games through the Categories menu.

  4. Fantastic, thank you 🙂

    Out of curiosity (no problem either way) when placing a stone in take do you always need to select the type from the drop down? Just checking in case I’m missing anything! 🙂

    1. The pop-up menu only appears when a move is ambiguous. In some games where you can play multiple pieces, you can click and drag from an offboard location.

    1. Charles, thanks for your interest in Genius Loci. File menu/Search for Game (ctrl-shift-f) will allow you to search for any game by name or category. In the Categories menu, you can find it by author. On the file system, it’s in the Combinatorial Awards 2014 folder.

  5. Hi there, I know you have just added many of the large shogi variants, and I was wondering if ko shogi would be added as well?

    1. Hi! Thanks for the interest. Dr. Eric Silverman is responsible for most of the Chess family games in Ai Ai – you’ll see some links to his blog below. He tells me that this is a tricky one, with challenging interactions between pieces; nonetheless, it’s on the list.

  6. Nice work! And I see I even contributed, as you used the XBoard Lion image. 🙂 But seriously, both the Alfaerie and XBoard pieces are available in better (anti-aliased) quality as what you are using now, through https://www.chessvariants.com/page/MSdiagram-editor-with-scalable-graphics .

    I downloaded Ai Ai, and had it play a Metamachy against the Interactive Diagram in the Metamachy article ( https://www.chessvariants.com/rules/metamachy ). From this I gathered that the alpha-beta AI used for chess variantsis not very strong. First I tried Ai Ai on 10 sec/move, against the diagram’s default ‘2 ply’ (where it moves practically instantly). I tried a second game with Ai Ai at 2 sec/move. In both games Ai Ai was slaughtered in the middle-game, but then the games ended in repetition draws (one in KRPK and the other with an advantage of Bishop + Knight + Elephant + 4 Pawns for the Diagram). So there is room for improvement there. If you are interested I can offer advice on how to improve the search.

    I noticed that Ai Ai does not implement the 2-square jump a virgin King should be able to make in Metamachy.

  7. Thanks for ai ai. q(≧▽≦q). Is user allowed to make arbitrary modifications to a game state when playing offline on the engine? I sometimes need to analyze some conditions that occur in a game.

    1. Sadly, no. It’s on my TODO list, along with a lot of other things, but it’s easier for individual games than it is to implement a universal solution. Is there one game you are most interested in?

  8. Hey, quick question: How do I see the image files for the pieces, and is it possible to edit them? Thanks

    1. Most pieces are generated dynamically at runtime to save space, so it is not usually possible; but something may be possible depending on what you’re trying to achieve. I’ll drop you a line!

Leave a Reply to mrraow Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.