JokerStars: Online Poker

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

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

92 εμφανίσεις

JokerStars: Online Poker

William Sanville

CSE 4904

Milestone II

Background


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

Motivation


Not only an interest in playing cards



Online Poker System Requires:


Desktop Development


Network Programming


Multi Threading


Security

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
engine

User Requirements


Internet Connection


Preferably high speed



.NET Framework


Supported Operating Systems:


Windows 98 or higher


Linux, Solaris, Mac OS X


www.mono
-
project.com

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
conventions



Server module will be deployed on a Windows
Server 2008 machine

High Level Modules


Server Module


Client Module


Networking


User Interface


Game Engine


Game Entities

High Level Modules Cont.


Server Module


Deployed on a dedicated machine


Continuously listen for connections


TCP/IP


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
server

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


Cards


Chips


Deck


Player


Dealer

Priority


Problem:


One team member


One semester


Unrealistic to deliver a fully featured online card
system



Solution:


Cut scope


Prioritize


Ensure that the project is a success

Priority Continued


Main Focus: Networking


Client and Server modules will be the highest
priority


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

Concepts


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
engine


Server Module will have a debugging control panel



Support for future enhancements


Keep it clean, modular, easy to upgrade

Future Enhancements


Security


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



Scalability


Support for multiple, concurrent tables



Greater number of users

Other Enhancements


Randomness



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

-

John von Neumann



Project will be using standard math libraries,
pseudo random numbers



Commercial systems use more sophisticated
methods


Mouse movement of users


Temperature readings

Questions?