Index: common/Game.cpp
===================================================================
--- common/Game.cpp	(revision 03ba5e32cbb41bf55fbdec659680183b1f08ad0b)
+++ common/Game.cpp	(revision ab8fd4016449008d0189af819837030c163e458a)
@@ -21,4 +21,8 @@
 Game::~Game() {
    delete this->worldMap;
+}
+
+string Game::getName() {
+   return this->name;
 }
 
Index: common/Game.h
===================================================================
--- common/Game.h	(revision 03ba5e32cbb41bf55fbdec659680183b1f08ad0b)
+++ common/Game.h	(revision ab8fd4016449008d0189af819837030c163e458a)
@@ -34,4 +34,5 @@
    ~Game();
 
+   string getName();
    int getNumPlayers();
    map<unsigned int, Player*>& getPlayers();
Index: server/server.cpp
===================================================================
--- server/server.cpp	(revision 03ba5e32cbb41bf55fbdec659680183b1f08ad0b)
+++ server/server.cpp	(revision ab8fd4016449008d0189af819837030c163e458a)
@@ -991,4 +991,34 @@
          break;
       }
+      case MSG_TYPE_LEAVE_GAME:
+      {
+         cout << "Received a LEAVE_GAME message" << endl;
+
+         Player* p = findPlayerByAddr(mapPlayers, from);
+         Game* g = p->currentGame;
+
+         if (g == NULL) {
+            cout << "Player " << p->name << " is trying to leave a game, but is not currently in a game." << endl;
+
+            /// should send a response back, maybe a new message type is needed
+
+            break;
+         }
+
+         cout << "Game name: " << g->getName() << endl;
+         //p->currentGame = NULL;
+
+         // broadcast a messsage to other players so they know someone left the game
+         // also, check if the game has any players left. If not, remove it and send everyone a message so the game is gone from their lobby list
+
+         int numPlayers = g->getNumPlayers();
+
+         serverMsg.type = MSG_TYPE_GAME_INFO;
+         memcpy(serverMsg.buffer, &numPlayers, 4);
+         strcpy(serverMsg.buffer+4, g->getName().c_str());
+         broadcastResponse = true;
+
+         break;
+      }
       case MSG_TYPE_JOIN_GAME_ACK:
       {
@@ -1072,4 +1102,5 @@
          strcpy(serverMsg.buffer+4, gameName.c_str());
          broadcastResponse = true;
+
          break;
       }
