This game is a multiplayer version of the Atari game "Warlords." Warlords is a 2D game and can be played by two to four players.

There is a game server which handles all user connections, including account information, chats between players and launching/tracking games. For players, there is a client server which is used to connect to the lobby and launch the game itself.

Each player will control a paddle to protect his or her castle from the cannonball. Since there is no out of bounds, once the cannonball is launched it will continue to rebound around the arena until the game is over. If the cannonball hits a player's paddle, it will be deflected away harmlessly.

Behind each paddle is the castle wall which will fall apart as the cannonball strikes it. This castle wall protects the player's avatar; if the avatar is hit by the cannonball that player loses.

The game continues until there is only one avatar alive. Once the game ends, all players are returned to the game lobby.

Some client/server design details:

cog0 The backend server is using Python and server data is being handled by SQLite
cog0 All player account information is saved for future login, etc.
cog0 Server data is queried against during login/account registration to make sure players do not register twice or are not already logged in.
cog0 All clients use TCP to communicate with the game lobby server.
cog0 All clients use unreliable UDP to the talk to the game server (which is another player client).
cog0 The client which started the game in the lobby is chosen to also be the server.
cog0 The client-server handles all game state data.
cog0 The client-server handles all data being passed between clients.
cog0 All clients use Dead Reckoning for cannonball and player paddle position except when notified by the client-server.


cog0 Programmed in Python
cog0 Modified Panda3D engine
cog0 SQLite database
cog0 Code by Patrick Levoshko
cog0 Art by Patrick Levoshko and free images on the Internet
cog0 Code available by request
cog0 Warlords Presentation