Return to labs index
Lab #4
Due: The last Friday of classes

Overview

In the first project, you wrote a multipayer game. Your present task is to make it work for multiplayers over a network -- just as it did when all players lived on a single system

Really, That's It!

Just make it go -- without breaking the concurrency or introducing long delays. Java has a powerful and very simple model for network communication. Objects can just be serialized and sent over the network, so don't try to work around it to use sockets. Just use it.

You won't be able to broadcast, so you'll need some way of registering the clients. Perhaps each one is given a list, or perhaps they are all given the identity of a single coordinator.

And that, of course, brings you to the more central question about whether your system will bee purely peer-to-peer or client-server. We'll take either. Just remember you don't eant each and every action in the game to be reduced to the speed of which ever one happens to be slowest, if you can avoid it. But, you also don't want the views of the game to be drastically different from player-to-player: They are playing against each other, afterall.

We are going to read your code for correctness, and devise some experiments if we see concerns. Then, we are going to play it from two different network legs, for example from Comcast at home and Habermann on campus, to test for playability. If all goes well -- that's that.

Of course, if things break, or the game isn't playable, or your code degenerates to spaghetti -- well, we might have more to talk about later.

We're Here To Help!

As always -- remember, we're here to help!