Skip to main content

PyRisk

This is a Python engine and interface for building games similar to the 1957 La Conquête du Monde by Albert Lamorisse (of “Le Ballon rouge / The Red Balloon” fame). The game is perhaps better known as Risk, and is produced by Parker Brothers (now a division of Hasbro).

Benefits over other open source implementations:

  • simple, extensible implementation

  • play-by-email

Getting PyRisk

PyRisk is available as a Git repository:

$ git clone git://tremily.us/pyrisk.git

The most recent commit is also available as a gzipped tarball at:

http://git.tremily.us/?p=pyrisk.git;a=snapshot;h=HEAD;sf=tgz

Once you get the source, installation is via Docutils:

pyrisk$ python setup.py build
pyrisk$ python setup.py install

Getting started

To setup play-by-email, you’ll have to have some method to redirect appropriate messages into a named pipe. With procmail, that will look something like:

:0
* ^Subject:.*\[PyRisk.*
{
  :0 wc
  /path/to/named/pipe

  :0
  | /bin/echo -e '\000' >> /path/to/named/pipe
}

The echo command appends a NULL byte to the FIFO, which (I think), helps the read() in _get_msg break at the appropriate point.

Once you have the procmail rule setup, just add your EmailPlayers to your game and go:

from pyrisk.base import generate_earth, Player, Engine
from pyrisk.player.email import IncomingEmailDispatcher, \
    OutgoingEmailDispatcher, EmailPlayer
from pyrisk.graphics import WorldRenderer
world = generate_earth()
ied = IncomingEmailDispatcher(fifo_path='/tmp/pyrisk.in')
oed = OutgoingEmailDispatcher(return_address='server@example.com')
wr = WorldRenderer()
players = [EmailPlayer('Alice', 'alice@big.edu', ied, oed, wr),
           EmailPlayer('Bob', 'bob@fish.net', ied, oed, wr),
           Player('Charlie')]
e = Engine(world, players)
e.run()
ied.close()

Release history Release notifications | RSS feed

This release

0.1 This release

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page