Implement a Network Game which allows two or more players to interact over a local area network.
You can use either the C++ or C# programming language.
The game must have a Client-Server architecture. The server controls the game sequence (such as
which player has the next turn), and arbitrates between clients (for example, it keeps the score). The
server must therefore support at least two clients concurrently.
The use-model is based on a player starting his/her client whenever they wish to play. The server is
already running (contactable somewhere in the network). The client must somehow ‘find’ the server
(one way is to type the IP addres s of the server into the client, but this is not user -friendly!) – this
aspect is part of your communication design. Once the client and server are communicating, the
server acts as a broker between several clients, so that the users can play the game. The server does
not have a user interface as part of the game – since no user is ‘located’ at the server. However, the
server will probably still need a user interface for diagnostic purposes . Clear identification and
separation of the various component types (client, server ) and of their functionality and behaviour is a
required part of the design documentation.
Almost any game can be modified to work over a network, but it is recommended that you keep to a
SYSTEMS PROGRAMMING LEVEL 5
As an example, consider Noughts and Crosses. Each player has a ‘board’ containing a grid of nine
squares in which they can place a token (a O or X) – if the square is empty. Player 1 has O’s and
Player 2 has X’s. Only one player is allowed to move at a time; this must be regulated by the server.
After a move, the position of the new token is passed to the server, and then on to the other client
(representing the other player), so each player can see their own moves and their opponent’s moves
on the screen . Each time the server receives details of a new move it must check for game
termination. For Noughts and Crosses, this is when one player gets three tokens in a straight line
(including diagonally) or when there are no empty squares left on the ‘board’.