Using XGame

Getting Started With XGame

Game

XGame application has been designed to support any type of games. Indeed, even the types of games supported by default by the application are loaded dynamically as plugins when starting up. This makes it possible users to implement themselves their customized types of games and makes them usable through XGame (see "Implementing A New Game Type" section for more details). The types of games supported by default are: Bi-matrix games, Sequential games, Poly-matrix games.

Bi-matrix game

Bi-matrix game represents confrontation of two player in normal form.

Sequential games

Sequential game represents sequential form of two persons extensive form.

Polymtrix games

Poly-matrix game represents confrontation of n players as a colection of n(n-1)/2 bi-matrix games.


Creating new game

There are at least three ways to create a new game. Indeed, you can create a new game by doing File menu->New->Game, by clicking on New Game button on the Standard toolbar or simply by pressing CTRL+N on your keyboard. After doing that, a file dialog opens allowing you to specified where you want to save the game. After specifying the file name, you have to select the type of games you want to create as illustrated below. Note that you can cancel this action at anytime by clicking on the Cancel button. Besides, you cannot create a new game with a file name used by another game currently open.



Fig.1: The New Game dialog


Opening existing games

There are many ways to open existing games. Indeed, you can open existing games by...

Note that a game already open cannot be reopen. That means that if you open multiple games, only the games not yet open will be open.


Saving game

You can save a loaded game just by doing File menu->save or pressing CTRL+S on your keybroad.


Closing game

You can close a loaded game just by doing File menu->Close or clicking on the Close button on the Standard toolbar


Game Library

Creating new game library

You can create a new game library by doing File menu->New->Library or by clicking on the New Library button on the Standard toolbar.


Opening existing library

You can open an existing library by doing File menu->Open->Library or by clicking on the Open Library button on the Standard toolbar.


Closing library

You can close a loaded game library just by doing File menu->Close Library or by right-clicking on the Library Explorer and selecting "Close" on the contextual menu. Note that a library is saved only is closed.


Adding new folder and games

You can add a new folder or existing games to the loaded library by right-clicking anywhere on the Library Explorer but on one of its contained game then selecting Add->New Sibling Folder... (available only when selecting a folder), Add->New Folder.. or Add->Existing File...


Removing folders and games

You can remove folders and games from the loaded game libray just by selecting all items you want to remove (multi-selection) in the Library Explorer then simply pressing DEL key or selecting "Del" in the contextual menu.


Solver and Method

Before using solvers and methods, you have to understand the difference between these two concepts. In XGame application, a solver represents a library of methods. Each of these provided methods allows to solve a specific type of games. For instance, one of the provided solvers is EXMIP solver which provides two solving methods to solve bi-matrix games and sequential games: bimatrix() and sequential() respectively.
Then, before launching a solver, you have to specify which solving method you want to use by selecting it in the Method dropdown menu on the Solve toolbar. Note that like the supported types of games, the provided solvers are loaded dynamically as plugins. This allows users to implements themselves their customized solvers and methods (see "Implementing A Solver Provider" section for more details). The provided solvers and their methods are listed in the table below.

Name

Description

EXMIP

This solver implemented by Slim Belhaïza allows to solve bi-matrix and sequential games.

Methods:

  • bi-matrix(): This method solves bi-matrix games.

  • bi-sequential(): This method solves sequential games.

Executable: XBig

EEE

This solver implemented by Charles Audet allows to solve bi-matrix and sequential games. However, this solver has been reimplemented by Slim Belhaïza.

Methods:

  • bi-matrix(): This method solves bi-matrix games.

  • bi-sequential(): This method solves sequential games.

Executable: EEE

Poly

This solver implemented by Slim Belhaïza allows to solve poly-matrix games only.

Method:

  • poly-matrix(): This method is used to solve poly-matrix games.

Executable: PEX


Running solver

There are many ways to launch a solver:


Stopping solver

You can stop(cancel) a running solver by performing one of the following actions:


Editing solver assignments

On of the very convenient features XGame provides is making it possible to edit the solver assignments. In other words, you can specify wich methods of resolution can be applied to a specific type of games. To do that, follow the following steps:


However, to get solvers working properly, you have to make sure that the chosen methods can solve to the selected type of games.


Fig.2: The Solver Assignments dialog



Fig.3: The Solver selector

Post-processing

Post-processing is a processing like a regular solver but used to perform specific actions using data obtained after running a regular solver. as the name suggests, a post-processing must be started up after that a regular solver which supports it has been run successfully. That means that post-processings supported by a solver won't be available if it has failed or has been interrupted (stopped). XGame provides three post-processings by default: Nash Subset,Quasi-String and Perfect.

Nash Subset

This post-processing identifies maximal Nash subsets of bi-matrix games.

Quasi-Strong

This post-processing identifies quasi-strong extreme equilibria of bi-matrix games.

Perfect

This post-processing identifies perfect equilibria of bi-matrix games.


Running post-processing

Running a post-processing is done the same way as a regular solver expect that you don't need to select any method.


Stopping post-processing

Stopping a running post-processing is done the same way as a regular solver.