Home sweet home Cercle Informatique  Electronic Fontiere  Games  Steganography  Télématique et organisation  Various  Home Page de Valerie Devriendt  Game of Z  Work In Progress 
- . ---
Abalone
Boku
Jeux de Dames
Diplomacy
GIPF
Barney Pell Chess Variants
Zenix
The Meta Ace of Penguins Project
Play By eMail




CLICK HERE FOR AN MORE UP TO DATE AND BANNER FREE VERSION




Play By eMail

Play by eMail is not something new, long ago I use to play "Jeu de Dames" by snailMail, but it take money and time. With eMail you can go a bit faster, but you can also have the computer arbitrate the game. Like years ago I use to play "Diplomacy" by eMail using electronic Adjudicator. I did that mostly because it is difficult to gather 7 players for a day.

What is Play By eMail

Now you don't need anything special to play by eMail. If you have a friend, a game you share and like and a "notation system" to be able to echange movement in a text format, you are ready to start. Now if you like abstract game, they you can find Richard's server, hunderd of games are already implemented there and the server will arbitrate your game. For diplomacy, we already discuss the solution: Adjudicator. If you like wargames or board games then text e-mail won't work anymore, but you have many program that let you manipulate bitmaps (pieces) over bitmaps (map of the game) and record your move, dice roll, point, ... However you need to find opponent, agree on the program to use, have the background map and piece and find a way to trust the dice result. If you like role playing (ADD, ...) then maybe you should look for a chat service like IRC or ICQ because of the nature of those games.

I don't have a definition of Play by eMail, but obviously, everytime you have fun playing a game by sending e-mail, it is play by email.

Games I made for Richard's Play By eMail

Long ago I was ask by a friend to write a game for the PBeM server. It took me time to choose to do it, but when I started it did not took long. That first game of mine is "HexaFive" wich is a clone of the game "Boku".

Then, I choose to implement "Xeniz" a clore of "Zenix" because I wanted more abstract gamers to discover the game and evaluate if it is better for first or second player.

Unfortunately, currently those game are not installed on Richard's server, so this mean you cannot play them. I never receaved a reply to my e-mail to Richard concearning those games, so I can only guess. But definitively there is an issue when the inventor of the original game (copyright holder or so) are not involved in the process of making the game available on-line.

My development around Play By eMail

The play by eMail server of Richard let you ask for notification. You can ask to receive an eMail every time a game end. And this eMail will content the notation of the full game. Because I wanted to study the game Zertz and PBeM is a place where many game are played, I started to collect game notification. In order to visualise all those game I made a perl script that read Zertz notification of a game, replay the game and save all the intermediate board between the start position into a text file. It is not perfect, but it help.

How to make your own games

The best way to write a game for Richard's Play By eMail server is maybe to download the source code from Richard's ftp server (sorry I don't remember the exact location). From there you can try to find an existing game close to the one you want to implement. When I say close, you should try to find something with same kind of board, as the function that print an ASCII version of the board might be one of the most difficult to write. This is especialy trur concearning hexagonal board, pyramidal board, square board, ...

Then try to see what information you need to remember about a position in order to be able to verify the move of a player or verify a win/draw condition. What you need to understand is that Richard's PBeM server maintain a state of the game into a file. Every time there is a move, we read that file, read the move of the player and apply that to the board. Then we print the board, and save the new state of the board back into the file.

Obviously, you need to find a game notation suitable for PBeM. You can choose an official notation (like for check or other) or you can invent something. Try to keep it simple, non ambiguious, that cover every possible kind of move (capture, jump, ...), similar to other game notation and maybe reversible (meaning you can read the move to go to the previous state=board position of the game). You will find decoding function in a lot of other PBeM games you could use those to inspire yourself. Make sure your notation is user friendly rather than too computer friendly. Peaple will have to use it for every move of every game, so don't make it too difficult for them.

Now I forgot to mention that maybe attempting to create a game for Richard's PBeM server without prior C/C++ knowledge is not a good idea. You could always learn that by doing, but it is more likely take you a lote of time and your code could be uggly and full of bug.

When you have the game, a similar existing game, your notation system and some idea on what a state of the game mean. It mean a board position including non visible thing like who's turn is it, what are the stock of pieces left off-board, what piece did or did not move (if some rules of the game relate to that). When you have all that, it might be time to install and compile existing game from Richard's 'distribution' of the source code. If you are not able to compile those, you might have trouble to compile yours.

The compilation of Richard's code will generate a lot of program, one for each game. But in order to play any of those game, you need to setup an environment for it. This environment is a directory structure with place for game state, game standings, ... But it is also environmental variable about where is the root of your copy of PBeM directory structure. It also contain the list of user with username, e-mail and password.

Typicaly, a PBeM server's module is execute from a Perl script every time there is a mail concearning that game. For testing your game it is of course not necessary. However the server's code try to execute sendmail to generate board and send them to recipient. You should either replace that part of the code, or replace sendmail by a script that save standard input to a file (cat?). That way you can test your game without e-mail connection at all. Of course the real testing require on-line use of the game.

- . ---
2798 The content of this page is copyrighted: ©David GLAUDE.

Printer Friendly Version