4 1/28: Universe

Universe with objects

The purpose of this lab is to practice writing distributed programs with Universe.

Exercise 1. Starting with the Zombie game we’ve developed in class, develop a single-player distributed version of Zombie. This game should function just like the World version of the game, the only difference is that the server will maintain the data of where the zombies and the player are. The client will communicate the mouse position to the server as it changes. The server will communicate the location of the player and zombies on a regular basis.

Exercise 2. Modify the above program to make a multi-player distributed version of Zombie in which the zombies move toward the closest player in the game. Each client is responsible for moving a single player, but it also displays the position of every other player and all of the zombies.

It should not be possible for the clients to cheat, for example, by moving too fast or influencing the position of other players.

Exercise 3. Once you have a version of the server that works for well-behaved clients, fortify your server so that it works for all possible clients and potential interactions.