Babylonians - online strategy game using python - Al-Kendi, Wissam (2015)
The internet provides many important needs and functions and arguably one of the most important of these is online gaming. To date, many different types of games have been designed to be played online by multiple players; these include board games, action games and strategic games. The majority of these games depend on client/server architecture to connect the players over a network. The current research project has developed a strategic game that simulates the Babylonian era in Mesopotamia in which each player can build a Babylonian city, prepare armies and invade other player’s cities. Python is a high level scripting language; it supports multiple programming paradigms such as object oriented and functional programing. The current research project has been developed using this programming language, together with a set of Python modules called Pygame, which were used to implement the graphical user interface, and Pyro, which is a high level remote object for handling network connections. The implementation of the project necessitated the use of several scripts such as the game server, which is responsible for recording the status of each player in the game and responding to their requests, and the client’s controller, which controls the processing of the game and handling the communications with the game’s server. In addition to the graphical user interface other aspects of the game include buildings, characters and timers. For these, as well as functionality, such as submitting emails to the server’s administrator and manipulating certain aspects of the game’s rules, such as date and time, other Python modules, such as ‘smtplib’ and ‘datetime’ have been utilised. The game has undergone live testing over a set period of time in order to assess its stability and rectify the inevitable unforeseen problems and errors. The game fulfilled all of its objectives after some improvements were made in the communications between the client’s and the game server.