CSE 132 (Spring 2010)
Lab 5a: Protocol Design for Multiuser Game


Discuss the features you want (20 minutes)

Message format at the outer level

We agreed in class on the following format for all messages. Unless you can convince the professor otherwise, you are expected to follow this outer-level description of all messages.

Designing your message types

Your task is to design the messages that will be transmitted between the server and client for your game.

Your documentation must consist of the following sections in the following order:

Take a look at what we did for the kassle messages and protocol to get an idea
  1. Message types and formats Explain the fields that are present for a given message type. Be specific about field names (to facilitate discussion), field lengths, valid values for a field, and the meaning/interpretation of each field.
    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.

  2. Dialog

    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.

Finishing up

Last modified 08:59:25 CDT 03 June 2010 by Ron K. Cytron