- If you are doing Egyptian Rat Screw, then your tasks are:
- Devise a way to keep clients from slap-cheating
- Extend the game in some way
- Try out the protocol in your group, and document the interactions that will occur.
- If you are doing a different game, then you must start developing the protocol for your game, but you can use the class game protocol as an example.
Spend some time discussing as a group the features you want in your game.Document your decisions in the protocol.txt file in your repo.
For example, consider how a played card is announced by the server.
For example, don't pass a card as the string Jack of Spades. This would require parsing the contents of the string to find the rank and the suit. Instead, send two integers in succession for the card. The encoding for those integers must be very clear.
Your documentation must consist of the following sections in the following order:
- If you are doing ERS, start with the ERS messages and protocol and add what you need.
- If you are doing a different game, take a look at the ERS messages and protocol to get an idea about the documentation.
Recall the detail that was provided for FLAP in Studio 7. You must be specific about the number of bytes provisioned for each field of a message. You must also state the format of each portion of a message.Use common types where possible. For example, if the format for some field is a primitive Java type, such as short, then just say so, but indicate that 2 bytes are taken by the field.
For each message type, document its specific fields in the same detail you should have specified for the overall message structure. Explain the circumstances under which you expect to see messages of a given type.
Describe the sequence of events and messages that should occur in the game. If a finite state machine helps to describe possible sequences of events, feel free to use such notation. Think of the states as points of arrival and the messages as triggers for action and state changes.
Where possible, separate the portions of the protocol to simplify discussion. For example, there may be elements of the protocol that are unique to joining or leaving a game.
Where possible, group similar protocol elements together in your document so that the similarity (or small differences) in their fields can be more easily appreciated.
Document the above in the protocol.txt file in your repo.
If you are doing ERS be sure to complete the section documenting the extra features you plan to implement. Otherwise, the protocol won't make sense to the TAs.
When you done with this lab, you must be cleared by the TA to receive credit.
- Commit all your work to your repository
- Fill in the form below with the relevant information
- Have a TA check your work
- The TA should check your work and then fill in his or her name
- Click OK while the TA watches