CSP301: Assignment 1 on Multi-player Game

Background reading

  1. Read Kernighan & Ritchie to learn the C language. Also, refer to the readings on the main course webpage on C Macros.
  2. Read latex documentation (see main course webpage)
  3. Read OpenGL documentation (see main course webpage)
  4. Read GIT and Reviewboard documentation (see main course webpage)
  5. Carefully read the man page of select() system call

The Game

You have to implement a ping-pong game over the network. The game can be played by one player (against the computer), two players (against each other with side walls bricked), three players (with only one side of the screen bricked), and four players (the screen is open on all four sides, and protected by the paddles of each player). 'bricked' means that the side is controlled by the computer. The computer should also move his paddle in a smooth manner. For one player game, the player should be able to specify the "hardness" level by specifying the probability of failure of the computer's paddle. For more than one players, the computer paddle's success rate should be 100%.

Software Engineering

You should take a systematic approach to developing this project. You are required to do the development in the C programming language with the OpenGL library.



  1. To be done individually, except where group work is explicitly authorized (e.g., common design document)
  2. The last date of submission of the design documents is Sep 19. The last date for the implementation is Oct 19.