Problem Statement

OVERVIEW

You are to create an online multiplayer version of "Clue: The Card Game."

Here are the rules for the original card game.

DESIRED FEATURES

A game server that manages network play and a downloadable client application for the desktop (Java Web Start okay) that the user interacts with to play the game.   The server must follow protocols for internet servers and must be secure against network attacks.  The instructor will provide a Virtual Machine in the CSL for running game servers. See the instructor to obtain a specific port on the host.
Players can create a "screen name" to identify themselves during game play.
The computer acts as the dealer for the game and automatically facilitates clue exchanging when appropriate.
Have a way for the player to keep a notesheet of deductions they've made about the mystery.
Have a "robot" player that can sit in if there are not enough people to play a game, or if someone drops out in the middle of a game.  Optionally have several robots with different intelligence levels.
Assume the users aren't familiar with multiplayer internet gaming.
User should be able to control the game with keyboard as well as the mouse.
Provide a way for the user to select (and optionally, create) alternate "themes,"  that is, card images, etc.
The client software architecture must allow for porting to a different platform without recompiling the code for the game logic or networking.  
Optional:  A web-based client written with Google web toolkit.
Optional: Internationalize the software and provide a localization for at least one other language.

LEGAL ISSUES

To avoid copyright infringement, you must must invent a different name and may not use any of the original game images.
You should use one of the three image sets provided in this zip file unless you obtain instructor permission to create your own.

Needed card enhancements.  Repaired images (11/18)


NETWORKING FRAMEWORK
The largest technical issue is writing the networking code. You must not write your own networking code from scratch. You must use an existing networking library or framework.  Some choices (in order) are:
  1. The framework provided by the textbook authors: OCSF
  2. A framework from a different textbook: Brackeen Networking Framework
  3. http://www.quickserver.org   an open source Java library/framework for quick creation of robust multi-client TCP server applications.
  4. http://wiki.gamegardens.com/Main_Page Game Gardens is a place for hobbyist game developers to create and host multiplayer games, written in Java, using open source libraries.