Zillions of Games


Zillions of Games is a commercial general game playing system developed by Jeff Mallett and Mark Lefler in 1998. The game rules are specified with S-expressions, Zillions rule language. It was designed to handle mostly abstract strategy board games or puzzles. After parsing the rules of the game, the system's artificial intelligence can automatically play one or more players. It treats puzzles as solitaire games and its AI can be used to solve them.

Scripting language

The scripting language of Zillions-of-Games uses S-expressions. The rules are stored in a text file with extension ".zrf". The users can create their own ZRF-files and make the AI of Zillions-of-Games play their newly created game.
Here is an example of rules for Tic-tac-toe :

)






; top-left position
; columns
)
)
)




)







)
)

The result of loading of this ZRF into Zillions-of-Games and playing against the computer is shown in screenshot at right.
The definition of games usually contains the following pattern:
Zillions of Games is so called because of its potential to play a very large number of user-programmed games. The system is shipped with over 300 games and puzzles. These include a lot of popular board games, such as Alquerque, Fox and geese, Go, Gomoku, Jungle, Halma, Nim, Nine men's morris, Reversi, Tafl and Tic-tac-toe. The package includes many checkers variants, for example Russian and Turkish Checkers. Besides standard FIDE chess, Zillions of Games contains many national chess variants such as shogi, xiangqi, janggi, as well as a number of popular chess variants like Ultima, Extinction chess, Losing Chess, shatranj, Berolina chess, Grand Chess and others. It also include some puzzles, such as 15-Puzzle, Towers of Hanoi, eight queens, and a variety of Solitaires.
Not long after it came to market in late 1998, users of Zillions of Games began to program new games and puzzles for it, creating many of them themselves. Two large collections of Zillions Rules Files soon began to appear. One was at the Zillions-of-Games website, and the other was at the Chess Variant Pages website. The former collected together every kind of ZRF, whereas the latter focused on ZRFs for chess variants. As of November 2017, the ZILLIONS interface had 2,577 ZRF's, created by 462 ZRF authors, and the Chess Variant Pages collection had 794 ZRF's of chess variants.
The games programmed by the users include such games as 4D Tic-Tac-Toe, FreeCell, Rubik's Cube, Teeko, Mancala, Alice Chess, Chess960, Hexagonal chess, Star Trek Tridimensional Chess and Sokoban. Besides various games and puzzles, there are also educational ZRFs, such as the cellular automata Game of Life, a calculator, and some Turing machine simulations.

Uses

Zillions of Games can be used for the following:
Zillions represents boards and pieces with bitmap images; these can be remapped by the user. The boards may be arbitrary directed graphs, but standard grid-like boards are easier to produce and have built-in support for detecting collinearity. The available win, loss, and draw conditions include checkmate, stalemate, repetition, piece capture, absolute configuration, relative configuration, and various types of piece count. These allow the creation of a variety of different games and puzzles.
Besides defining how pieces move, Zillions can define how pieces may be dropped. This is for introducing new pieces into a game. It is not useful for shogi, which "drops" captured pieces stored on the sides of the board. It is for games like Go, Reversi, and Tic-Tac-Toe, which routinely allow users to add new pieces to the board. As with piece movement, this is defined algorithmically, and it can be something as simple as letting a new piece drop only on an empty space or follow more complex rules.
Since version 2.0, Zillions has had the additional ability to enforce maximal capturing rules and a full-featured Go-playing engine.
Zillions includes a "random player" which selects from its available moves at random; this can be used to simulate dice in race games and Backgammon relatives.
The standard AI engine can, if need be, be replaced with user-created engines. These engines can then use opening books or other features unavailable to the standard AI.

Limitations

Despite its versatility, Zillions of Games has a number of non-trivial limitations:
Many of these limitations can be bypassed using extensions such as Axiom Development Kit.