David Foster


MULE is a remake of an old Atari game of the same name that has been extended to support multiplayer games over a network. This program was developed as the final project for my Software Practicum class (CS 2335) at Georgia Tech. MULE consists of about 24,000 lines of code.


Notable features of this program include:
  • a custom windowing toolkit
  • a scalable networking protocol
    • a MULE server does not route traffic between clients in a game
    • the creator of a game is designated as the host of that game
    • all other players that join a game connect to the host of that game directly (instead of loading down the server)
  • custom map editor
  • an auctioning system in which multiple players can bid on a commodity


The main game screen
The main game screen. The player can move around the board, buy MULEs from the store at the center tile, and place them on owned plots.
A player event
A notification of a player event, which is a special event that occurs to a player. Notice the acknowledgment widget displaying the players who've pressed OK.
The player setup screen
The player setup screen, which is where the host waits for other players to join their game.
The turn summary screen
The turn summary screen, which displays every player's score and assets at the end of every turn.
The server lobby
The server lobby, which is where players look for games to join and can chat with other players.
The map editor
The map editor. The terrain type of a tile can be changed by clicking on it repeatedly.