Skrull networked multiplayer turn-based gaming system
Introduction & Purpose
Skrull is a project to create a simple multiplayer gaming framework that will allow multiple clients to simultaneously play various turn-based games. Although the initial system will include very simple games, it should be extensible enough to theoretically support more complex games.
Components will include a single Game Engine that will handle overall management and individual game logic and implementations, and 1 or more Game View Clients (or Users) that connect to the central Game Engine.
Additional detail and project metrics is available at https://github.com/gjesse/skrull/wiki/Requirements
Core Functional Requirements (see Testing document for screen shots of interface).
Users will choose a unique non-persistent username when first connecting to the engine.
Users of the system will be able to start a new game from a list of existing games.
Users will be able to join an existing game that needs more players to begin.
Once a game has enough players, play will begin and all users will be notified.
As play progresses, each user will be notified of game progress, and prompted for action when it is their turn.
The Game Engine will support multiple simultaneous games.
Game View Clients will only support one active game at a time.
Following game completion, players wil be able to either create or join another game.
The system will initially support 2 or 3 simple games
- Hello World
- Tic Tac Toe
- Rock, Paper, Scissors
System will by multi-threaded, games shall not block each other.
System will use java RMI for communication between views and Game Engine.
4 Easy to maintain.
Stretch goals (nice-to-haves)
A chat room window will be made available for conversation among players of a particular game
Game View Clients will retrieve updated model/view/action logic from the Game Engine without the need to update Game View Client code
Users will have a "Voyeur mode" option under which they can observe an existing game in progress.
Design and Implementation Constraints
- Must be run on a computer capable of running Java 1.6.
References and sources of information
Jesse Hodges - Java syntax reference.
Deitel & Deitel. "Java How to Program." Unknown. 1999.