A multi-player Bomberman game, with formal semantics and an open protocol.
Lilian Besson (for more details, see the AUTHOR file in the source).
Python v2.7.3
The doc can be consulted on one of this page :
All the details (installation, options, etc) are in the doc. Anyway, here are somes infos.
The project is entirely written in Python, version 2.7.3.
For more details about the Python language, see the official site. Python 2.7.1 or higher is required.
The project also require the following unusual module(s) :
The project have been developped on GNU/Linux (Ubuntu 11.10).
It also have been quickly tested on Windows 7 with the Cygwin environment and Python 2.7.
It shall also work on Mac OS X, but not been tested. Any suggestion or returns is welcome ! Where things can be different between Mac and the others plateform is with the sockets (Linux use BSD sockets, and Mac don't). In particular, some network error handling can work on Linux but no on Mac.
The project is in two parts : a server, and a client, represented as the two following Python scripts :
Those two can be called with the option --help
to show how to used them.
All options are explained in this help message.
If you simply want to use it, follow those points :
In a first terminal, launch a server (for example from the computer opened on the web, and known as bomberman.crans.org):
$ ./BombermanServer.py --server bomberman.crans.org --port 13882
This launch the server, listening on port 13882. The game will be launched with a board 11x11, waiting for 3 players.
In a second terminal, launch a client and connect it to this server:
$ ./BombermanClient.py --server bomberman.crans.org --port 13882 --pseudo "Luke" --color "blue"
This launch the game, playing with the server previously launched, and with a player called "Luke", and colored with blue. This game uses an interactive window (GUI) if possible, otherwise it will try to launch in text mode (TUI) but the TUI is still experimental.
Find 2 other friends to play with you, tell them the --server
and --port
argument for their client, and that's it !
More options :
--music
, --nomusic
: enable, or disable the soundtrack during the game (for the client),--soundeffect
, --nosoundeffect
: enable, or disable the soundeffect during the game (for the client),--ANSI
, --noANSI
: idem for the ANSI escape color codes,--noUTF
: might also be able to force pure ASCII text mode (it works, but it is uglier than with UTF8 !),Moreover, the two files ConfigClient.py and ConfigServer.py can be edited to keep your favorite parameters from one session to an other.
If you are interesting, an experimental bot is in progress. That mean, a program that play by itself. By now, it is quite limited, but it works :) Of course, a human player will beat an automatic one very easily, but at least this allow to test everything without switching between 3 windows to play successively one of each players. And as far as I tried, one human player vs 7 bots can't win ;)
This project was realised for the MPRI 1-21 net programming lesson. I received the mark 16.9/20 for my work.
The MPRI is the Parisian Master for Research in Computer Science (Master Parisien de Recherche en Informatique in French).
I worked with Lucas Hosseini and Vincent Cohen-Addad, and if you are curious, there work is here on bitbucket.
The documentation is produced mainly with Sphinx, the Python's documentation generator.
I wrote a few scripts to help Sphinx to do what I wanted, and to generate a PyDoc version of the doc too.
Those scripts constitute now an independant and a powerful project. It is hosted here on my Google Site
Feel free to contact me, either with a bitbucket message (my profile is lbesson), or via an email at lilian DOT besson AT ens-cachan DOT fr.
This project is released under the GPLv3 license, for more details, take a look at the LICENSE file in the source. Basically, that allow you to use all or part of the project for you own business.