History
Ludii is the result of a long process of development over many years. This page summarises the key steps in this process.
Connection Games (Brisbane, 2005)
While compiling the book Connection Games: Variations on a Theme, it became obvious that many of these hundreds of games were composed of the same relatively small number of rules just in different combinations and applied to different board geometries. This inspired the ludemic approach for describing games, in which games are decomposed into conceptual units called ludemes, and led directly to my PhD work on evolutionary game design.
Ludi (QUT, Brisbane, 2006–2009)
Ludi was a C++ program developed for my PhD that evolved board games. Games were modelled in an EBNF-style grammar and described as structures of ludemes, in the form of equipment and rules, which triggered corresponding program functions to be called. About 200 ludemes were implemented. This approach was sufficient to evolve interesting board games, such as Yavalath, but in the end proved quite limiting; Ludi was inefficient, not very general (most new games added to the system required its functionality to be extended) and not very extensible (adding functionality required updating both the grammar and its corresponding C++ code and synchronising the two). Ludi was never publicly released.
Mogal (Imperial College, London, 2010–2014)
Mogal was a general game player, written in Java, developed as part of the UCT for Games and Beyond project in conjunction with Stephen Tavener (one of the Zillions of Games programmers). Mogal stood for "Modular Game Library" and provided a number of useful core game functions, such as move generators and win detectors, which the user assembled into games using JSON description files. This approach allowed highly optimised implementations of the core game functions, but again suffered in terms of generality and extensibility as each new game typically required new functionality to be added by an expert user/programmer. Mogal was never publicly released, but was later extended by Stephen into the excellent Ai Ai game player that currently supports around 200 games and various AI agents.
Class Grammar (QUT, Brisbane, 2015–2016)
The idea that finally addressed the limitations of previous systems was a simple one: generate the game grammar directly from the code. The developer can then focus on implementing the required functionality, which is automatically incorprorated into the grammar, rather than having to maintain the two separately. The grammar reflects the full functionality of the code while hiding its implementation and complexity. This mechanism is described in the paper A Class Grammar for General Games and in Australian patent application 2013904567 Method and Apparatus for an Extensible General Game System (lapsed).
Ludii (Brisbane, Munich, Tokyo, Maastricht, 2016 –)
Ludii is a complete general game system, based on the ludemic approach and class grammar mechanism, written in Java. An initial prototype was developed in 2016 to demonstrate a working proof-of-concept of the basic mechanism for an ERC grant proposal. The full system architecture was fleshed out over 2017 and suitable general game features for biasing MCTS playouts were derived while working at the RIKEN Institute (Tokyo) in late 2017. Work on the release version of Ludii began in earnest with the start of the Digital Ludeme Project in April 2018 at Maastricht University, and the system was operational and playing games by July 2018 (first game: Tic Tac Toe). Ludii uses a forward-only model for Monte Carlo playouts and is about 100 times faster than the original Ludi.
|