Unformatted text preview:

Project 6Milestone 2 – CSE 4904William SanvilleModulesThe JokerStars project will be initially broken down into the following modules.1. Client – This module will include the functionality needed to connect to and pass messages to the server module, which will be running on a separate machine.2. Server – This module will continuously listen for connections. It will manage the connected users and pass all received messages to the game engine. In addition, the Server module will be responsible for soliciting actions from each player and broadcasting those actions to the other players.3. Networking – This module will contain all common classes used by the Client andServer modules, such as packets.4. User Interface – The User Interface module will serve as a bridge between the player and the Client module. The User Interface will be responsible for asking the player what he or she wants to do, and pass the actions to the Client, which will in turn pass the action to the server for processing. Also, the UI will display the status of all other players in the table.5. Game Engine – This module will interact with the Server module to handle the flow of the card game. The engine will be responsible for determining which player needs to act, what the valid actions for that player are, and evaluating which player has won the hand.6. Game Entities – This module will contain class definitions for various elements ofthe game, such as a player, dealer, cards, deck, chips, and more.PrioritySince the time frame for this project is only one semester, it is unrealistic to try to deliver a fully functional online card game with only one team member. To ensure that this project is a success, it is essential that all of the items are prioritized properly. The system will be useless if it has a nicely polished user interface but does not efficiently communicate from client to server. The most important aspect of this project is the networking aspect. Therefore, my primary focus for this project will be to develop the Client, Server, and Networking modules. The goal for these modules will be to have the server module run on a dedicated machine. Multiple users running the client module willbe able to connect to the dedicated machine and pass messages back and fourth from client to server.Once the networking aspect is completed, the next focus will be on the game entities and engine. First, classes will need to be developed to represent the game object, such as the player, cards, and more. Once those are developed, the game engine can begin. At this stage, a minimal client interface will need to be developed. The application will need a basic way of receiving input from the user in order to pass the necessary information to the game engine for the game to run. For example, the game engine will need to be tested by playing hands of poker, and users will need to interact with the system by placing viewing their cards and placing bets.The user interface will be the lowest priority item for this semester. There will be a basic interface that the user can enter his or her actions with. The interface will also graphically display the cards and the other opponents that are also playing the game.Communication ProtocolThe Client and Server modules will exchange messages using TCP/IP protocol. All messages exchanged will be converted to a byte array and transported using sockets. Since encryption is out of scope for this project, malicious users could potentially intercept and read the data that is being sent. The client will connect to the server using the server's IP address and a predetermined port number.Project RequirementsA fully featured online card playing system will have many more requirements and modules than the system I will be developing. In addition, commercial systems handle a very large user base concurrently. Popular systems have typically hundreds of thousands of users simultaneously. Commercial applications have very large server farms, fast Internet connections, and redundancy. Since the Server module for this project will be running on a single machine, this number will be greatly limited. Also, the system simply can not operate with 99.9% uptime like commercial systems do. Without redundancy, this system will be very vulnerable to outages.One of the main features that a commercial product would include is security. Security is critical in any system that handles real money, whether it is banking software or shopping software. Most of the popular card playing systems do handle real money, sosecurity should be one of their main priorities. If the system is not secure, then potential users will not be willing to accept the risk involved . In the case where a card playing system does not use real money, security is still important. Data handled by the system should be secure, so that unauthorized or malicious users can not gain access. Like in any online game, cheating ruins the game experience for legitimate users. If the users'money is not secure or cheating is possible, then the system is completely useless.Another element of a commercial card playing system is true randomness. As we all know, randomness can be simulated on a computer using a pseudo random algorithm, but this is not truly random. For the scope of this project, a pseudo random number generator will be sufficient to shuffle a deck of cards, as it will deliver random enough results. However, commercial systems use much more sophisticated methods to ensure true randomness. For example, some systems track their user's mouse movement and usethat data to seed their random algorithms. Other methods use input like temperature and wind speed readings in different parts of the world. Because large systems have so many users playing, it is very easy to spot biases and faults in randomness, and these systems must have the very best methods available, or else it will ruin the game experience for theusers.End ResultThe goal for this project at the end of the semester will be to simulate a single table of Texas Hold 'em over the Internet. The table will support one to nine players concurrently. There will be a dedicated machine running the Server module, which will listen for connections and automate the game flow.The Server module will display a control panel, which will allow the system operators (team member) to create game tables for users to play on. The Server module will


View Full Document

UConn CSE 4904 - Lecture notes

Download Lecture notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?