JokerStars: Online Poker

wrackbaaΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 4 χρόνια και 7 μήνες)

102 εμφανίσεις

JokerStars: Online Poker

William Sanville

CSE 4904

Milestone II


Popular Systems

PokerStars, Full Tilt Poker

“Virtual Casino”

Players connect from all over the world

Support multiple games concurrently

Variety of card games at different stakes

Tournaments, cash games

Popular Card Games

Hold 'em, Omaha


Not only an interest in playing cards

Online Poker System Requires:

Desktop Development

Network Programming

Multi Threading


Project Description

Simulate a card game over the Internet

Allow players to communicate

View and handle the cards

Make decisions

Place bets, fold, etc.

Support for multiple games

Project should be flexible to support any card game

Game should run by a modular, interchangeable rule

User Requirements

Internet Connection

Preferably high speed

.NET Framework

Supported Operating Systems:

Windows 98 or higher

Linux, Solaris, Mac OS X


Development Environment

Application will be written in C#

Visual Studio 2008

Code will be documented using XML Comments

Code should pass FxCop code analysis

Static code analysis to ensure proper practices, naming

Server module will be deployed on a Windows
Server 2008 machine

High Level Modules

Server Module

Client Module


User Interface

Game Engine

Game Entities

High Level Modules Cont.

Server Module

Deployed on a dedicated machine

Continuously listen for connections


Send and receive data to and from clients

Solicit actions from players

Broadcast player actions to other players

High Level Modules Cont.

Client Module

Deployed on the end user's machine

Connect to game server

Pass and receive messages to and from game

High Level Modules Cont.

Networking Module

Basic functionality and classes used by both Client
and Server modules

Packets, Serialization

High Level Modules Cont.

User Interface

Bridge between the end user and Client module

Receive input from user

Display the users currently playing the game

Display cards, chips, and other game elements

High Level Modules Cont.

Game Engine

Defines the rules of the game

Handle the flow and runtime of the game

Determine which player needs to act

Determine what actions are valid for each player

Evaluate winning hands

High Level Modules Cont.

Game Entities

Class definitions for various elements of the game








One team member

One semester

Unrealistic to deliver a fully featured online card


Cut scope


Ensure that the project is a success

Priority Continued

Main Focus: Networking

Client and Server modules will be the highest

Manage multiple connections

Develop a working message passing system

Second Focus: Game Entities & Engine

Automate the runtime of the game

Third Focus: User Interface

A basic interface will need to be developed in order
to test the game engine and entities


User Interface Concept

Nothing fancy, just buttons and pictures

End Result

Single table of No Limit Texas Hold 'em

1 to 9 players

Automated game flow

Game Engine determines whose turn it is and asks
them for their action

If time is running short, this will be substituted with
a “human dealer” to perform the duties of the game

Server Module will have a debugging control panel

Support for future enhancements

Keep it clean, modular, easy to upgrade

Future Enhancements


Data will need to be encrypted

Out of scope for this semester

Integrity of messages must be preserved

Man in the middle attacks

Identity spoofing


Support for multiple, concurrent tables

Greater number of users

Other Enhancements


Anyone who considers arithmetical methods of
producing random digits is, of course, in a state of


John von Neumann

Project will be using standard math libraries,
pseudo random numbers

Commercial systems use more sophisticated

Mouse movement of users

Temperature readings