Overview

The Networked Pacman scenario involves some experimental TCP/UDP coding.

You are not expected to implement the game itself! This has been done for you. Your task is limited to the networking.

The game code has been tested on Mac OSX and Linux. It will not compile on computers without OpenAL (i.e. at IDA) but you can easily map out the sound calls. They are not vital, just included in order to make the game feel more complete.


IMPORTANT:

For 2018, we have found three problems:

1) IDA no longer support modern OpenGL in their labs so the game code will not work there. Yes, they have downgraded. Don’t ask me why. This is not an IDA course so what runs there is none of my business, which means that I can not demand that this is fixed.

2) The code will not compile on the latest OSX. Apple has dropped libraries that some of the code relies on, and OpenGL has changed in some way that causes problems even when the code does compile. I will fix this when I can, but the main target is our labs, which means Linux.

3) A group has reported than the firewall exception for port 32000 is no longer in place. I will test and demand that this is fixed. In the mean time, run over localhost on a single computer. With the bad network simulator, you can still test the networking solution.

UPDATE on #3: The support has confirmed that the exception is not in place. It is not clear whether they plan to reenable it but I hope it will happen soon. In the mean time, work on a single computer over a localhost connection.


There is also a network simulation layer. It will work just like the normal API to TCP and UDP but has some user controlled parameters that are important for your testing. You should apply this when you have a working network solution. (See below for details and download.)

This is what the game looks at on OSX:


Your problem is to make this run over a network, trying to give the two players have the same experience. This poses some challenges, which is what this is all about.

You are also expected to test the result using the “bad network simulator”, which is a simple layer that allows you to simulate a less reliable network than the one you have. You are not expected to make wonders in terms of fault tolerance, but rather analyze what your existing solution can do, and why.
This page is maintained by Ingemar Ragnemalm