Prelude

This is currently a `vapourware' project. It does not exist except in the wishlist of the would-be users/developers. Contract Bridge is a multi-player game. It cannot be played with less than four players. Further, it requires co-operation between players within a team. I have created a number of Free Software projects on my own. This one, if it gets off the ground, will like the game, be a team effort. I'm not going to do any serious work on it unless I get a commitment from at least 3 other people who are prepared to help develop it. Ideally, I need two programmers, and a documentation person. If you want to be part of this team then please contact me.

Note: The logs from my webserver show that a lot of people have found this page from search engines. So clearly there's an interest for such a program. Sadly, as yet nobody has offered to help. Creating software is much more fun than using it, so get in touch and make it come true!

July 2003

Overview

There is a desire to create a computer driven system to facilitate the play, analysis and simulation of the game of Contract Bridge. Such a system would have the following traits:

This documentation is written with a mind to achieving these objectives. It is currently very open to discussion and enhancement.

Architecture

The architecture of the system shall be modular, to allow distinct areas of responsibility.

Schematic of the System Archite

Components

Protocol

The networked nature of this system requires a definition of a protocol to be used between clients (players) and the game server. Definition of this protocol should bear in mind:

Game Server

A server process which contains the state of one or more games, and sends messages using the protocol (above) to clients. State information which will be needed will include:

Allowing multiple concurrent games will be especially useful for duplicate bridge tournaments.

API Library

To encourage third parties to create user interfaces, the protocol on the client side should be accessible through a library with a well documented API. The library should take care of the detail of the protocol and allow user interface programmers to use higher level functions such as

etc

However, since some user interfaces will be GUI based, functions should not block, waiting for server response. The library should be compilable by any platform with a TCP/IP stack.

User Interfaces

User interfaces are what the human participants will use to play the game. It will allow them to

Possibilities for user interfaces include:

Functions

The system will take care of the administrative tasks of the game (such as scoring and refereeing) whilst allowing players to concentrate on the game.

Playing a Game

During a game, players may do the following:

  1. Place Bids. The system will ensure that bids can be placed only at appropriate moments (ie when the auction is open and it's the player's turn.
  2. Play cards. The system will ensure that cards can only be played at appropriate times, and that only legal cards can be played. For example, it'll ensure that a ruff cannot be played unless the player is void in the lead suit.

Game Set Up

Since a game needs 4 players, establishing it will need some protocol. For example a client could request from a server:

Anticipated Problems

Embellishments

Here is a non-exclusive list of details which might be included:

Existing Work

So far, I've not found any examples of Free Contract Bridge software. If you know of any then tell me so I can reference them.

 

Task List

Below is a rough list of tasks roughly in their Cronological order. If someone wishes to do a better one using Mr. Project please feel free.

  1. Decide upon a name for the project.
  2. Formalise the terminology.
  3. Ratify (or at least agree upon a working draft) of the Protocol
  4. Create a rudimentary game server. Wouldn't need to be very robust, or even to observe the rules. Just be able to spit out commands in the Protocol.
  5. Document the API Library.
  6. Code the API Library and create a simple demo User Interface.
  7. Start work on the Game Server proper.
  8. Test everything together. Go back and reveiew everything ....

 

Summary

Whilst there is proprietary and shareware Bridge Software, there is to my knowledge no such Free Software. This leaves a hole in the suite of programs available to Free systems such as GNU/Linux.

This document roughly describes how such software could be built, and thus fill a gap in the range of Free Software games.

References

Rules of Contract Bridge