This is a short game I wrote for cs260. Although it doesn't feature any shooting as its name might imply, up to four people can connect in the lobby and move around in a tiled level. It uses UDP for networking, Managed DirectX for graphics, and Winsock2 for networking. C# is used for every aspect of the game except for the networking, which is written as native C++ and linked in via a mixed mode dll.
Various aspects Slushball were based on techniques I worked out for this project. Most notably, the Slushball network model is heavily based on the 3-layer model I created for this networking engine. The user input model was also maintained across both games as it proved very dynamic and well suited for networked play.
The basic network engine for this game consisted of three parts. The lowest is the actual interface with the operating system API. The middle layer implements various TCP features over UDP and was primarily responsible for the connection model and managing packet queues. The highest layer provides an object-oriented packet class and a simplified interface to simplify network reliant gameplay code.