jokerstars: online poker william sanville cse 4904 milestone ii

20
JokerStars: Online Poker William Sanville CSE 4904 Milestone II

Upload: dustin-shaw

Post on 12-Jan-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

JokerStars: Online Poker

William SanvilleCSE 4904

Milestone II

Page 2: 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

Page 3: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

Motivation

Not only an interest in playing cards

Online Poker System Requires: Desktop Development Network Programming Multi Threading Security

Page 4: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 5: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 6: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 7: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

High Level Modules

Server Module Client Module Networking User Interface Game Engine Game Entities

Page 8: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 9: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 10: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

High Level Modules Cont.

Networking Module Basic functionality and classes used by both Client

and Server modules Packets, Serialization

Page 11: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 12: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 13: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

High Level Modules Cont.

Game Entities Class definitions for various elements of the game

Cards Chips Deck Player Dealer

Page 14: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 15: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 16: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

Concepts

User Interface Concept Nothing fancy, just buttons and pictures

Page 17: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 18: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 19: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

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

Page 20: JokerStars: Online Poker William Sanville CSE 4904 Milestone II

Questions?