The game where you can change the rules


A Nomic game in Haskell

--> The game
--> The forum

Nomyx is a unique game where you can change the rules of the game itself, while playing it! In fact, changing the rules is the goal of the game. Changing a rule is considered as a move. Of course even that could be changed! The players can submit new rules or modify existing ones, thus completely changing the behaviour of the game through time. The rules are managed and interpreted by the computer. They must be written in the Nomyx language, based on Haskell. This is the first complete implementation of a Nomic game on a computer.

At the beginning, the initial rules are describing:
  • How to add new rules and change existing ones. For example a unanimity vote is necessary to have a new rule accepted.
  • How to win the game. For example you win the game if you have 5 rules accepted.
But of course even that can be changed!

Here is a video introduction and first tutorial of the game.
The game is running here
The Forum is used to learn about Nomyx and discuss the rules during a game.

There is a lot of examples of rules you can propose.

Archived games:
The Castle Builders


If you want to run Nomyx at home (instead of using the public instance above), follow those instructions: The software is available on Hackage.
The development version is available on GitHub.

To install using cabal:
$ cabal install Nomyx

To run:
$ Nomyx
To create a new game, you need to be admin. Input the password in the advanced page. The default password is "NXPSD". Then on the main page you will be able to create a new game.


- creation of admin role
- inputs made by the rules now include checkboxes, buttons, textarea
- outputs made by the rules are now managed (create, update, delete)
- refactored the GUI
- bumped to GHC 7.6
- compilation errors are displayed in context
- bug fixes

- new login system: you can now login with your Google, Yahoo, Live Journal, Myspace, OpenId or Facebook accounts (thanks to happstack-authenticate)!
- new DSL for voting (see below)
- styling: rule code colorized, better settings and help
- use cookies to store the user ID (as suggested on this mailing list)
- new error system to handle exceptions in rules (with ErrorT)
- use lenses